{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "Drafts Archive",
  "home_page_url": "https://go.waylonwalker.com/draft/",
  "feed_url": "https://go.waylonwalker.com/draft/archive/feed.json",
  "description": "Draft and unpublished posts",
  "authors": [
    {
      "name": "Waylon Walker"
    }
  ],
  "items": [
    {
      "id": "https://go.waylonwalker.com/2026-prediction-results/",
      "url": "https://go.waylonwalker.com/2026-prediction-results/",
      "title": "2026 Prediction Results",
      "content_html": "\u003cp\u003eI’m tracking results of \u003ca href=\"/2026-predictions/\" class=\"wikilink\" data-title=\"2026 Predictions\" data-description=\"I\u0026#39;m late on this one so I\u0026#39;ve seen everyone else\u0026#39;s. I\u0026#39;ll try my best to make some bold predictions I\u0026#39;ve not seen elsewhere\" data-date=\"2026-01-16\" data-preview=\"I\u0026#39;m late on this one so I\u0026#39;ve seen everyone else\u0026#39;s. I\u0026#39;ll try my best to make some bold predictions I\u0026#39;ve not seen elsewhere\"\u003e2026 Predictions\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"more-open-source-less-open-contribution\"\u003emore open source, less open contribution \u003ca href=\"#more-open-source-less-open-contribution\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"2026-is-not-the-year-to-build-hardware\"\u003e2026 is not the year to build hardware \u003ca href=\"#2026-is-not-the-year-to-build-hardware\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"agents-will-overwork-us\"\u003eAgents will overwork us \u003ca href=\"#agents-will-overwork-us\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://steve-yegge.medium.com/the-ai-vampire-eda6e4f07163\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/steve-yegge.medium.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/steve-yegge.medium.com.png\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003esteve-yegge.medium.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003ch2 id=\"2026-is-to-ai-as-2012-was-for-js-frameworks\"\u003e2026 is to ai as 2012 was for js frameworks \u003ca href=\"#2026-is-to-ai-as-2012-was-for-js-frameworks\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n",
      "content_text": "\nI'm tracking results of \u003ca href=\"/2026-predictions/\" class=\"wikilink\" data-title=\"2026 Predictions\" data-description=\"I\u0026#39;m late on this one so I\u0026#39;ve seen everyone else\u0026#39;s. I\u0026#39;ll try my best to make some bold predictions I\u0026#39;ve not seen elsewhere\" data-date=\"2026-01-16\"\u003e2026 Predictions\u003c/a\u003e\n\n## more open source, less open contribution\n\n## 2026 is not the year to build hardware\n\n## Agents will overwork us\n\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://steve-yegge.medium.com/the-ai-vampire-eda6e4f07163\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003esteve-yegge.medium.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\n## 2026 is to ai as 2012 was for js frameworks\n\n",
      "summary": "I'm tracking results of 2026-predictions",
      "date_published": "2026-12-31T15:08:26Z",
      "date_modified": "2026-12-31T15:08:26Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "predictions"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/agent-prove-yourself/",
      "url": "https://go.waylonwalker.com/agent-prove-yourself/",
      "title": "Agent, Prove Yourself",
      "content_html": "\u003cblockquote\u003e\n\u003cp\u003e🌱 This post is still growing\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cfigure\u003e\n\u003ca href=\"http://dropper.wayl.one/file/b249c794-9411-42c0-be01-07922c3e98da.mp4\" class=\"glightbox-link\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"http://dropper.wayl.one/file/b249c794-9411-42c0-be01-07922c3e98da.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"http://dropper.wayl.one/file/b249c794-9411-42c0-be01-07922c3e98da.mp4\" type=\"video/mp4\"\u003eb249c794-9411-42c0-be01-07922c3e98da.mp4\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003ea scroll through of \u003ca href=\"https://github.com/WaylonWalker/markata-go/pull/1021\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://github.com/WaylonWalker/markata-go/pull/1021\u003c/a\u003e\u003c/p\u003e\u003c/figcaption\u003e\n\u003c/figure\u003e\n",
      "content_text": "\n\u003e 🌱 This post is still growing\n\n\n![b249c794-9411-42c0-be01-07922c3e98da.mp4](http://dropper.wayl.one/file/b249c794-9411-42c0-be01-07922c3e98da.mp4)\na scroll through of https://github.com/WaylonWalker/markata-go/pull/1021\n\n",
      "summary": "🌱 This post is still growing",
      "date_published": "2026-04-18T10:26:15Z",
      "date_modified": "2026-04-18T10:26:15Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "agent"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/agents-are-here/",
      "url": "https://go.waylonwalker.com/agents-are-here/",
      "title": "Agents Are Here",
      "content_html": "\u003cblockquote\u003e\n\u003cp\u003e🌱 This post is still growing\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eLate last year I started writing \u003ca href=\"/im-out-on-agents/\" class=\"wikilink\" data-title=\"I\u0026#39;m Out On Agents\" data-description=\"Its the year 2025 and we are only a few years into having 6 months to live before ai takes our jobs, and the big push right now is agents, managing agents. I...\" data-date=\"2025-08-27\" data-preview=\"Its the year 2025 and we are only a few years into having 6 months to live before ai takes our jobs, and the big push right now is agents, managing agents. I...\"\u003eI\u0026#39;m Out On Agents\u003c/a\u003e.  Agents sucked, the\nmodels were good, but there was still something missing between the harnesses\nand the models.  They could write good code, they could do some debugging and\nexploring, but they were too good at fucking up the whole project to be useful.\nThey could crank out Green Field POC’s like nobody’s business, but they created\nso much mess in brown field projects that it was easier to chat and edit\nyourself.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"http://dropper.wayl.one/file/f91a8893-b1ba-422a-9390-18de5034483c.mp4\" class=\"glightbox-link\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"http://dropper.wayl.one/file/f91a8893-b1ba-422a-9390-18de5034483c.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"http://dropper.wayl.one/file/f91a8893-b1ba-422a-9390-18de5034483c.mp4\" type=\"video/mp4\"\u003ef91a8893-b1ba-422a-9390-18de5034483c.mp4\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eThe Beautiful Glitch - Gemini\u003c/p\u003e\u003c/figcaption\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"the-inflection-point\"\u003eThe Inflection Point \u003ca href=\"#the-inflection-point\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIt’s very well agreed on that the inflection point for most people happened\nwith Anthropic Opus 4.5 in late Nov 2025.  Early adopters probably noticed\nright away and shouted from the rooftops how good it was.  But we’ve all heard\nthat developers have 6 months before ai writes all the code for years, so this\nfelt like the rest of the noise.\u003c/p\u003e\n\u003cp\u003eHitting the December slowdown many of us hit code freezes at work.  We\ncompletely disconnect from work for the last Week and come back in January.\nDuring this time, its very common for us to try out new tools, new techniques\nwork on side projects, create POC for that thing we never have time for.  While\nit looks like less features coming into the apps we support this is an\nimportant time for us to explore and reflect.\u003c/p\u003e\n\u003cp\u003eAnthropic was super generous with a free tier giving out huge levels of free\ntokens at the time.  So many of us laughed and threw it at our side projects\nexpecting the normal garbage output, but maybe some good ideas to come from it.\nBut that’s not what was happening anymore, somehow these agents do some real\nwork, follow plans and stick to scope really well.  And if you lay out a big\nenough plan they tended to keep cooking and completing features.\u003c/p\u003e\n\u003ch2 id=\"january-2026\"\u003eJanuary 2026 \u003ca href=\"#january-2026\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eflu season\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eFor me and many others around the country we were hit with a rough flu season,\nkicking in and draining us mentally for a good month or so.  I wanted to work,\nI was getting excited about some projects and wanted to get them going, but I\nwas constantly wiped and had no capacity.  I had no ability to think on complex\ntasks, I was coughing all the time, just trying to survive, but yet wanted to\ndo something.  I started doing some small clean up, some work on side projects.\u003c/p\u003e\n\u003cp\u003eAt this point I was still afraid of really letting agents cut loose on\nsomething meaningful, something that users depend on.\u003c/p\u003e\n\u003ch2 id=\"february-2026\"\u003eFebruary 2026 \u003ca href=\"#february-2026\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003ewhat just happened?\u003c/em\u003e\u003c/p\u003e\n\u003ch2 id=\"yes-or---dangerously-accept\"\u003eyes or –dangerously-accept \u003ca href=\"#yes-or---dangerously-accept\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"march-2026\"\u003eMarch 2026 \u003ca href=\"#march-2026\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"april-2026\"\u003eApril 2026 \u003ca href=\"#april-2026\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"closing-the-editor\"\u003eClosing the editor \u003ca href=\"#closing-the-editor\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"http://dropper.wayl.one/file/b289fda3-35e7-4b2f-aa21-6601c57d937a.mp4\" class=\"glightbox-link\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"http://dropper.wayl.one/file/b289fda3-35e7-4b2f-aa21-6601c57d937a.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"http://dropper.wayl.one/file/b289fda3-35e7-4b2f-aa21-6601c57d937a.mp4\" type=\"video/mp4\"\u003eb289fda3-35e7-4b2f-aa21-6601c57d937a.mp4\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eClosing the Editor - Gemini\u003c/p\u003e\u003c/figcaption\u003e\n\u003c/figure\u003e\n",
      "content_text": "\n\u003e 🌱 This post is still growing\n\nLate last year I started writing \u003ca href=\"/im-out-on-agents/\" class=\"wikilink\" data-title=\"I\u0026#39;m Out On Agents\" data-description=\"Its the year 2025 and we are only a few years into having 6 months to live before ai takes our jobs, and the big push right now is agents, managing agents. I...\" data-date=\"2025-08-27\"\u003eI\u0026#39;m Out On Agents\u003c/a\u003e.  Agents sucked, the\nmodels were good, but there was still something missing between the harnesses\nand the models.  They could write good code, they could do some debugging and\nexploring, but they were too good at fucking up the whole project to be useful.\nThey could crank out Green Field POC's like nobody's business, but they created\nso much mess in brown field projects that it was easier to chat and edit\nyourself.\n\n![f91a8893-b1ba-422a-9390-18de5034483c.mp4](http://dropper.wayl.one/file/f91a8893-b1ba-422a-9390-18de5034483c.mp4)\nThe Beautiful Glitch - Gemini\n\n## The Inflection Point\n\nIt's very well agreed on that the inflection point for most people happened\nwith Anthropic Opus 4.5 in late Nov 2025.  Early adopters probably noticed\nright away and shouted from the rooftops how good it was.  But we've all heard\nthat developers have 6 months before ai writes all the code for years, so this\nfelt like the rest of the noise.\n\nHitting the December slowdown many of us hit code freezes at work.  We\ncompletely disconnect from work for the last Week and come back in January.\nDuring this time, its very common for us to try out new tools, new techniques\nwork on side projects, create POC for that thing we never have time for.  While\nit looks like less features coming into the apps we support this is an\nimportant time for us to explore and reflect.\n\nAnthropic was super generous with a free tier giving out huge levels of free\ntokens at the time.  So many of us laughed and threw it at our side projects\nexpecting the normal garbage output, but maybe some good ideas to come from it.\nBut that's not what was happening anymore, somehow these agents do some real\nwork, follow plans and stick to scope really well.  And if you lay out a big\nenough plan they tended to keep cooking and completing features.\n\n## January 2026\n\n_flu season_\n\nFor me and many others around the country we were hit with a rough flu season,\nkicking in and draining us mentally for a good month or so.  I wanted to work,\nI was getting excited about some projects and wanted to get them going, but I\nwas constantly wiped and had no capacity.  I had no ability to think on complex\ntasks, I was coughing all the time, just trying to survive, but yet wanted to\ndo something.  I started doing some small clean up, some work on side projects.\n\nAt this point I was still afraid of really letting agents cut loose on\nsomething meaningful, something that users depend on.\n\n## February 2026\n_what just happened?_\n\n## yes or --dangerously-accept\n\n## March 2026\n\n## April 2026\n\n\n## Closing the editor\n\n![b289fda3-35e7-4b2f-aa21-6601c57d937a.mp4](http://dropper.wayl.one/file/b289fda3-35e7-4b2f-aa21-6601c57d937a.mp4)\nClosing the Editor - Gemini\n\n\n\n\n\n",
      "summary": "🌱 This post is still growing",
      "date_published": "2026-04-10T16:11:37Z",
      "date_modified": "2026-04-10T16:11:37Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "agentic",
        "agents"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/ai-wars-worse/",
      "url": "https://go.waylonwalker.com/ai-wars-worse/",
      "title": "The Ai Wars Are So Much Worse Than The Framework Wars",
      "content_html": "\u003cp\u003eI’ve been thinking about this for awhile, the AI wars are so much worse and burnout prone than the framework wars of the 2010’s.\u003c/p\u003e\n\u003cp\u003eI remember really starting my professional programming journey during the framework wars.  It was a time when there were new and exciting js things every single month.  Frameworks and meta frameworks came and went, the ones that lasted changed best practices yearly or so, often flip flopping on technique.\u003c/p\u003e\n\u003cp\u003eI was deep in python and data engineering at the time and only experienced it adjacently.  I was into webdev.  I did a bit of react, gastby, vue, gave all the big ones a try in a demo level.\u003c/p\u003e\n",
      "content_text": "I've been thinking about this for awhile, the AI wars are so much worse and burnout prone than the framework wars of the 2010's.\n\nI remember really starting my professional programming journey during the framework wars.  It was a time when there were new and exciting js things every single month.  Frameworks and meta frameworks came and went, the ones that lasted changed best practices yearly or so, often flip flopping on technique.\n\nI was deep in python and data engineering at the time and only experienced it adjacently.  I was into webdev.  I did a bit of react, gastby, vue, gave all the big ones a try in a demo level.\n",
      "summary": "I've been thinking about this for awhile, the AI wars are so much worse and burnout prone than the framework wars of the 2010's.",
      "date_published": "2026-03-10T14:36:43Z",
      "date_modified": "2026-03-10T14:36:43Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/a-gaming-keyboard/",
      "url": "https://go.waylonwalker.com/a-gaming-keyboard/",
      "title": "A Gaming Keyboard",
      "content_html": "\u003ch2 id=\"requirements\"\u003eRequirements \u003ca href=\"#requirements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMinecraft\u003c/li\u003e\n\u003cli\u003eTerraria\u003c/li\u003e\n\u003cli\u003eSilkSong\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"3x6-layout\"\u003e3x6 layout \u003ca href=\"#3x6-layout\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e╭────┬────┬────┬────┬────┬────╮\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│    │    │    │    │    │    │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e├────┼────┼────┼────┼────┼────┤\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│    │    │    │    │    │    │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e├────┼────┼────┼────┼────┼────┤\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│    │    │    │    │    │    │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e╰────┴────┴────┴────┼────┼────┼────╮\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                    │    │    │    │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                    ╰────┴────┴────╯\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/f5769ee4-7094-4527-a27c-c4b9f3d58bc2.mp4\" class=\"glightbox-link\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/f5769ee4-7094-4527-a27c-c4b9f3d58bc2.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/f5769ee4-7094-4527-a27c-c4b9f3d58bc2.mp4\" type=\"video/mp4\"\u003eYour browser does not support the video tag.\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\n## Requirements\n\n* Minecraft\n* Terraria\n* SilkSong\n\n\n## 3x6 layout\n\n```text\n╭────┬────┬────┬────┬────┬────╮\n│    │    │    │    │    │    │\n├────┼────┼────┼────┼────┼────┤\n│    │    │    │    │    │    │\n├────┼────┼────┼────┼────┼────┤\n│    │    │    │    │    │    │\n╰────┴────┴────┴────┼────┼────┼────╮\n                    │    │    │    │\n                    ╰────┴────┴────╯\n```\n\n![](https://dropper.waylonwalker.com/file/f5769ee4-7094-4527-a27c-c4b9f3d58bc2.mp4)\n",
      "summary": "Terraria * SilkSong",
      "date_published": "2026-03-05T16:33:27Z",
      "date_modified": "2026-03-05T16:33:27Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "keeb"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/ses-3444b09b1ffexter3elfg5qqtg/",
      "url": "https://go.waylonwalker.com/ses-3444b09b1ffexter3elfg5qqtg/",
      "title": "Ses_3444b09b1ffexter3elfg5qqtg",
      "content_html": "\u003cp\u003e\u003cstrong\u003eSession ID:\u003c/strong\u003e ses_3444b09b1ffeXTEr3ELFg5qqtg\n\u003cstrong\u003eCreated:\u003c/strong\u003e 3/4/2026, 7:55:24 PM\n\u003cstrong\u003eUpdated:\u003c/strong\u003e 3/4/2026, 8:52:32 PM\u003c/p\u003e\n\u003chr/\u003e\n\u003ch2 id=\"user\"\u003eUser \u003ca href=\"#user\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI want to spec out a cli for tmux session switching in go.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eresponsive to terminal size\u003c/li\u003e\n\u003cli\u003eworks in tmux popup\u003c/li\u003e\n\u003cli\u003eshows list of tmux sessions with favorites pinned at the top\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ekeymap\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ej/k arrow navigation\u003c/li\u003e\n\u003cli\u003etab to switch sections\u003c/li\u003e\n\u003cli\u003easdfqwertzxcvb to pick a session (letter listed next to the session)\u003c/li\u003e\n\u003cli\u003espace to select a session, then arrows j/k move that session up in priority and hotkey letter\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--24s\"\u003eAssistant (Build · gpt-5.3-codex · 2.4s) \u003ca href=\"#assistant-build--gpt-53-codex--24s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInitiating brainstorming skill load\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: skill\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;name\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;brainstorming\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026lt;skill_content name=\u0026#34;brainstorming\u0026#34;\u0026gt;\n# Skill: brainstorming\n\n# Brainstorming Ideas Into Designs\n\n## Overview\n\nHelp turn ideas into fully formed designs and specs through natural collaborative dialogue.\n\nStart by understanding the current project context, then ask questions one at a time to refine the idea. Once you understand what you\u0026#39;re building, present the design in small sections (200-300 words), checking after each section whether it looks right so far.\n\n## The Process\n\n**Understanding the idea:**\n- Check out the current project state first (files, docs, recent commits)\n- Ask questions one at a time to refine the idea\n- Prefer multiple choice questions when possible, but open-ended is fine too\n- Only one question per message - if a topic needs more exploration, break it into multiple questions\n- Focus on understanding: purpose, constraints, success criteria\n\n**Exploring approaches:**\n- Propose 2-3 different approaches with trade-offs\n- Present options conversationally with your recommendation and reasoning\n- Lead with your recommended option and explain why\n\n**Presenting the design:**\n- Once you believe you understand what you\u0026#39;re building, present the design\n- Break it into sections of 200-300 words\n- Ask after each section whether it looks right so far\n- Cover: architecture, components, data flow, error handling, testing\n- Be ready to go back and clarify if something doesn\u0026#39;t make sense\n\n## After the Design\n\n**Documentation:**\n- Write the validated design to `docs/plans/YYYY-MM-DD-\u0026lt;topic\u0026gt;-design.md`\n- Use elements-of-style:writing-clearly-and-concisely skill if available\n- Commit the design document to git\n\n**Implementation (if continuing):**\n- Ask: \u0026#34;Ready to set up for implementation?\u0026#34;\n- Use superpowers:using-git-worktrees to create isolated workspace\n- Use superpowers:writing-plans to create detailed implementation plan\n\n## Key Principles\n\n- **One question at a time** - Don\u0026#39;t overwhelm with multiple questions\n- **Multiple choice preferred** - Easier to answer than open-ended when possible\n- **YAGNI ruthlessly** - Remove unnecessary features from all designs\n- **Explore alternatives** - Always propose 2-3 approaches before settling\n- **Incremental validation** - Present design in sections, validate each\n- **Be flexible** - Go back and clarify when something doesn\u0026#39;t make sense\n\nBase directory for this skill: file:///home/waylon/.agents/skills/brainstorming\nRelative paths in this skill (e.g., scripts/, reference/) are relative to this base directory.\nNote: file list is sampled.\n\n\u0026lt;skill_files\u0026gt;\n\n\u0026lt;/skill_files\u0026gt;\n\u0026lt;/skill_content\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--88s\"\u003eAssistant (Build · gpt-5.3-codex · 8.8s) \u003ca href=\"#assistant-build--gpt-53-codex--88s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePlanning cautious context inspection\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: glob\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;pattern\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;**/*\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;path\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eNo files found\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--270s\"\u003eAssistant (Build · gpt-5.3-codex · 27.0s) \u003ca href=\"#assistant-build--gpt-53-codex--270s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eOutlining comprehensive spec approach\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eGreat idea. Here’s a practical spec you can build straight into Go.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eProduct Shape\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBuild \u003ccode\u003etms\u003c/code\u003e (tmux session switcher) as a full-screen TUI that also runs cleanly inside \u003ccode\u003etmux popup\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003ePrimary goal: fast switching with keyboard-only flow and stable hotkeys.\u003c/li\u003e\n\u003cli\u003eSession list is split into sections: \u003ccode\u003eFavorites\u003c/code\u003e (pinned) and \u003ccode\u003eOthers\u003c/code\u003e (remaining tmux sessions).\u003c/li\u003e\n\u003cli\u003eFavorites always render at top; within each section, order is user-priority order.\u003c/li\u003e\n\u003cli\u003eHotkey letters are shown beside each session and are re-assigned from top-to-bottom using: \u003ccode\u003easdfqwertzxcvb\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eRecommended Stack\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ebubbletea\u003c/code\u003e for event loop + resize handling.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ebubbles/list\u003c/code\u003e (or custom list model) for session rendering and selection.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elipgloss\u003c/code\u003e for responsive styling and compact popup-safe layout.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eos/exec\u003c/code\u003e for tmux integration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eTmux Integration\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRead sessions with:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003etmux list-sessions -F \u0026#34;#{session_name}|#{session_attached}|#{session_last_attached}\u0026#34;\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eSwitch session with:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003etmux switch-client -t \u0026lt;session\u0026gt;\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eOptional sanity checks:\n\u003cul\u003e\n\u003cli\u003edetect tmux via \u003ccode\u003e$TMUX\u003c/code\u003e; show error if not running in tmux context.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eData Model\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePersist state at \u003ccode\u003e~/.config/tms/state.json\u003c/code\u003e (or XDG path).\u003c/li\u003e\n\u003cli\u003eSchema:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003efavorites: []string\u003c/code\u003e (ordered names)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eorder: []string\u003c/code\u003e (global priority fallback)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elastSelected: string\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eHotkeys are computed at runtime from rendered order (not persisted directly).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eKeymap Spec\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ej\u003c/code\u003e / \u003ccode\u003eDown\u003c/code\u003e: move cursor down\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ek\u003c/code\u003e / \u003ccode\u003eUp\u003c/code\u003e: move cursor up\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTab\u003c/code\u003e: cycle section focus (\u003ccode\u003eFavorites\u003c/code\u003e \u0026lt;-\u0026gt; \u003ccode\u003eOthers\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[asdfqwertzxcvb]\u003c/code\u003e: activate session currently bound to that letter; immediate switch and exit\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSpace\u003c/code\u003e: toggle “reorder mode” for currently highlighted session\n\u003cul\u003e\n\u003cli\u003eWhile active, \u003ccode\u003ej/k\u003c/code\u003e moves that session up/down within current section\u003c/li\u003e\n\u003cli\u003eEach move recalculates priority and hotkey mapping live\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSpace\u003c/code\u003e again confirms reorder mode off\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eEnter\u003c/code\u003e: switch to highlighted session\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eEsc\u003c/code\u003e or \u003ccode\u003eq\u003c/code\u003e: cancel/exit\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eResponsive + Popup Behavior\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eOn terminal resize (\u003ccode\u003etea.WindowSizeMsg\u003c/code\u003e), recompute:\n\u003cul\u003e\n\u003cli\u003elist height = terminal height - header - footer - margins\u003c/li\u003e\n\u003cli\u003etruncate long names with ellipsis\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eSingle-column layout for narrow widths; richer status line for wider widths.\u003c/li\u003e\n\u003cli\u003eNo hardcoded minimum popup size; degrade gracefully with compact row renderer.\u003c/li\u003e\n\u003cli\u003eKeep render under ~16ms/frame by precomputing derived row labels.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eUX Rules\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCurrent session visually marked (e.g., \u003ccode\u003e*\u003c/code\u003e + muted color).\u003c/li\u003e\n\u003cli\u003eFavorites section always shown first, even if empty (show “No favorites yet” placeholder).\u003c/li\u003e\n\u003cli\u003eIf session disappears mid-run (tmux changed), refresh list and preserve cursor as best effort.\u003c/li\u003e\n\u003cli\u003eReordering in \u003ccode\u003eFavorites\u003c/code\u003e changes pin priority; reordering in \u003ccode\u003eOthers\u003c/code\u003e changes non-favorite priority only.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eError Handling\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIf tmux command fails: show inline error banner, keep app running, allow retry (\u003ccode\u003er\u003c/code\u003e optional).\u003c/li\u003e\n\u003cli\u003eCorrupt state file: back it up to \u003ccode\u003estate.json.bak\u003c/code\u003e, start with defaults.\u003c/li\u003e\n\u003cli\u003eMissing sessions in saved state: drop them during load normalization.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eTesting Plan\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUnit tests:\n\u003cul\u003e\n\u003cli\u003ehotkey assignment by visible order\u003c/li\u003e\n\u003cli\u003esection partitioning (favorites vs others)\u003c/li\u003e\n\u003cli\u003ereorder logic and boundary behavior\u003c/li\u003e\n\u003cli\u003estate load/save normalization\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eIntegration tests (command-layer):\n\u003cul\u003e\n\u003cli\u003eparse \u003ccode\u003elist-sessions\u003c/code\u003e output fixtures\u003c/li\u003e\n\u003cli\u003everify switch command target formatting\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eManual checks:\n\u003cul\u003e\n\u003cli\u003estandard terminal and \u003ccode\u003etmux popup\u003c/code\u003e at small/medium/large sizes\u003c/li\u003e\n\u003cli\u003erapid resize during reorder mode\u003c/li\u003e\n\u003cli\u003eswitching with every letter key in map\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you want, I can turn this into a concrete implementation plan next (package structure + first-pass interfaces + command skeleton).\u003c/p\u003e\n\u003chr/\u003e\n\u003ch2 id=\"user-1\"\u003eUser \u003ca href=\"#user-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eits called tgo\u003c/p\u003e\n\u003cp\u003eI’m envisioning an app that I can assign a hotkey to it opens instantly in a tmux popup, I press the key for the session that I want an I isntantly go there.  the whole process is only two keystrokes.  its critical that its quick and fast.\u003c/p\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--212s\"\u003eAssistant (Build · gpt-5.3-codex · 21.2s) \u003ca href=\"#assistant-build--gpt-53-codex--212s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eDrafting optimized popup design\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003ePerfect — \u003ccode\u003etgo\u003c/code\u003e should be designed around a \u003cstrong\u003etwo-keystroke fast path\u003c/strong\u003e:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003etmux hotkey opens popup\u003c/li\u003e\n\u003cli\u003epress session letter\u003cbr/\u003e\n→ immediate switch + popup closes\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eFor your goal, optimize for startup latency first, features second.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFast-path spec for \u003ccode\u003etgo\u003c/code\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003etgo\u003c/code\u003e starts, fetches sessions once, renders once, waits for a single key.\u003c/li\u003e\n\u003cli\u003eIf key is in \u003ccode\u003easdfqwertzxcvb\u003c/code\u003e and mapped to a live session:\n\u003cul\u003e\n\u003cli\u003erun \u003ccode\u003etmux switch-client -t \u0026lt;session\u0026gt;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eexit immediately (popup disappears)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eNo animations, no spinner, no deferred UI transitions.\u003c/li\u003e\n\u003cli\u003eKeep key-to-session mapping stable across runs (muscle memory), unless reordered.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003ePerformance-oriented design\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse a minimal UI loop (stdin raw mode + ANSI render), not a heavyweight framework.\u003c/li\u003e\n\u003cli\u003eSingle tmux read command on boot: \u003ccode\u003etmux list-sessions -F ...\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eZero background polling by default.\u003c/li\u003e\n\u003cli\u003ePreload and parse state from XDG config in one read.\u003c/li\u003e\n\u003cli\u003eRender compact, fixed-height rows; truncate names only if needed.\u003c/li\u003e\n\u003cli\u003eTarget cold-start budget: ~20–40ms on typical machine, warm path even lower.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eHotkey behavior\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLetters (\u003ccode\u003easdfqwertzxcvb\u003c/code\u003e) are primary action keys.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ej/k\u003c/code\u003e and arrows for navigation.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTab\u003c/code\u003e switches sections (Favorites / Others).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSpace\u003c/code\u003e enters reorder mode for selected session:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ej/k\u003c/code\u003e moves session priority\u003c/li\u003e\n\u003cli\u003eletter mapping updates immediately\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSpace\u003c/code\u003e confirms and exits reorder mode\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eTmux popup binding\u003c/strong\u003e\nUse a binding like this so launch is one key:\u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"language-tmux\"\u003ebind-key g display-popup -E -w 70% -h 70% \u0026#34;tgo\u0026#34;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e(Replace \u003ccode\u003eg\u003c/code\u003e with your preferred trigger key.)\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eCritical implementation rule\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIf a valid letter is pressed, do not do anything else first: no redraw, no extra checks beyond target existence; switch and exit immediately.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you want, next I can draft the exact \u003ccode\u003etgo\u003c/code\u003e internal package layout and event loop pseudocode optimized for this latency target.\u003c/p\u003e\n\u003chr/\u003e\n\u003ch2 id=\"user-2\"\u003eUser \u003ca href=\"#user-2\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003euse the todo tool to track work, use the @builder for research and writing, create a justfile for managing the project, create a readme, changelog, and github actions to lint, tests, dependabot. create release artifacts on release.\u003c/p\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--134s\"\u003eAssistant (Build · gpt-5.3-codex · 13.4s) \u003ca href=\"#assistant-build--gpt-53-codex--134s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eClarifying tool usage and task delegation\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: todowrite\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;todos\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;content\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Draft builder prompt from tgo requirements and project setup tasks\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;in_progress\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;priority\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;high\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;content\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Run builder subagent to create justfile, README, CHANGELOG, and GitHub workflows (lint, tests, dependabot, release artifacts)\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;pending\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;priority\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;high\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;content\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Review builder results and summarize created files and next steps\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;pending\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;priority\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;medium\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e[\n  {\n    \u0026#34;content\u0026#34;: \u0026#34;Draft builder prompt from tgo requirements and project setup tasks\u0026#34;,\n    \u0026#34;status\u0026#34;: \u0026#34;in_progress\u0026#34;,\n    \u0026#34;priority\u0026#34;: \u0026#34;high\u0026#34;\n  },\n  {\n    \u0026#34;content\u0026#34;: \u0026#34;Run builder subagent to create justfile, README, CHANGELOG, and GitHub workflows (lint, tests, dependabot, release artifacts)\u0026#34;,\n    \u0026#34;status\u0026#34;: \u0026#34;pending\u0026#34;,\n    \u0026#34;priority\u0026#34;: \u0026#34;high\u0026#34;\n  },\n  {\n    \u0026#34;content\u0026#34;: \u0026#34;Review builder results and summarize created files and next steps\u0026#34;,\n    \u0026#34;status\u0026#34;: \u0026#34;pending\u0026#34;,\n    \u0026#34;priority\u0026#34;: \u0026#34;medium\u0026#34;\n  }\n]\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--1191s\"\u003eAssistant (Build · gpt-5.3-codex · 119.1s) \u003ca href=\"#assistant-build--gpt-53-codex--1191s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePreparing detailed task prompt\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: task\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Scaffold project docs and CI\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;subagent_type\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;builder\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;prompt\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;You are working in /home/waylon/git/tgo. Perform research and writing, then implement project scaffolding for a new Go CLI called `tgo`.\\n\\nContext to embed:\\n- `tgo` is a tmux session switcher optimized for speed.\\n- Core UX goal: two-keystroke flow (tmux popup hotkey opens app, then user presses a session letter to switch instantly).\\n- Hotkey set: `asdfqwertzxcvb`; favorites pinned at top; responsive to terminal/popup size.\\n\\nTasks to complete:\\n1) Create a `justfile` for project management commands suitable for Go projects.\\n   - Include at least: help/default list, fmt, lint, test, build, run, tidy, ci.\\n   - Prefer golangci-lint if present; make behavior clear if missing.\\n2) Create a high-quality `README.md` covering:\\n   - What tgo is and performance philosophy.\\n   - Planned keymap and interaction model (including two-keystroke fast path).\\n   - Planned architecture notes.\\n   - Local development workflow using `just`.\\n   - Example tmux binding to open `tgo` in popup.\\n3) Create `CHANGELOG.md` using Keep a Changelog format with an initial unreleased section.\\n4) Add GitHub automation:\\n   - `.github/workflows/ci.yml` for lint + tests on pushes/PRs.\\n   - `.github/dependabot.yml` for Go modules + GitHub Actions updates.\\n   - `.github/workflows/release.yml` that creates release artifacts when a GitHub Release is published.\\n     * Build cross-platform binaries (linux/mac/windows amd64+arm64 where applicable) and upload as artifacts/assets.\\n     * Include checksums file.\\n5) Ensure workflows are reasonable for a fresh repo (avoid assumptions not present).\\n6) If needed for CI/lint/test sanity in a fresh repo, add minimal Go scaffolding (e.g., go.mod and tiny main/test) but keep it minimal.\\n\\nConstraints:\\n- Keep files concise and practical.\\n- Use ASCII only.\\n- Follow conventional Go and GitHub Actions practices.\\n\\nReturn a final report with:\\n- Files created/updated.\\n- Any assumptions made.\\n- Recommended next commands to run locally.\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003etask_id: ses_344457065ffeyL8ub5ZBsD7Ed5 (for resuming to continue this task if needed)\n\n\u0026lt;task_result\u0026gt;\nScaffolded the `tgo` CLI with a minimal Go module, placeholder command/testing, documentation, changelog, `just` workflow recipes, and GitHub automation covering CI, Dependabot, and release pipelines (cross-platform builds + checksums).\n\n**Files**\n- `go.mod`, `cmd/tgo/main.go`, `cmd/tgo/main_test.go`\n- `README.md`, `justfile`, `CHANGELOG.md`\n- `.github/workflows/ci.yml`, `.github/workflows/release.yml`, `.github/dependabot.yml`\n\n**Assumptions**\n- The module path is simply `tgo` (no upstream repo URL provided) and `ubuntu-latest` agents have `zip`/`sha256sum` for release packaging.\n- Local linting will skip `golangci-lint` unless it is installed, so `just lint` prints a warning but stays green.\n\n**Next Steps**\n1. `just ci` to run fmt, lint, and tests end-to-end.\n2. `just run` to verify the CLI launches and prints the hotkey list.\n\u0026lt;/task_result\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--80s\"\u003eAssistant (Build · gpt-5.3-codex · 8.0s) \u003ca href=\"#assistant-build--gpt-53-codex--80s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePlanning todo updates and file verification\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: read\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;filePath\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo/justfile\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026lt;path\u0026gt;/home/waylon/git/tgo/justfile\u0026lt;/path\u0026gt;\n\u0026lt;type\u0026gt;file\u0026lt;/type\u0026gt;\n\u0026lt;content\u0026gt;1: default: help\n2: \n3: help:\n4:     @just --list\n5: \n6: fmt:\n7:     @go fmt ./...\n8: \n9: lint:\n10:     @if command -v golangci-lint \u0026gt;/dev/null 2\u0026gt;\u0026amp;1; then \\\n11:         golangci-lint run ./...; \\\n12:     else \\\n13:         echo \u0026#34;golangci-lint not found; install it to enable lint checks.\u0026#34;; \\\n14:         exit 0; \\\n15:     fi\n16: \n17: test:\n18:     @go test ./...\n19: \n20: build:\n21:     @mkdir -p bin\n22:     @go build -ldflags \u0026#34;-s -w\u0026#34; -o bin/tgo ./cmd/tgo\n23: \n24: run:\n25:     @go run ./cmd/tgo\n26: \n27: tidy:\n28:     @go mod tidy\n29: \n30: ci: fmt lint test\n\n(End of file - total 30 lines)\n\u0026lt;/content\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eTool: read\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;filePath\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo/README.md\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026lt;path\u0026gt;/home/waylon/git/tgo/README.md\u0026lt;/path\u0026gt;\n\u0026lt;type\u0026gt;file\u0026lt;/type\u0026gt;\n\u0026lt;content\u0026gt;1: # tgo\n2: \n3: tgo is a tmux session switcher optimized for speed and predictability. It runs inside a tmux popup or terminal, draws the active sessions, highlights favorites, and lets you switch with a single letter after opening (two keystrokes overall). The focus is low latency: the popup hotkey triggers `tgo`, and the keyboard-only UI assumes tmux-level terminal performance and responsive layouts.\n4: \n5: ## UX guidance\n6: \n7: - **Two-keystroke flow**: Press the tmux popup hotkey, then tap the letter mapped to the target session. No arrow navigation, no typing a name twice.\n8: - **Key map**: `asdf qwert zxcvb` serves as the ordered list of hotkeys. Favorites are pinned to the top of the list so that letters stay stable even when promting terminals resize.\n9: - **Sizing**: `tgo` will render the session list responsively so that both narrow popups and larger terminals remain usable—critical for tmux popup contexts.\n10: \n11: ## Architecture notes\n12: \n13: - `cmd/tgo` contains the CLI entry point and will orchestrate session discovery, layout, and rendering logic.\n14: - Session data comes from tmux via shell calls (placeholder now), with an overlay layer for the favorites list and letter assignment.\n15: - UI rendering will target the terminal/popup dimensions reported by tmux, keeping control loops synchronous so the hotkey response stays within one frame.\n16: \n17: ## Local workflow (using `just`)\n18: \n19: 1. Install [just](https://github.com/casey/just) if missing.\n20: 2. `just fmt` to format Go files.\n21: 3. `just lint` to run `golangci-lint` if it is installed (falls back to a warning otherwise).\n22: 4. `just test` to exercise the package.\n23: 5. `just build` produces `bin/tgo` under the repository root.\n24: 6. `just run` executes the CLI locally.\n25: 7. `just tidy` keeps `go.mod` and `go.sum` neat.\n26: 8. `just ci` runs `fmt`, `lint`, and `test` in sequence for a quick check before pushing.\n27: \n28: ## Example tmux binding\n29: \n30: ```tmux\n31: bind-key q run-shell \u0026#34;tmux popup -E \u0026#39;tgo\u0026#39;\u0026#34;\n32: ```\n33: \n34: This binding opens a popup that immediately starts `tgo`, letting you press one of the letters from `asdfqwertzxcvb` to jump to the desired session.\n\n(End of file - total 34 lines)\n\u0026lt;/content\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eTool: read\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;filePath\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo/CHANGELOG.md\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026lt;path\u0026gt;/home/waylon/git/tgo/CHANGELOG.md\u0026lt;/path\u0026gt;\n\u0026lt;type\u0026gt;file\u0026lt;/type\u0026gt;\n\u0026lt;content\u0026gt;1: # Changelog\n2: \n3: All notable changes to `tgo` will be documented in this file. This project adheres to [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html).\n4: \n5: ## [Unreleased]\n6: \n7: ### Added\n8: - base Go module, CLI entry point, and placeholder session hotkey collection.\n9: - `justfile` with formatter, lint, test, build, run, tidy, and CI recipes.\n10: - `README.md` describing the command, UX goal, architecture notes, tmux binding, and local workflow.\n11: - `CHANGELOG.md` initial structure plus README and changelog.\n12: - GitHub workflows for CI, dependency updates, and release automation, along with cross-platform binary packaging and checksums.\n\n(End of file - total 12 lines)\n\u0026lt;/content\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eTool: read\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;filePath\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo/.github/workflows/ci.yml\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026lt;path\u0026gt;/home/waylon/git/tgo/.github/workflows/ci.yml\u0026lt;/path\u0026gt;\n\u0026lt;type\u0026gt;file\u0026lt;/type\u0026gt;\n\u0026lt;content\u0026gt;1: name: CI\n2: \n3: on:\n4:   push:\n5:     branches: [main]\n6:   pull_request:\n7:     branches: [main]\n8: \n9: jobs:\n10:   checks:\n11:     runs-on: ubuntu-latest\n12:     steps:\n13:       - uses: actions/checkout@v4\n14:       - name: Set up Go\n15:         uses: actions/setup-go@v5\n16:         with:\n17:           go-version: 1.22\n18:       - name: Cache Go modules\n19:         uses: actions/cache@v3\n20:         with:\n21:           path: |\n22:             ~/.cache/go-build\n23:             ~/go/pkg/mod\n24:           key: ${{ runner.os }}-go-${{ hashFiles(\u0026#39;**/go.sum\u0026#39;) }}\n25:       - name: Format code\n26:         run: go fmt ./...\n27:       - name: Run golangci-lint\n28:         uses: golangci/golangci-lint-action@v4\n29:         with:\n30:           version: v1.64.0\n31:           args: run ./...\n32:       - name: Vet packages\n33:         run: go vet ./...\n34:       - name: Run tests\n35:         run: go test ./...\n\n(End of file - total 35 lines)\n\u0026lt;/content\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eTool: read\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;filePath\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo/.github/workflows/release.yml\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026lt;path\u0026gt;/home/waylon/git/tgo/.github/workflows/release.yml\u0026lt;/path\u0026gt;\n\u0026lt;type\u0026gt;file\u0026lt;/type\u0026gt;\n\u0026lt;content\u0026gt;1: name: Release\n2: \n3: on:\n4:   release:\n5:     types: [published]\n6: \n7: jobs:\n8:   build:\n9:     runs-on: ubuntu-latest\n10:     steps:\n11:       - uses: actions/checkout@v4\n12:       - name: Set up Go\n13:         uses: actions/setup-go@v5\n14:         with:\n15:           go-version: 1.22\n16:       - name: Build cross-platform binaries\n17:         run: |\n18:           set -euo pipefail\n19:           artifacts=artifacts\n20:           mkdir -p \u0026#34;$artifacts\u0026#34;\n21:           combos=(\n22:             linux:amd64\n23:             linux:arm64\n24:             darwin:amd64\n25:             darwin:arm64\n26:             windows:amd64\n27:             windows:arm64\n28:           )\n29:           for combo in \u0026#34;${combos[@]}\u0026#34;; do\n30:             os=${combo%%:*}\n31:             arch=${combo##*:}\n32:             bin_name=\u0026#34;tgo-${os}-${arch}\u0026#34;\n33:             bin_path=\u0026#34;$artifacts/${bin_name}\u0026#34;\n34:             if [[ \u0026#34;$os\u0026#34; == \u0026#34;windows\u0026#34; ]]; then\n35:               bin_path+=\u0026#34;.exe\u0026#34;\n36:             fi\n37:             GOOS=\u0026#34;$os\u0026#34; GOARCH=\u0026#34;$arch\u0026#34; go build -ldflags \u0026#34;-s -w\u0026#34; -o \u0026#34;$bin_path\u0026#34; ./cmd/tgo\n38:             archive=\u0026#34;$artifacts/${bin_name}.zip\u0026#34;\n39:             zip -j \u0026#34;$archive\u0026#34; \u0026#34;$bin_path\u0026#34;\n40:             rm \u0026#34;$bin_path\u0026#34;\n41:           done\n42:           sha256sum \u0026#34;$artifacts\u0026#34;/*.zip \u0026gt; \u0026#34;$artifacts/checksums.txt\u0026#34;\n43:       - name: Publish release assets\n44:         uses: softprops/action-gh-release@v1\n45:         with:\n46:           files: |\n47:             artifacts/*.zip\n48:             artifacts/checksums.txt\n49:         env:\n50:           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n\n(End of file - total 50 lines)\n\u0026lt;/content\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eTool: read\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;filePath\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo/.github/dependabot.yml\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026lt;path\u0026gt;/home/waylon/git/tgo/.github/dependabot.yml\u0026lt;/path\u0026gt;\n\u0026lt;type\u0026gt;file\u0026lt;/type\u0026gt;\n\u0026lt;content\u0026gt;1: version: 2\n2: updates:\n3:   - package-ecosystem: gomod\n4:     directory: /\n5:     schedule:\n6:       interval: weekly\n7:   - package-ecosystem: github-actions\n8:     directory: /\n9:     schedule:\n10:       interval: weekly\n\n(End of file - total 10 lines)\n\u0026lt;/content\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--24s-1\"\u003eAssistant (Build · gpt-5.3-codex · 2.4s) \u003ca href=\"#assistant-build--gpt-53-codex--24s-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eScanning Go files for mentions\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: read\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;filePath\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo/go.mod\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026lt;path\u0026gt;/home/waylon/git/tgo/go.mod\u0026lt;/path\u0026gt;\n\u0026lt;type\u0026gt;file\u0026lt;/type\u0026gt;\n\u0026lt;content\u0026gt;1: module tgo\n2: \n3: go 1.22\n\n(End of file - total 3 lines)\n\u0026lt;/content\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eTool: read\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;filePath\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo/cmd/tgo/main.go\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026lt;path\u0026gt;/home/waylon/git/tgo/cmd/tgo/main.go\u0026lt;/path\u0026gt;\n\u0026lt;type\u0026gt;file\u0026lt;/type\u0026gt;\n\u0026lt;content\u0026gt;1: package main\n2: \n3: import \u0026#34;fmt\u0026#34;\n4: \n5: const hotkeyRunes = \u0026#34;asdfqwertzxcvb\u0026#34;\n6: \n7: func main() {\n8: \tfmt.Println(\u0026#34;tgo: tmux session switcher\u0026#34;)\n9: \tfmt.Println(\u0026#34;hotkeys:\u0026#34;, hotkeyRunes)\n10: }\n11: \n12: func SessionHotkeyAlphabet() string {\n13: \treturn hotkeyRunes\n14: }\n\n(End of file - total 14 lines)\n\u0026lt;/content\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eTool: read\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;filePath\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo/cmd/tgo/main_test.go\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026lt;path\u0026gt;/home/waylon/git/tgo/cmd/tgo/main_test.go\u0026lt;/path\u0026gt;\n\u0026lt;type\u0026gt;file\u0026lt;/type\u0026gt;\n\u0026lt;content\u0026gt;1: package main\n2: \n3: import \u0026#34;testing\u0026#34;\n4: \n5: func TestSessionHotkeyAlphabet(t *testing.T) {\n6: \twant := \u0026#34;asdfqwertzxcvb\u0026#34;\n7: \tif got := SessionHotkeyAlphabet(); got != want {\n8: \t\tt.Fatalf(\u0026#34;hotkey alphabet mismatch: got %q want %q\u0026#34;, got, want)\n9: \t}\n10: }\n\n(End of file - total 10 lines)\n\u0026lt;/content\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--43s\"\u003eAssistant (Build · gpt-5.3-codex · 4.3s) \u003ca href=\"#assistant-build--gpt-53-codex--43s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eRunning Go tests to verify\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;go test ./...\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Runs Go tests for all packages\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eok  \ttgo/cmd/tgo\t0.002s\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--23s\"\u003eAssistant (Build · gpt-5.3-codex · 2.3s) \u003ca href=\"#assistant-build--gpt-53-codex--23s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eCompleting todos update\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: todowrite\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;todos\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;content\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Draft builder prompt from tgo requirements and project setup tasks\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;completed\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;priority\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;high\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;content\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Run builder subagent to create justfile, README, CHANGELOG, and GitHub workflows (lint, tests, dependabot, release artifacts)\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;completed\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;priority\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;high\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;content\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Review builder results and summarize created files and next steps\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;completed\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;priority\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;medium\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e[\n  {\n    \u0026#34;content\u0026#34;: \u0026#34;Draft builder prompt from tgo requirements and project setup tasks\u0026#34;,\n    \u0026#34;status\u0026#34;: \u0026#34;completed\u0026#34;,\n    \u0026#34;priority\u0026#34;: \u0026#34;high\u0026#34;\n  },\n  {\n    \u0026#34;content\u0026#34;: \u0026#34;Run builder subagent to create justfile, README, CHANGELOG, and GitHub workflows (lint, tests, dependabot, release artifacts)\u0026#34;,\n    \u0026#34;status\u0026#34;: \u0026#34;completed\u0026#34;,\n    \u0026#34;priority\u0026#34;: \u0026#34;high\u0026#34;\n  },\n  {\n    \u0026#34;content\u0026#34;: \u0026#34;Review builder results and summarize created files and next steps\u0026#34;,\n    \u0026#34;status\u0026#34;: \u0026#34;completed\u0026#34;,\n    \u0026#34;priority\u0026#34;: \u0026#34;medium\u0026#34;\n  }\n]\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--92s\"\u003eAssistant (Build · gpt-5.3-codex · 9.2s) \u003ca href=\"#assistant-build--gpt-53-codex--92s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eImplemented. I used the todo tracker, generated a builder prompt from your \u003ccode\u003etgo\u003c/code\u003e context, and ran the \u003ccode\u003ebuilder\u003c/code\u003e subagent to do the research/writing and scaffold the repo.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded project scaffolding: \u003ccode\u003ego.mod\u003c/code\u003e, \u003ccode\u003ecmd/tgo/main.go\u003c/code\u003e, \u003ccode\u003ecmd/tgo/main_test.go\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdded project management: \u003ccode\u003ejustfile\u003c/code\u003e with \u003ccode\u003ehelp\u003c/code\u003e, \u003ccode\u003efmt\u003c/code\u003e, \u003ccode\u003elint\u003c/code\u003e, \u003ccode\u003etest\u003c/code\u003e, \u003ccode\u003ebuild\u003c/code\u003e, \u003ccode\u003erun\u003c/code\u003e, \u003ccode\u003etidy\u003c/code\u003e, \u003ccode\u003eci\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdded docs: \u003ccode\u003eREADME.md\u003c/code\u003e (two-keystroke UX, keymap, architecture notes, tmux popup binding), \u003ccode\u003eCHANGELOG.md\u003c/code\u003e (Keep a Changelog)\u003c/li\u003e\n\u003cli\u003eAdded automation:\n\u003cul\u003e\n\u003cli\u003eCI: \u003ccode\u003e.github/workflows/ci.yml\u003c/code\u003e (fmt, golangci-lint action, vet, test)\u003c/li\u003e\n\u003cli\u003eDependabot: \u003ccode\u003e.github/dependabot.yml\u003c/code\u003e (gomod + github-actions weekly)\u003c/li\u003e\n\u003cli\u003eRelease artifacts: \u003ccode\u003e.github/workflows/release.yml\u003c/code\u003e (cross-platform zip builds + \u003ccode\u003echecksums.txt\u003c/code\u003e on published release)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eVerified tests locally with \u003ccode\u003ego test ./...\u003c/code\u003e (pass)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eKey files:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ejustfile\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eREADME.md\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCHANGELOG.md\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e.github/workflows/ci.yml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e.github/workflows/release.yml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e.github/dependabot.yml\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNatural next steps:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eRun \u003ccode\u003ejust ci\u003c/code\u003e locally.\u003c/li\u003e\n\u003cli\u003eWire real tmux session discovery/switching into \u003ccode\u003ecmd/tgo/main.go\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdd first-pass TUI loop for the two-keystroke popup flow.\u003c/li\u003e\n\u003c/ol\u003e\n\u003chr/\u003e\n\u003ch2 id=\"user-3\"\u003eUser \u003ca href=\"#user-3\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003ekeep going until we have a fully workign tui that can list, switch, manage tmux sessions\u003c/p\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--62s\"\u003eAssistant (Build · gpt-5.3-codex · 6.2s) \u003ca href=\"#assistant-build--gpt-53-codex--62s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePreparing implementation strategy\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: todowrite\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;todos\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;content\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Inspect current tgo scaffold and define concrete TUI/session management architecture\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;in_progress\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;priority\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;high\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;content\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Implement tmux integration and persistent state (favorites/order)\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;pending\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;priority\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;high\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;content\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Implement interactive TUI with navigation, section switching, hotkeys, and reorder mode\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;pending\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;priority\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;high\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;content\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Update README with implemented behavior and usage\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;pending\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;priority\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;medium\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;content\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Add/expand tests for key mapping, ordering, and state normalization\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;pending\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;priority\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;medium\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;content\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Run formatting and tests to validate full functionality\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;pending\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;priority\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;high\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e[\n  {\n    \u0026#34;content\u0026#34;: \u0026#34;Inspect current tgo scaffold and define concrete TUI/session management architecture\u0026#34;,\n    \u0026#34;status\u0026#34;: \u0026#34;in_progress\u0026#34;,\n    \u0026#34;priority\u0026#34;: \u0026#34;high\u0026#34;\n  },\n  {\n    \u0026#34;content\u0026#34;: \u0026#34;Implement tmux integration and persistent state (favorites/order)\u0026#34;,\n    \u0026#34;status\u0026#34;: \u0026#34;pending\u0026#34;,\n    \u0026#34;priority\u0026#34;: \u0026#34;high\u0026#34;\n  },\n  {\n    \u0026#34;content\u0026#34;: \u0026#34;Implement interactive TUI with navigation, section switching, hotkeys, and reorder mode\u0026#34;,\n    \u0026#34;status\u0026#34;: \u0026#34;pending\u0026#34;,\n    \u0026#34;priority\u0026#34;: \u0026#34;high\u0026#34;\n  },\n  {\n    \u0026#34;content\u0026#34;: \u0026#34;Update README with implemented behavior and usage\u0026#34;,\n    \u0026#34;status\u0026#34;: \u0026#34;pending\u0026#34;,\n    \u0026#34;priority\u0026#34;: \u0026#34;medium\u0026#34;\n  },\n  {\n    \u0026#34;content\u0026#34;: \u0026#34;Add/expand tests for key mapping, ordering, and state normalization\u0026#34;,\n    \u0026#34;status\u0026#34;: \u0026#34;pending\u0026#34;,\n    \u0026#34;priority\u0026#34;: \u0026#34;medium\u0026#34;\n  },\n  {\n    \u0026#34;content\u0026#34;: \u0026#34;Run formatting and tests to validate full functionality\u0026#34;,\n    \u0026#34;status\u0026#34;: \u0026#34;pending\u0026#34;,\n    \u0026#34;priority\u0026#34;: \u0026#34;high\u0026#34;\n  }\n]\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--41s\"\u003eAssistant (Build · gpt-5.3-codex · 4.1s) \u003ca href=\"#assistant-build--gpt-53-codex--41s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: skill\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;name\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;brainstorming\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026lt;skill_content name=\u0026#34;brainstorming\u0026#34;\u0026gt;\n# Skill: brainstorming\n\n# Brainstorming Ideas Into Designs\n\n## Overview\n\nHelp turn ideas into fully formed designs and specs through natural collaborative dialogue.\n\nStart by understanding the current project context, then ask questions one at a time to refine the idea. Once you understand what you\u0026#39;re building, present the design in small sections (200-300 words), checking after each section whether it looks right so far.\n\n## The Process\n\n**Understanding the idea:**\n- Check out the current project state first (files, docs, recent commits)\n- Ask questions one at a time to refine the idea\n- Prefer multiple choice questions when possible, but open-ended is fine too\n- Only one question per message - if a topic needs more exploration, break it into multiple questions\n- Focus on understanding: purpose, constraints, success criteria\n\n**Exploring approaches:**\n- Propose 2-3 different approaches with trade-offs\n- Present options conversationally with your recommendation and reasoning\n- Lead with your recommended option and explain why\n\n**Presenting the design:**\n- Once you believe you understand what you\u0026#39;re building, present the design\n- Break it into sections of 200-300 words\n- Ask after each section whether it looks right so far\n- Cover: architecture, components, data flow, error handling, testing\n- Be ready to go back and clarify if something doesn\u0026#39;t make sense\n\n## After the Design\n\n**Documentation:**\n- Write the validated design to `docs/plans/YYYY-MM-DD-\u0026lt;topic\u0026gt;-design.md`\n- Use elements-of-style:writing-clearly-and-concisely skill if available\n- Commit the design document to git\n\n**Implementation (if continuing):**\n- Ask: \u0026#34;Ready to set up for implementation?\u0026#34;\n- Use superpowers:using-git-worktrees to create isolated workspace\n- Use superpowers:writing-plans to create detailed implementation plan\n\n## Key Principles\n\n- **One question at a time** - Don\u0026#39;t overwhelm with multiple questions\n- **Multiple choice preferred** - Easier to answer than open-ended when possible\n- **YAGNI ruthlessly** - Remove unnecessary features from all designs\n- **Explore alternatives** - Always propose 2-3 approaches before settling\n- **Incremental validation** - Present design in sections, validate each\n- **Be flexible** - Go back and clarify when something doesn\u0026#39;t make sense\n\nBase directory for this skill: file:///home/waylon/.agents/skills/brainstorming\nRelative paths in this skill (e.g., scripts/, reference/) are relative to this base directory.\nNote: file list is sampled.\n\n\u0026lt;skill_files\u0026gt;\n\n\u0026lt;/skill_files\u0026gt;\n\u0026lt;/skill_content\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--29s\"\u003eAssistant (Build · gpt-5.3-codex · 2.9s) \u003ca href=\"#assistant-build--gpt-53-codex--29s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eResolving inquiry approach conflict\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: glob\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;pattern\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;**/*\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;path\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e/home/waylon/git/tgo/bin/tgo\n/home/waylon/git/tgo/cmd/tgo/main_test.go\n/home/waylon/git/tgo/cmd/tgo/main.go\n/home/waylon/git/tgo/.github/workflows/release.yml\n/home/waylon/git/tgo/.github/dependabot.yml\n/home/waylon/git/tgo/.github/workflows/ci.yml\n/home/waylon/git/tgo/CHANGELOG.md\n/home/waylon/git/tgo/justfile\n/home/waylon/git/tgo/README.md\n/home/waylon/git/tgo/go.mod\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eTool: read\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;filePath\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo/cmd/tgo/main.go\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026lt;path\u0026gt;/home/waylon/git/tgo/cmd/tgo/main.go\u0026lt;/path\u0026gt;\n\u0026lt;type\u0026gt;file\u0026lt;/type\u0026gt;\n\u0026lt;content\u0026gt;1: package main\n2: \n3: import \u0026#34;fmt\u0026#34;\n4: \n5: const hotkeyRunes = \u0026#34;asdfqwertzxcvb\u0026#34;\n6: \n7: func main() {\n8: \tfmt.Println(\u0026#34;tgo: tmux session switcher\u0026#34;)\n9: \tfmt.Println(\u0026#34;hotkeys:\u0026#34;, hotkeyRunes)\n10: }\n11: \n12: func SessionHotkeyAlphabet() string {\n13: \treturn hotkeyRunes\n14: }\n\n(End of file - total 14 lines)\n\u0026lt;/content\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eTool: read\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;filePath\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo/README.md\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026lt;path\u0026gt;/home/waylon/git/tgo/README.md\u0026lt;/path\u0026gt;\n\u0026lt;type\u0026gt;file\u0026lt;/type\u0026gt;\n\u0026lt;content\u0026gt;1: # tgo\n2: \n3: tgo is a tmux session switcher optimized for speed and predictability. It runs inside a tmux popup or terminal, draws the active sessions, highlights favorites, and lets you switch with a single letter after opening (two keystrokes overall). The focus is low latency: the popup hotkey triggers `tgo`, and the keyboard-only UI assumes tmux-level terminal performance and responsive layouts.\n4: \n5: ## UX guidance\n6: \n7: - **Two-keystroke flow**: Press the tmux popup hotkey, then tap the letter mapped to the target session. No arrow navigation, no typing a name twice.\n8: - **Key map**: `asdf qwert zxcvb` serves as the ordered list of hotkeys. Favorites are pinned to the top of the list so that letters stay stable even when promting terminals resize.\n9: - **Sizing**: `tgo` will render the session list responsively so that both narrow popups and larger terminals remain usable—critical for tmux popup contexts.\n10: \n11: ## Architecture notes\n12: \n13: - `cmd/tgo` contains the CLI entry point and will orchestrate session discovery, layout, and rendering logic.\n14: - Session data comes from tmux via shell calls (placeholder now), with an overlay layer for the favorites list and letter assignment.\n15: - UI rendering will target the terminal/popup dimensions reported by tmux, keeping control loops synchronous so the hotkey response stays within one frame.\n16: \n17: ## Local workflow (using `just`)\n18: \n19: 1. Install [just](https://github.com/casey/just) if missing.\n20: 2. `just fmt` to format Go files.\n21: 3. `just lint` to run `golangci-lint` if it is installed (falls back to a warning otherwise).\n22: 4. `just test` to exercise the package.\n23: 5. `just build` produces `bin/tgo` under the repository root.\n24: 6. `just run` executes the CLI locally.\n25: 7. `just tidy` keeps `go.mod` and `go.sum` neat.\n26: 8. `just ci` runs `fmt`, `lint`, and `test` in sequence for a quick check before pushing.\n27: \n28: ## Example tmux binding\n29: \n30: ```tmux\n31: bind-key q run-shell \u0026#34;tmux popup -E \u0026#39;tgo\u0026#39;\u0026#34;\n32: ```\n33: \n34: This binding opens a popup that immediately starts `tgo`, letting you press one of the letters from `asdfqwertzxcvb` to jump to the desired session.\n\n(End of file - total 34 lines)\n\u0026lt;/content\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--628s\"\u003eAssistant (Build · gpt-5.3-codex · 62.8s) \u003ca href=\"#assistant-build--gpt-53-codex--628s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eDesigning session manager architecture\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: apply_patch\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;patchText\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;*** Begin Patch\\n*** Update File: /home/waylon/git/tgo/cmd/tgo/main.go\\n@@\\n-package main\\n-\\n-import \\\u0026#34;fmt\\\u0026#34;\\n-\\n-const hotkeyRunes = \\\u0026#34;asdfqwertzxcvb\\\u0026#34;\\n-\\n-func main() {\\n-\\tfmt.Println(\\\u0026#34;tgo: tmux session switcher\\\u0026#34;)\\n-\\tfmt.Println(\\\u0026#34;hotkeys:\\\u0026#34;, hotkeyRunes)\\n-}\\n-\\n-func SessionHotkeyAlphabet() string {\\n-\\treturn hotkeyRunes\\n-}\\n+package main\\n+\\n+import (\\n+\\t\\\u0026#34;fmt\\\u0026#34;\\n+\\t\\\u0026#34;os\\\u0026#34;\\n+)\\n+\\n+const hotkeyRunes = \\\u0026#34;asdfqwertzxcvb\\\u0026#34;\\n+\\n+func main() {\\n+\\tclient := \u0026amp;tmuxCLI{}\\n+\\tstore, err := openStateStore()\\n+\\tif err != nil {\\n+\\t\\tfmt.Fprintf(os.Stderr, \\\u0026#34;tgo: state init failed: %v\\\\n\\\u0026#34;, err)\\n+\\t\\tos.Exit(1)\\n+\\t}\\n+\\n+\\tapp, err := newApp(client, store)\\n+\\tif err != nil {\\n+\\t\\tfmt.Fprintf(os.Stderr, \\\u0026#34;tgo: startup failed: %v\\\\n\\\u0026#34;, err)\\n+\\t\\tos.Exit(1)\\n+\\t}\\n+\\n+\\tif err := app.Run(); err != nil {\\n+\\t\\tfmt.Fprintf(os.Stderr, \\\u0026#34;tgo: %v\\\\n\\\u0026#34;, err)\\n+\\t\\tos.Exit(1)\\n+\\t}\\n+}\\n+\\n+func SessionHotkeyAlphabet() string {\\n+\\treturn hotkeyRunes\\n+}\\n*** End Patch\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eSuccess. Updated the following files:\nM home/waylon/git/tgo/cmd/tgo/main.go\n\nLSP errors detected in home/waylon/git/tgo/cmd/tgo/main.go, please fix:\n\u0026lt;diagnostics file=\u0026#34;/home/waylon/git/tgo/cmd/tgo/main.go\u0026#34;\u0026gt;\nERROR [11:13] undefined: tmuxCLI\nERROR [12:16] undefined: openStateStore\nERROR [18:14] undefined: newApp\n\u0026lt;/diagnostics\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--234s\"\u003eAssistant (Build · gpt-5.3-codex · 23.4s) \u003ca href=\"#assistant-build--gpt-53-codex--234s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: apply_patch\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;patchText\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;*** Begin Patch\\n*** Add File: /home/waylon/git/tgo/cmd/tgo/tmux.go\\n+package main\\n+\\n+import (\\n+\\t\\\u0026#34;bytes\\\u0026#34;\\n+\\t\\\u0026#34;fmt\\\u0026#34;\\n+\\t\\\u0026#34;os/exec\\\u0026#34;\\n+\\t\\\u0026#34;sort\\\u0026#34;\\n+\\t\\\u0026#34;strings\\\u0026#34;\\n+)\\n+\\n+type session struct {\\n+\\tName     string\\n+\\tAttached bool\\n+}\\n+\\n+type tmuxClient interface {\\n+\\tListSessions() ([]session, error)\\n+\\tSwitchSession(name string) error\\n+\\tKillSession(name string) error\\n+\\tNewSession(name string) error\\n+}\\n+\\n+type tmuxCLI struct{}\\n+\\n+func (t *tmuxCLI) ListSessions() ([]session, error) {\\n+\\tcmd := exec.Command(\\\u0026#34;tmux\\\u0026#34;, \\\u0026#34;list-sessions\\\u0026#34;, \\\u0026#34;-F\\\u0026#34;, \\\u0026#34;#{session_name}|#{?session_attached,1,0}\\\u0026#34;)\\n+\\tout, err := cmd.Output()\\n+\\tif err != nil {\\n+\\t\\treturn nil, fmt.Errorf(\\\u0026#34;list sessions: %w\\\u0026#34;, err)\\n+\\t}\\n+\\n+\\tlines := strings.Split(strings.TrimSpace(string(out)), \\\u0026#34;\\\\n\\\u0026#34;)\\n+\\tif len(lines) == 1 \u0026amp;\u0026amp; lines[0] == \\\u0026#34;\\\u0026#34; {\\n+\\t\\treturn []session{}, nil\\n+\\t}\\n+\\n+\\tsessions := make([]session, 0, len(lines))\\n+\\tfor _, line := range lines {\\n+\\t\\tparts := strings.SplitN(line, \\\u0026#34;|\\\u0026#34;, 2)\\n+\\t\\tif len(parts) != 2 {\\n+\\t\\t\\tcontinue\\n+\\t\\t}\\n+\\t\\tsessions = append(sessions, session{\\n+\\t\\t\\tName:     parts[0],\\n+\\t\\t\\tAttached: parts[1] == \\\u0026#34;1\\\u0026#34;,\\n+\\t\\t})\\n+\\t}\\n+\\n+\\treturn sessions, nil\\n+}\\n+\\n+func (t *tmuxCLI) SwitchSession(name string) error {\\n+\\tif name == \\\u0026#34;\\\u0026#34; {\\n+\\t\\treturn fmt.Errorf(\\\u0026#34;empty session name\\\u0026#34;)\\n+\\t}\\n+\\tcmd := exec.Command(\\\u0026#34;tmux\\\u0026#34;, \\\u0026#34;switch-client\\\u0026#34;, \\\u0026#34;-t\\\u0026#34;, name)\\n+\\tif out, err := cmd.CombinedOutput(); err != nil {\\n+\\t\\treturn fmt.Errorf(\\\u0026#34;switch session %q: %w (%s)\\\u0026#34;, name, err, strings.TrimSpace(string(out)))\\n+\\t}\\n+\\treturn nil\\n+}\\n+\\n+func (t *tmuxCLI) KillSession(name string) error {\\n+\\tif name == \\\u0026#34;\\\u0026#34; {\\n+\\t\\treturn fmt.Errorf(\\\u0026#34;empty session name\\\u0026#34;)\\n+\\t}\\n+\\tcmd := exec.Command(\\\u0026#34;tmux\\\u0026#34;, \\\u0026#34;kill-session\\\u0026#34;, \\\u0026#34;-t\\\u0026#34;, name)\\n+\\tif out, err := cmd.CombinedOutput(); err != nil {\\n+\\t\\treturn fmt.Errorf(\\\u0026#34;kill session %q: %w (%s)\\\u0026#34;, name, err, strings.TrimSpace(string(out)))\\n+\\t}\\n+\\treturn nil\\n+}\\n+\\n+func (t *tmuxCLI) NewSession(name string) error {\\n+\\tif name == \\\u0026#34;\\\u0026#34; {\\n+\\t\\treturn fmt.Errorf(\\\u0026#34;empty session name\\\u0026#34;)\\n+\\t}\\n+\\tcmd := exec.Command(\\\u0026#34;tmux\\\u0026#34;, \\\u0026#34;new-session\\\u0026#34;, \\\u0026#34;-d\\\u0026#34;, \\\u0026#34;-s\\\u0026#34;, name)\\n+\\tif out, err := cmd.CombinedOutput(); err != nil {\\n+\\t\\treturn fmt.Errorf(\\\u0026#34;new session %q: %w (%s)\\\u0026#34;, name, err, strings.TrimSpace(string(out)))\\n+\\t}\\n+\\treturn nil\\n+}\\n+\\n+func orderSessions(sessions []session, st state) (favorites []session, others []session) {\\n+\\tnameToSession := make(map[string]session, len(sessions))\\n+\\ttmuxOrder := make(map[string]int, len(sessions))\\n+\\tfor i, s := range sessions {\\n+\\t\\tnameToSession[s.Name] = s\\n+\\t\\ttmuxOrder[s.Name] = i\\n+\\t}\\n+\\n+\\tfor _, name := range st.Favorites {\\n+\\t\\ts, ok := nameToSession[name]\\n+\\t\\tif !ok {\\n+\\t\\t\\tcontinue\\n+\\t\\t}\\n+\\t\\tfavorites = append(favorites, s)\\n+\\t}\\n+\\n+\\tfavSet := make(map[string]struct{}, len(favorites))\\n+\\tfor _, s := range favorites {\\n+\\t\\tfavSet[s.Name] = struct{}{}\\n+\\t}\\n+\\n+\\tnonFav := make([]session, 0, len(sessions)-len(favorites))\\n+\\tfor _, s := range sessions {\\n+\\t\\tif _, ok := favSet[s.Name]; ok {\\n+\\t\\t\\tcontinue\\n+\\t\\t}\\n+\\t\\tnonFav = append(nonFav, s)\\n+\\t}\\n+\\n+\\torderIndex := make(map[string]int, len(st.Order))\\n+\\tfor i, name := range st.Order {\\n+\\t\\torderIndex[name] = i\\n+\\t}\\n+\\n+\\tsort.SliceStable(nonFav, func(i, j int) bool {\\n+\\t\\tli, iok := orderIndex[nonFav[i].Name]\\n+\\t\\tlj, jok := orderIndex[nonFav[j].Name]\\n+\\t\\tswitch {\\n+\\t\\tcase iok \u0026amp;\u0026amp; jok:\\n+\\t\\t\\treturn li \u0026lt; lj\\n+\\t\\tcase iok:\\n+\\t\\t\\treturn true\\n+\\t\\tcase jok:\\n+\\t\\t\\treturn false\\n+\\t\\tdefault:\\n+\\t\\t\\treturn tmuxOrder[nonFav[i].Name] \u0026lt; tmuxOrder[nonFav[j].Name]\\n+\\t\\t}\\n+\\t})\\n+\\n+\\treturn favorites, nonFav\\n+}\\n+\\n+func assignHotkeys(favorites []session, others []session, alphabet string) map[string]rune {\\n+\\tout := make(map[string]rune)\\n+\\tordered := make([]session, 0, len(favorites)+len(others))\\n+\\tordered = append(ordered, favorites...)\\n+\\tordered = append(ordered, others...)\\n+\\n+\\trunes := []rune(alphabet)\\n+\\tfor i, s := range ordered {\\n+\\t\\tif i \u0026gt;= len(runes) {\\n+\\t\\t\\tbreak\\n+\\t\\t}\\n+\\t\\tout[s.Name] = runes[i]\\n+\\t}\\n+\\treturn out\\n+}\\n+\\n+func runesToString(m map[string]rune, ordered []session) string {\\n+\\tbuf := bytes.Buffer{}\\n+\\tfor _, s := range ordered {\\n+\\t\\tr, ok := m[s.Name]\\n+\\t\\tif !ok {\\n+\\t\\t\\tcontinue\\n+\\t\\t}\\n+\\t\\tbuf.WriteRune(r)\\n+\\t}\\n+\\treturn buf.String()\\n+}\\n*** End Patch\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eSuccess. Updated the following files:\nA home/waylon/git/tgo/cmd/tgo/tmux.go\n\nLSP errors detected in home/waylon/git/tgo/cmd/tgo/tmux.go, please fix:\n\u0026lt;diagnostics file=\u0026#34;/home/waylon/git/tgo/cmd/tgo/tmux.go\u0026#34;\u0026gt;\nERROR [85:43] undefined: state\n\u0026lt;/diagnostics\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--158s\"\u003eAssistant (Build · gpt-5.3-codex · 15.8s) \u003ca href=\"#assistant-build--gpt-53-codex--158s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eIdentifying need for state file\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: apply_patch\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;patchText\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;*** Begin Patch\\n*** Add File: /home/waylon/git/tgo/cmd/tgo/state.go\\n+package main\\n+\\n+import (\\n+\\t\\\u0026#34;encoding/json\\\u0026#34;\\n+\\t\\\u0026#34;errors\\\u0026#34;\\n+\\t\\\u0026#34;fmt\\\u0026#34;\\n+\\t\\\u0026#34;os\\\u0026#34;\\n+\\t\\\u0026#34;path/filepath\\\u0026#34;\\n+)\\n+\\n+type state struct {\\n+\\tFavorites []string `json:\\\u0026#34;favorites\\\u0026#34;`\\n+\\tOrder     []string `json:\\\u0026#34;order\\\u0026#34;`\\n+}\\n+\\n+type stateStore struct {\\n+\\tpath string\\n+}\\n+\\n+func openStateStore() (*stateStore, error) {\\n+\\tconfigDir, err := os.UserConfigDir()\\n+\\tif err != nil {\\n+\\t\\treturn nil, fmt.Errorf(\\\u0026#34;config dir: %w\\\u0026#34;, err)\\n+\\t}\\n+\\treturn \u0026amp;stateStore{path: filepath.Join(configDir, \\\u0026#34;tgo\\\u0026#34;, \\\u0026#34;state.json\\\u0026#34;)}, nil\\n+}\\n+\\n+func (s *stateStore) Load() (state, error) {\\n+\\tdata, err := os.ReadFile(s.path)\\n+\\tif err != nil {\\n+\\t\\tif errors.Is(err, os.ErrNotExist) {\\n+\\t\\t\\treturn state{}, nil\\n+\\t\\t}\\n+\\t\\treturn state{}, fmt.Errorf(\\\u0026#34;read state: %w\\\u0026#34;, err)\\n+\\t}\\n+\\n+\\tvar st state\\n+\\tif err := json.Unmarshal(data, \u0026amp;st); err != nil {\\n+\\t\\tbak := s.path + \\\u0026#34;.bak\\\u0026#34;\\n+\\t\\t_ = os.Rename(s.path, bak)\\n+\\t\\treturn state{}, nil\\n+\\t}\\n+\\treturn st, nil\\n+}\\n+\\n+func (s *stateStore) Save(st state) error {\\n+\\tdir := filepath.Dir(s.path)\\n+\\tif err := os.MkdirAll(dir, 0o755); err != nil {\\n+\\t\\treturn fmt.Errorf(\\\u0026#34;create state dir: %w\\\u0026#34;, err)\\n+\\t}\\n+\\tdata, err := json.MarshalIndent(st, \\\u0026#34;\\\u0026#34;, \\\u0026#34;  \\\u0026#34;)\\n+\\tif err != nil {\\n+\\t\\treturn fmt.Errorf(\\\u0026#34;marshal state: %w\\\u0026#34;, err)\\n+\\t}\\n+\\tif err := os.WriteFile(s.path, data, 0o644); err != nil {\\n+\\t\\treturn fmt.Errorf(\\\u0026#34;write state: %w\\\u0026#34;, err)\\n+\\t}\\n+\\treturn nil\\n+}\\n+\\n+func normalizeState(st state, sessions []session) state {\\n+\\texists := make(map[string]struct{}, len(sessions))\\n+\\tfor _, s := range sessions {\\n+\\t\\texists[s.Name] = struct{}{}\\n+\\t}\\n+\\n+\\tst.Favorites = dedupeAndFilter(st.Favorites, exists)\\n+\\n+\\tfavSet := make(map[string]struct{}, len(st.Favorites))\\n+\\tfor _, name := range st.Favorites {\\n+\\t\\tfavSet[name] = struct{}{}\\n+\\t}\\n+\\n+\\tallowedOthers := make(map[string]struct{}, len(sessions)-len(st.Favorites))\\n+\\tfor _, s := range sessions {\\n+\\t\\tif _, fav := favSet[s.Name]; fav {\\n+\\t\\t\\tcontinue\\n+\\t\\t}\\n+\\t\\tallowedOthers[s.Name] = struct{}{}\\n+\\t}\\n+\\tst.Order = dedupeAndFilter(st.Order, allowedOthers)\\n+\\treturn st\\n+}\\n+\\n+func dedupeAndFilter(items []string, allowed map[string]struct{}) []string {\\n+\\tseen := map[string]struct{}{}\\n+\\tout := make([]string, 0, len(items))\\n+\\tfor _, item := range items {\\n+\\t\\tif item == \\\u0026#34;\\\u0026#34; {\\n+\\t\\t\\tcontinue\\n+\\t\\t}\\n+\\t\\tif _, ok := allowed[item]; !ok {\\n+\\t\\t\\tcontinue\\n+\\t\\t}\\n+\\t\\tif _, dup := seen[item]; dup {\\n+\\t\\t\\tcontinue\\n+\\t\\t}\\n+\\t\\tseen[item] = struct{}{}\\n+\\t\\tout = append(out, item)\\n+\\t}\\n+\\treturn out\\n+}\\n*** End Patch\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eSuccess. Updated the following files:\nA home/waylon/git/tgo/cmd/tgo/state.go\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--579s\"\u003eAssistant (Build · gpt-5.3-codex · 57.9s) \u003ca href=\"#assistant-build--gpt-53-codex--579s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eAdding tcell app file\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: apply_patch\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;patchText\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;*** Begin Patch\\n*** Add File: /home/waylon/git/tgo/cmd/tgo/app.go\\n+package main\\n+\\n+import (\\n+\\t\\\u0026#34;fmt\\\u0026#34;\\n+\\t\\\u0026#34;strings\\\u0026#34;\\n+\\t\\\u0026#34;time\\\u0026#34;\\n+\\n+\\t\\\u0026#34;github.com/gdamore/tcell/v2\\\u0026#34;\\n+)\\n+\\n+type mode int\\n+\\n+const (\\n+\\tmodeNormal mode = iota\\n+\\tmodeReorder\\n+\\tmodeCreate\\n+)\\n+\\n+type app struct {\\n+\\tclient tmuxClient\\n+\\tstore  *stateStore\\n+\\n+\\tstate     state\\n+\\tsessions  []session\\n+\\tfavorites []session\\n+\\tothers    []session\\n+\\thotkeys   map[string]rune\\n+\\n+\\tsection     int\\n+\\tcursorFav   int\\n+\\tcursorOther int\\n+\\tscrollFav   int\\n+\\tscrollOther int\\n+\\n+\\tmode        mode\\n+\\tcreateInput string\\n+\\n+\\tstatus       string\\n+\\tstatusExpiry time.Time\\n+}\\n+\\n+func newApp(client tmuxClient, store *stateStore) (*app, error) {\\n+\\tst, err := store.Load()\\n+\\tif err != nil {\\n+\\t\\treturn nil, err\\n+\\t}\\n+\\ta := \u0026amp;app{client: client, store: store, state: st}\\n+\\tif err := a.refreshSessions(); err != nil {\\n+\\t\\treturn nil, err\\n+\\t}\\n+\\treturn a, nil\\n+}\\n+\\n+func (a *app) Run() error {\\n+\\tscreen, err := tcell.NewScreen()\\n+\\tif err != nil {\\n+\\t\\treturn fmt.Errorf(\\\u0026#34;create screen: %w\\\u0026#34;, err)\\n+\\t}\\n+\\tif err := screen.Init(); err != nil {\\n+\\t\\treturn fmt.Errorf(\\\u0026#34;init screen: %w\\\u0026#34;, err)\\n+\\t}\\n+\\tdefer screen.Fini()\\n+\\n+\\tscreen.HideCursor()\\n+\\ta.draw(screen)\\n+\\n+\\tfor {\\n+\\t\\tev := screen.PollEvent()\\n+\\t\\tswitch e := ev.(type) {\\n+\\t\\tcase *tcell.EventResize:\\n+\\t\\t\\tscreen.Sync()\\n+\\t\\t\\ta.draw(screen)\\n+\\t\\tcase *tcell.EventKey:\\n+\\t\\t\\tdone, runSwitch := a.handleKey(e)\\n+\\t\\t\\tif runSwitch != \\\u0026#34;\\\u0026#34; {\\n+\\t\\t\\t\\tscreen.Fini()\\n+\\t\\t\\t\\tif err := a.client.SwitchSession(runSwitch); err != nil {\\n+\\t\\t\\t\\t\\treturn err\\n+\\t\\t\\t\\t}\\n+\\t\\t\\t\\treturn nil\\n+\\t\\t\\t}\\n+\\t\\t\\tif done {\\n+\\t\\t\\t\\treturn nil\\n+\\t\\t\\t}\\n+\\t\\t\\ta.draw(screen)\\n+\\t\\t}\\n+\\t}\\n+}\\n+\\n+func (a *app) handleKey(key *tcell.EventKey) (done bool, switchTo string) {\\n+\\tif a.mode == modeCreate {\\n+\\t\\treturn a.handleCreateKey(key)\\n+\\t}\\n+\\n+\\tif key.Key() == tcell.KeyCtrlC || key.Rune() == \u0026#39;q\u0026#39; {\\n+\\t\\treturn true, \\\u0026#34;\\\u0026#34;\\n+\\t}\\n+\\n+\\tif key.Key() == tcell.KeyTab {\\n+\\t\\ta.toggleSection()\\n+\\t\\treturn false, \\\u0026#34;\\\u0026#34;\\n+\\t}\\n+\\n+\\tif key.Key() == tcell.KeyEnter {\\n+\\t\\tif name, ok := a.selectedName(); ok {\\n+\\t\\t\\treturn false, name\\n+\\t\\t}\\n+\\t\\treturn false, \\\u0026#34;\\\u0026#34;\\n+\\t}\\n+\\n+\\tif key.Key() == tcell.KeyRune {\\n+\\t\\tr := key.Rune()\\n+\\t\\tif name, ok := a.hotkeyTarget(r); ok {\\n+\\t\\t\\treturn false, name\\n+\\t\\t}\\n+\\t\\tswitch r {\\n+\\t\\tcase \u0026#39;j\u0026#39;:\\n+\\t\\t\\ta.moveDown()\\n+\\t\\tcase \u0026#39;k\u0026#39;:\\n+\\t\\t\\ta.moveUp()\\n+\\t\\tcase \u0026#39; \u0026#39;:\\n+\\t\\t\\ta.toggleReorderMode()\\n+\\t\\tcase \u0026#39;f\u0026#39;:\\n+\\t\\t\\ta.toggleFavorite()\\n+\\t\\tcase \u0026#39;x\u0026#39;:\\n+\\t\\t\\ta.killSelected()\\n+\\t\\tcase \u0026#39;n\u0026#39;:\\n+\\t\\t\\ta.mode = modeCreate\\n+\\t\\t\\ta.createInput = \\\u0026#34;\\\u0026#34;\\n+\\t\\t\\ta.status = \\\u0026#34;new session: type name and press Enter\\\u0026#34;\\n+\\t\\t\\ta.statusExpiry = time.Time{}\\n+\\t\\tcase \u0026#39;r\u0026#39;:\\n+\\t\\t\\tif err := a.refreshSessions(); err != nil {\\n+\\t\\t\\t\\ta.setError(err)\\n+\\t\\t\\t}\\n+\\t\\t}\\n+\\t\\treturn false, \\\u0026#34;\\\u0026#34;\\n+\\t}\\n+\\n+\\tswitch key.Key() {\\n+\\tcase tcell.KeyUp:\\n+\\t\\ta.moveUp()\\n+\\tcase tcell.KeyDown:\\n+\\t\\ta.moveDown()\\n+\\t}\\n+\\n+\\treturn false, \\\u0026#34;\\\u0026#34;\\n+}\\n+\\n+func (a *app) handleCreateKey(key *tcell.EventKey) (bool, string) {\\n+\\tswitch key.Key() {\\n+\\tcase tcell.KeyEsc:\\n+\\t\\ta.mode = modeNormal\\n+\\t\\ta.setStatus(\\\u0026#34;create canceled\\\u0026#34;)\\n+\\t\\treturn false, \\\u0026#34;\\\u0026#34;\\n+\\tcase tcell.KeyEnter:\\n+\\t\\tname := strings.TrimSpace(a.createInput)\\n+\\t\\tif name == \\\u0026#34;\\\u0026#34; {\\n+\\t\\t\\ta.setStatus(\\\u0026#34;session name cannot be empty\\\u0026#34;)\\n+\\t\\t\\treturn false, \\\u0026#34;\\\u0026#34;\\n+\\t\\t}\\n+\\t\\tif err := a.client.NewSession(name); err != nil {\\n+\\t\\t\\ta.setError(err)\\n+\\t\\t\\treturn false, \\\u0026#34;\\\u0026#34;\\n+\\t\\t}\\n+\\t\\ta.mode = modeNormal\\n+\\t\\ta.createInput = \\\u0026#34;\\\u0026#34;\\n+\\t\\tif err := a.refreshSessions(); err != nil {\\n+\\t\\t\\ta.setError(err)\\n+\\t\\t\\treturn false, \\\u0026#34;\\\u0026#34;\\n+\\t\\t}\\n+\\t\\ta.selectByName(name)\\n+\\t\\ta.setStatus(fmt.Sprintf(\\\u0026#34;created %s\\\u0026#34;, name))\\n+\\t\\treturn false, \\\u0026#34;\\\u0026#34;\\n+\\tcase tcell.KeyBackspace, tcell.KeyBackspace2:\\n+\\t\\tif len(a.createInput) \u0026gt; 0 {\\n+\\t\\t\\ta.createInput = a.createInput[:len(a.createInput)-1]\\n+\\t\\t}\\n+\\t\\treturn false, \\\u0026#34;\\\u0026#34;\\n+\\tcase tcell.KeyRune:\\n+\\t\\tr := key.Rune()\\n+\\t\\tif r \u0026gt;= 32 \u0026amp;\u0026amp; r \u0026lt;= 126 {\\n+\\t\\t\\ta.createInput += string(r)\\n+\\t\\t}\\n+\\t\\treturn false, \\\u0026#34;\\\u0026#34;\\n+\\tdefault:\\n+\\t\\treturn false, \\\u0026#34;\\\u0026#34;\\n+\\t}\\n+}\\n+\\n+func (a *app) toggleSection() {\\n+\\tif len(a.favorites) == 0 \u0026amp;\u0026amp; len(a.others) == 0 {\\n+\\t\\treturn\\n+\\t}\\n+\\tif a.section == 0 {\\n+\\t\\tif len(a.others) \u0026gt; 0 {\\n+\\t\\t\\ta.section = 1\\n+\\t\\t}\\n+\\t\\treturn\\n+\\t}\\n+\\tif len(a.favorites) \u0026gt; 0 {\\n+\\t\\ta.section = 0\\n+\\t}\\n+}\\n+\\n+func (a *app) moveUp() {\\n+\\tif a.mode == modeReorder {\\n+\\t\\ta.reorder(-1)\\n+\\t\\treturn\\n+\\t}\\n+\\tif a.section == 0 {\\n+\\t\\tif a.cursorFav \u0026gt; 0 {\\n+\\t\\t\\ta.cursorFav--\\n+\\t\\t}\\n+\\t\\treturn\\n+\\t}\\n+\\tif a.cursorOther \u0026gt; 0 {\\n+\\t\\ta.cursorOther--\\n+\\t}\\n+}\\n+\\n+func (a *app) moveDown() {\\n+\\tif a.mode == modeReorder {\\n+\\t\\ta.reorder(1)\\n+\\t\\treturn\\n+\\t}\\n+\\tif a.section == 0 {\\n+\\t\\tif a.cursorFav \u0026lt; len(a.favorites)-1 {\\n+\\t\\t\\ta.cursorFav++\\n+\\t\\t}\\n+\\t\\treturn\\n+\\t}\\n+\\tif a.cursorOther \u0026lt; len(a.others)-1 {\\n+\\t\\ta.cursorOther++\\n+\\t}\\n+}\\n+\\n+func (a *app) toggleReorderMode() {\\n+\\tif _, ok := a.selectedName(); !ok {\\n+\\t\\treturn\\n+\\t}\\n+\\tif a.mode == modeReorder {\\n+\\t\\ta.mode = modeNormal\\n+\\t\\ta.setStatus(\\\u0026#34;reorder mode off\\\u0026#34;)\\n+\\t\\treturn\\n+\\t}\\n+\\ta.mode = modeReorder\\n+\\ta.setStatus(\\\u0026#34;reorder mode on: j/k moves selected session\\\u0026#34;)\\n+}\\n+\\n+func (a *app) toggleFavorite() {\\n+\\tname, ok := a.selectedName()\\n+\\tif !ok {\\n+\\t\\treturn\\n+\\t}\\n+\\n+\\tidx := indexOf(a.state.Favorites, name)\\n+\\tif idx \u0026gt;= 0 {\\n+\\t\\ta.state.Favorites = removeAt(a.state.Favorites, idx)\\n+\\t\\ta.state.Order = append([]string{name}, a.state.Order...)\\n+\\t\\ta.setStatus(fmt.Sprintf(\\\u0026#34;unfavorited %s\\\u0026#34;, name))\\n+\\t} else {\\n+\\t\\ta.state.Favorites = append(a.state.Favorites, name)\\n+\\t\\ta.state.Order = removeByValue(a.state.Order, name)\\n+\\t\\ta.setStatus(fmt.Sprintf(\\\u0026#34;favorited %s\\\u0026#34;, name))\\n+\\t}\\n+\\tif err := a.persistAndRebuild(); err != nil {\\n+\\t\\ta.setError(err)\\n+\\t}\\n+}\\n+\\n+func (a *app) reorder(delta int) {\\n+\\tname, ok := a.selectedName()\\n+\\tif !ok {\\n+\\t\\treturn\\n+\\t}\\n+\\tif a.section == 0 {\\n+\\t\\tidx := indexOf(a.state.Favorites, name)\\n+\\t\\tif idx \u0026lt; 0 {\\n+\\t\\t\\treturn\\n+\\t\\t}\\n+\\t\\tnewIdx := idx + delta\\n+\\t\\tif newIdx \u0026lt; 0 || newIdx \u0026gt;= len(a.state.Favorites) {\\n+\\t\\t\\treturn\\n+\\t\\t}\\n+\\t\\ta.state.Favorites[idx], a.state.Favorites[newIdx] = a.state.Favorites[newIdx], a.state.Favorites[idx]\\n+\\t\\ta.cursorFav = newIdx\\n+\\t} else {\\n+\\t\\tnames := make([]string, 0, len(a.others))\\n+\\t\\tfor _, s := range a.others {\\n+\\t\\t\\tnames = append(names, s.Name)\\n+\\t\\t}\\n+\\t\\tidx := indexOf(names, name)\\n+\\t\\tif idx \u0026lt; 0 {\\n+\\t\\t\\treturn\\n+\\t\\t}\\n+\\t\\tnewIdx := idx + delta\\n+\\t\\tif newIdx \u0026lt; 0 || newIdx \u0026gt;= len(names) {\\n+\\t\\t\\treturn\\n+\\t\\t}\\n+\\t\\tnames[idx], names[newIdx] = names[newIdx], names[idx]\\n+\\t\\ta.state.Order = names\\n+\\t\\ta.cursorOther = newIdx\\n+\\t}\\n+\\tif err := a.persistAndRebuild(); err != nil {\\n+\\t\\ta.setError(err)\\n+\\t\\treturn\\n+\\t}\\n+\\ta.setStatus(\\\u0026#34;priority updated\\\u0026#34;)\\n+}\\n+\\n+func (a *app) killSelected() {\\n+\\tname, ok := a.selectedName()\\n+\\tif !ok {\\n+\\t\\treturn\\n+\\t}\\n+\\tif err := a.client.KillSession(name); err != nil {\\n+\\t\\ta.setError(err)\\n+\\t\\treturn\\n+\\t}\\n+\\ta.state.Favorites = removeByValue(a.state.Favorites, name)\\n+\\ta.state.Order = removeByValue(a.state.Order, name)\\n+\\tif err := a.persistAndRebuild(); err != nil {\\n+\\t\\ta.setError(err)\\n+\\t\\treturn\\n+\\t}\\n+\\ta.setStatus(fmt.Sprintf(\\\u0026#34;killed %s\\\u0026#34;, name))\\n+}\\n+\\n+func (a *app) refreshSessions() error {\\n+\\tsessions, err := a.client.ListSessions()\\n+\\tif err != nil {\\n+\\t\\treturn err\\n+\\t}\\n+\\ta.sessions = sessions\\n+\\ta.state = normalizeState(a.state, sessions)\\n+\\ta.rebuildLists()\\n+\\tif err := a.store.Save(a.state); err != nil {\\n+\\t\\treturn err\\n+\\t}\\n+\\treturn nil\\n+}\\n+\\n+func (a *app) persistAndRebuild() error {\\n+\\ta.state = normalizeState(a.state, a.sessions)\\n+\\ta.rebuildLists()\\n+\\treturn a.store.Save(a.state)\\n+}\\n+\\n+func (a *app) rebuildLists() {\\n+\\ta.favorites, a.others = orderSessions(a.sessions, a.state)\\n+\\ta.hotkeys = assignHotkeys(a.favorites, a.others, SessionHotkeyAlphabet())\\n+\\ta.clampCursors()\\n+}\\n+\\n+func (a *app) clampCursors() {\\n+\\tif a.cursorFav \u0026gt;= len(a.favorites) {\\n+\\t\\ta.cursorFav = max(len(a.favorites)-1, 0)\\n+\\t}\\n+\\tif a.cursorOther \u0026gt;= len(a.others) {\\n+\\t\\ta.cursorOther = max(len(a.others)-1, 0)\\n+\\t}\\n+\\tif a.section == 0 \u0026amp;\u0026amp; len(a.favorites) == 0 \u0026amp;\u0026amp; len(a.others) \u0026gt; 0 {\\n+\\t\\ta.section = 1\\n+\\t}\\n+\\tif a.section == 1 \u0026amp;\u0026amp; len(a.others) == 0 \u0026amp;\u0026amp; len(a.favorites) \u0026gt; 0 {\\n+\\t\\ta.section = 0\\n+\\t}\\n+}\\n+\\n+func (a *app) selectedName() (string, bool) {\\n+\\tif a.section == 0 {\\n+\\t\\tif len(a.favorites) == 0 {\\n+\\t\\t\\treturn \\\u0026#34;\\\u0026#34;, false\\n+\\t\\t}\\n+\\t\\treturn a.favorites[a.cursorFav].Name, true\\n+\\t}\\n+\\tif len(a.others) == 0 {\\n+\\t\\treturn \\\u0026#34;\\\u0026#34;, false\\n+\\t}\\n+\\treturn a.others[a.cursorOther].Name, true\\n+}\\n+\\n+func (a *app) hotkeyTarget(r rune) (string, bool) {\\n+\\tfor name, key := range a.hotkeys {\\n+\\t\\tif key == r {\\n+\\t\\t\\treturn name, true\\n+\\t\\t}\\n+\\t}\\n+\\treturn \\\u0026#34;\\\u0026#34;, false\\n+}\\n+\\n+func (a *app) selectByName(name string) {\\n+\\tif idx := indexSession(a.favorites, name); idx \u0026gt;= 0 {\\n+\\t\\ta.section = 0\\n+\\t\\ta.cursorFav = idx\\n+\\t\\treturn\\n+\\t}\\n+\\tif idx := indexSession(a.others, name); idx \u0026gt;= 0 {\\n+\\t\\ta.section = 1\\n+\\t\\ta.cursorOther = idx\\n+\\t}\\n+}\\n+\\n+func (a *app) setStatus(msg string) {\\n+\\ta.status = msg\\n+\\ta.statusExpiry = time.Now().Add(4 * time.Second)\\n+}\\n+\\n+func (a *app) setError(err error) {\\n+\\ta.status = \\\u0026#34;error: \\\u0026#34; + err.Error()\\n+\\ta.statusExpiry = time.Now().Add(8 * time.Second)\\n+}\\n+\\n+func (a *app) visibleStatus() string {\\n+\\tif a.status == \\\u0026#34;\\\u0026#34; {\\n+\\t\\treturn \\\u0026#34;\\\u0026#34;\\n+\\t}\\n+\\tif a.statusExpiry.IsZero() || time.Now().Before(a.statusExpiry) {\\n+\\t\\treturn a.status\\n+\\t}\\n+\\ta.status = \\\u0026#34;\\\u0026#34;\\n+\\treturn \\\u0026#34;\\\u0026#34;\\n+}\\n+\\n+func indexSession(sessions []session, name string) int {\\n+\\tfor i, s := range sessions {\\n+\\t\\tif s.Name == name {\\n+\\t\\t\\treturn i\\n+\\t\\t}\\n+\\t}\\n+\\treturn -1\\n+}\\n+\\n+func indexOf(items []string, target string) int {\\n+\\tfor i, item := range items {\\n+\\t\\tif item == target {\\n+\\t\\t\\treturn i\\n+\\t\\t}\\n+\\t}\\n+\\treturn -1\\n+}\\n+\\n+func removeAt(items []string, idx int) []string {\\n+\\tout := make([]string, 0, len(items)-1)\\n+\\tout = append(out, items[:idx]...)\\n+\\tout = append(out, items[idx+1:]...)\\n+\\treturn out\\n+}\\n+\\n+func removeByValue(items []string, target string) []string {\\n+\\tout := make([]string, 0, len(items))\\n+\\tfor _, item := range items {\\n+\\t\\tif item == target {\\n+\\t\\t\\tcontinue\\n+\\t\\t}\\n+\\t\\tout = append(out, item)\\n+\\t}\\n+\\treturn out\\n+}\\n+\\n+func max(a int, b int) int {\\n+\\tif a \u0026gt; b {\\n+\\t\\treturn a\\n+\\t}\\n+\\treturn b\\n+}\\n*** End Patch\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eSuccess. Updated the following files:\nA home/waylon/git/tgo/cmd/tgo/app.go\n\nLSP errors detected in home/waylon/git/tgo/cmd/tgo/app.go, please fix:\n\u0026lt;diagnostics file=\u0026#34;/home/waylon/git/tgo/cmd/tgo/app.go\u0026#34;\u0026gt;\nERROR [8:2] could not import github.com/gdamore/tcell/v2 (no required module provides package \u0026#34;github.com/gdamore/tcell/v2\u0026#34;)\nERROR [55:17] undefined: tcell\nERROR [65:4] a.draw undefined (type *app has no field or method draw)\nERROR [70:9] undefined: tcell\nERROR [72:6] a.draw undefined (type *app has no field or method draw)\nERROR [73:9] undefined: tcell\nERROR [85:6] a.draw undefined (type *app has no field or method draw)\nERROR [90:30] undefined: tcell\nERROR [95:18] undefined: tcell\nERROR [99:18] undefined: tcell\nERROR [104:18] undefined: tcell\nERROR [111:18] undefined: tcell\nERROR [141:7] undefined: tcell\nERROR [143:7] undefined: tcell\nERROR [150:36] undefined: tcell\nERROR [152:7] undefined: tcell\nERROR [156:7] undefined: tcell\nERROR [175:7] undefined: tcell\nERROR [175:27] undefined: tcell\nERROR [180:7] undefined: tcell\n\u0026lt;/diagnostics\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--209s\"\u003eAssistant (Build · gpt-5.3-codex · 20.9s) \u003ca href=\"#assistant-build--gpt-53-codex--209s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eCreating view file and adding dependency\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: apply_patch\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;patchText\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;*** Begin Patch\\n*** Add File: /home/waylon/git/tgo/cmd/tgo/view.go\\n+package main\\n+\\n+import (\\n+\\t\\\u0026#34;fmt\\\u0026#34;\\n+\\t\\\u0026#34;strings\\\u0026#34;\\n+\\n+\\t\\\u0026#34;github.com/gdamore/tcell/v2\\\u0026#34;\\n+)\\n+\\n+func (a *app) draw(screen tcell.Screen) {\\n+\\twidth, height := screen.Size()\\n+\\tscreen.Clear()\\n+\\n+\\theaderStyle := tcell.StyleDefault.Foreground(tcell.ColorAqua).Bold(true)\\n+\\thelpStyle := tcell.StyleDefault.Foreground(tcell.ColorGray)\\n+\\tstatusStyle := tcell.StyleDefault.Foreground(tcell.ColorGreen)\\n+\\terrorStyle := tcell.StyleDefault.Foreground(tcell.ColorRed)\\n+\\n+\\tline := 0\\n+\\ta.drawText(screen, 0, line, headerStyle, \\\u0026#34;tgo - tmux session switcher\\\u0026#34;)\\n+\\tline++\\n+\\n+\\thelp := \\\u0026#34;[letters] switch  [j/k or arrows] move  [tab] section  [space] reorder  [f] favorite  [n] new  [x] kill  [r] refresh  [enter] switch  [q] quit\\\u0026#34;\\n+\\ta.drawText(screen, 0, line, helpStyle, truncate(help, width))\\n+\\tline++\\n+\\n+\\tif a.mode == modeCreate {\\n+\\t\\tprompt := \\\u0026#34;new session name: \\\u0026#34; + a.createInput\\n+\\t\\ta.drawText(screen, 0, line, tcell.StyleDefault.Foreground(tcell.ColorYellow), truncate(prompt, width))\\n+\\t\\tline++\\n+\\t}\\n+\\n+\\tline = a.drawSection(screen, line, width, height, \\\u0026#34;Favorites\\\u0026#34;, a.favorites, a.cursorFav, a.section == 0)\\n+\\tline = a.drawSection(screen, line, width, height, \\\u0026#34;Others\\\u0026#34;, a.others, a.cursorOther, a.section == 1)\\n+\\n+\\tstatus := a.visibleStatus()\\n+\\tif status != \\\u0026#34;\\\u0026#34; {\\n+\\t\\tstyle := statusStyle\\n+\\t\\tif strings.HasPrefix(status, \\\u0026#34;error:\\\u0026#34;) {\\n+\\t\\t\\tstyle = errorStyle\\n+\\t\\t}\\n+\\t\\ta.drawText(screen, 0, height-1, style, truncate(status, width))\\n+\\t}\\n+\\n+\\tscreen.Show()\\n+}\\n+\\n+func (a *app) drawSection(screen tcell.Screen, y int, width int, height int, title string, rows []session, cursor int, active bool) int {\\n+\\tif y \u0026gt;= height-1 {\\n+\\t\\treturn y\\n+\\t}\\n+\\n+\\ttitleStyle := tcell.StyleDefault.Foreground(tcell.ColorWhite)\\n+\\tif active {\\n+\\t\\ttitleStyle = titleStyle.Bold(true).Foreground(tcell.ColorBlue)\\n+\\t}\\n+\\ta.drawText(screen, 0, y, titleStyle, fmt.Sprintf(\\\u0026#34;%s (%d)\\\u0026#34;, title, len(rows)))\\n+\\ty++\\n+\\n+\\tif len(rows) == 0 {\\n+\\t\\ta.drawText(screen, 2, y, tcell.StyleDefault.Foreground(tcell.ColorGray), \\\u0026#34;- no sessions -\\\u0026#34;)\\n+\\t\\treturn y + 1\\n+\\t}\\n+\\n+\\tavailable := max((height-1)-y, 1)\\n+\\tif cursor \u0026lt; 0 {\\n+\\t\\tcursor = 0\\n+\\t}\\n+\\tstart := 0\\n+\\tif cursor \u0026gt;= available {\\n+\\t\\tstart = cursor - available + 1\\n+\\t}\\n+\\tend := min(start+available, len(rows))\\n+\\n+\\tfor i := start; i \u0026lt; end; i++ {\\n+\\t\\tif y \u0026gt;= height-1 {\\n+\\t\\t\\tbreak\\n+\\t\\t}\\n+\\t\\ts := rows[i]\\n+\\t\\tkeyLabel := \\\u0026#34; \\\u0026#34;\\n+\\t\\tif r, ok := a.hotkeys[s.Name]; ok {\\n+\\t\\t\\tkeyLabel = string(r)\\n+\\t\\t}\\n+\\t\\tattached := \\\u0026#34; \\\u0026#34;\\n+\\t\\tif s.Attached {\\n+\\t\\t\\tattached = \\\u0026#34;*\\\u0026#34;\\n+\\t\\t}\\n+\\t\\tprefix := \\\u0026#34;  \\\u0026#34;\\n+\\t\\tstyle := tcell.StyleDefault\\n+\\t\\tif i == cursor \u0026amp;\u0026amp; active {\\n+\\t\\t\\tprefix = \\\u0026#34;\u0026gt; \\\u0026#34;\\n+\\t\\t\\tstyle = style.Background(tcell.ColorGray).Foreground(tcell.ColorBlack)\\n+\\t\\t}\\n+\\t\\tif a.mode == modeReorder \u0026amp;\u0026amp; i == cursor \u0026amp;\u0026amp; active {\\n+\\t\\t\\tstyle = style.Background(tcell.ColorYellow).Foreground(tcell.ColorBlack)\\n+\\t\\t}\\n+\\t\\trow := fmt.Sprintf(\\\u0026#34;%s[%s] %s %s\\\u0026#34;, prefix, keyLabel, attached, s.Name)\\n+\\t\\ta.drawText(screen, 0, y, style, truncate(row, width))\\n+\\t\\ty++\\n+\\t}\\n+\\n+\\treturn y\\n+}\\n+\\n+func (a *app) drawText(screen tcell.Screen, x int, y int, style tcell.Style, text string) {\\n+\\tfor _, r := range text {\\n+\\t\\tscreen.SetContent(x, y, r, nil, style)\\n+\\t\\tx++\\n+\\t}\\n+}\\n+\\n+func truncate(text string, width int) string {\\n+\\tif width \u0026lt;= 0 {\\n+\\t\\treturn \\\u0026#34;\\\u0026#34;\\n+\\t}\\n+\\trunes := []rune(text)\\n+\\tif len(runes) \u0026lt;= width {\\n+\\t\\treturn text\\n+\\t}\\n+\\tif width == 1 {\\n+\\t\\treturn \\\u0026#34;…\\\u0026#34;\\n+\\t}\\n+\\treturn string(runes[:width-1]) + \\\u0026#34;…\\\u0026#34;\\n+}\\n+\\n+func min(a int, b int) int {\\n+\\tif a \u0026lt; b {\\n+\\t\\treturn a\\n+\\t}\\n+\\treturn b\\n+}\\n*** End Patch\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eSuccess. Updated the following files:\nA home/waylon/git/tgo/cmd/tgo/view.go\n\nLSP errors detected in home/waylon/git/tgo/cmd/tgo/view.go, please fix:\n\u0026lt;diagnostics file=\u0026#34;/home/waylon/git/tgo/cmd/tgo/view.go\u0026#34;\u0026gt;\nERROR [10:27] undefined: tcell\nERROR [14:17] undefined: tcell\nERROR [14:47] undefined: tcell\nERROR [15:15] undefined: tcell\nERROR [15:45] undefined: tcell\nERROR [16:17] undefined: tcell\nERROR [16:47] undefined: tcell\nERROR [17:16] undefined: tcell\nERROR [17:46] undefined: tcell\nERROR [29:31] undefined: tcell\nERROR [29:61] undefined: tcell\nERROR [48:34] undefined: tcell\nERROR [53:16] undefined: tcell\nERROR [53:46] undefined: tcell\nERROR [55:49] undefined: tcell\nERROR [61:28] undefined: tcell\nERROR [61:58] undefined: tcell\nERROR [89:12] undefined: tcell\nERROR [92:29] undefined: tcell\nERROR [92:57] undefined: tcell\n... and 4 more\n\u0026lt;/diagnostics\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--53s\"\u003eAssistant (Build · gpt-5.3-codex · 5.3s) \u003ca href=\"#assistant-build--gpt-53-codex--53s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eRunning dependencies update\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;go get github.com/gdamore/tcell/v2 \u0026amp;\u0026amp; go mod tidy\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Adds tcell dependency and tidies module\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ego: downloading github.com/gdamore/tcell/v2 v2.13.8\ngo: downloading github.com/gdamore/tcell v1.4.1\ngo: downloading golang.org/x/text v0.31.0\ngo: downloading golang.org/x/term v0.37.0\ngo: upgraded go 1.22 =\u0026gt; 1.24.0\ngo: added github.com/gdamore/encoding v1.0.1\ngo: added github.com/gdamore/tcell/v2 v2.13.8\ngo: added github.com/lucasb-eyer/go-colorful v1.3.0\ngo: added github.com/rivo/uniseg v0.4.7\ngo: added golang.org/x/sys v0.38.0\ngo: added golang.org/x/term v0.37.0\ngo: added golang.org/x/text v0.31.0\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--22s\"\u003eAssistant (Build · gpt-5.3-codex · 2.2s) \u003ca href=\"#assistant-build--gpt-53-codex--22s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eAssessing Go version upgrade\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: read\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;filePath\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo/go.mod\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026lt;path\u0026gt;/home/waylon/git/tgo/go.mod\u0026lt;/path\u0026gt;\n\u0026lt;type\u0026gt;file\u0026lt;/type\u0026gt;\n\u0026lt;content\u0026gt;1: module tgo\n2: \n3: go 1.24.0\n4: \n5: require github.com/gdamore/tcell/v2 v2.13.8\n6: \n7: require (\n8: \tgithub.com/gdamore/encoding v1.0.1 // indirect\n9: \tgithub.com/lucasb-eyer/go-colorful v1.3.0 // indirect\n10: \tgithub.com/rivo/uniseg v0.4.7 // indirect\n11: \tgolang.org/x/sys v0.38.0 // indirect\n12: \tgolang.org/x/term v0.37.0 // indirect\n13: \tgolang.org/x/text v0.31.0 // indirect\n14: )\n\n(End of file - total 14 lines)\n\u0026lt;/content\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--99s\"\u003eAssistant (Build · gpt-5.3-codex · 9.9s) \u003ca href=\"#assistant-build--gpt-53-codex--99s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePlanning Go version and lint fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;go test ./...\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Runs tests to check compilation\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eok  \ttgo/cmd/tgo\t0.002s\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--108s\"\u003eAssistant (Build · gpt-5.3-codex · 10.8s) \u003ca href=\"#assistant-build--gpt-53-codex--108s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePlanning input handling fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: apply_patch\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;patchText\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;*** Begin Patch\\n*** Update File: /home/waylon/git/tgo/cmd/tgo/app.go\\n@@\\n import (\\n \\t\\\u0026#34;fmt\\\u0026#34;\\n \\t\\\u0026#34;strings\\\u0026#34;\\n \\t\\\u0026#34;time\\\u0026#34;\\n+\\t\\\u0026#34;unicode\\\u0026#34;\\n@@\\n \\tcursorFav   int\\n \\tcursorOther int\\n-\\tscrollFav   int\\n-\\tscrollOther int\\n@@\\n-\\tif key.Key() == tcell.KeyCtrlC || key.Rune() == \u0026#39;q\u0026#39; {\\n+\\tif key.Key() == tcell.KeyCtrlC || key.Key() == tcell.KeyEscape {\\n \\t\\treturn true, \\\u0026#34;\\\u0026#34;\\n \\t}\\n@@\\n \\tif key.Key() == tcell.KeyRune {\\n-\\t\\tr := key.Rune()\\n+\\t\\tr := unicode.ToLower(key.Rune())\\n*** End Patch\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eSuccess. Updated the following files:\nM home/waylon/git/tgo/cmd/tgo/app.go\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--38s\"\u003eAssistant (Build · gpt-5.3-codex · 3.8s) \u003ca href=\"#assistant-build--gpt-53-codex--38s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eUpdating quit hotkey in help text\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: apply_patch\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;patchText\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;*** Begin Patch\\n*** Update File: /home/waylon/git/tgo/cmd/tgo/view.go\\n@@\\n-\\thelp := \\\u0026#34;[letters] switch  [j/k or arrows] move  [tab] section  [space] reorder  [f] favorite  [n] new  [x] kill  [r] refresh  [enter] switch  [q] quit\\\u0026#34;\\n+\\thelp := \\\u0026#34;[letters] switch  [j/k or arrows] move  [tab] section  [space] reorder  [f] favorite  [n] new  [x] kill  [r] refresh  [enter] switch  [esc/ctrl+c] quit\\\u0026#34;\\n*** End Patch\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eSuccess. Updated the following files:\nM home/waylon/git/tgo/cmd/tgo/view.go\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--194s\"\u003eAssistant (Build · gpt-5.3-codex · 19.4s) \u003ca href=\"#assistant-build--gpt-53-codex--194s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePlanning focused unit tests\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: apply_patch\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;patchText\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;*** Begin Patch\\n*** Add File: /home/waylon/git/tgo/cmd/tgo/logic_test.go\\n+package main\\n+\\n+import (\\n+\\t\\\u0026#34;reflect\\\u0026#34;\\n+\\t\\\u0026#34;testing\\\u0026#34;\\n+)\\n+\\n+func TestNormalizeState(t *testing.T) {\\n+\\tsessions := []session{{Name: \\\u0026#34;api\\\u0026#34;}, {Name: \\\u0026#34;web\\\u0026#34;}, {Name: \\\u0026#34;db\\\u0026#34;}}\\n+\\tst := state{\\n+\\t\\tFavorites: []string{\\\u0026#34;web\\\u0026#34;, \\\u0026#34;web\\\u0026#34;, \\\u0026#34;missing\\\u0026#34;, \\\u0026#34;api\\\u0026#34;},\\n+\\t\\tOrder:     []string{\\\u0026#34;db\\\u0026#34;, \\\u0026#34;api\\\u0026#34;, \\\u0026#34;missing\\\u0026#34;, \\\u0026#34;db\\\u0026#34;},\\n+\\t}\\n+\\n+\\tgot := normalizeState(st, sessions)\\n+\\n+\\tif !reflect.DeepEqual(got.Favorites, []string{\\\u0026#34;web\\\u0026#34;, \\\u0026#34;api\\\u0026#34;}) {\\n+\\t\\tt.Fatalf(\\\u0026#34;favorites mismatch: got %v\\\u0026#34;, got.Favorites)\\n+\\t}\\n+\\tif !reflect.DeepEqual(got.Order, []string{\\\u0026#34;db\\\u0026#34;}) {\\n+\\t\\tt.Fatalf(\\\u0026#34;order mismatch: got %v\\\u0026#34;, got.Order)\\n+\\t}\\n+}\\n+\\n+func TestOrderSessions(t *testing.T) {\\n+\\tsessions := []session{{Name: \\\u0026#34;api\\\u0026#34;}, {Name: \\\u0026#34;web\\\u0026#34;}, {Name: \\\u0026#34;db\\\u0026#34;}, {Name: \\\u0026#34;docs\\\u0026#34;}}\\n+\\tst := state{\\n+\\t\\tFavorites: []string{\\\u0026#34;web\\\u0026#34;, \\\u0026#34;api\\\u0026#34;},\\n+\\t\\tOrder:     []string{\\\u0026#34;docs\\\u0026#34;, \\\u0026#34;db\\\u0026#34;},\\n+\\t}\\n+\\n+\\tfavorites, others := orderSessions(sessions, st)\\n+\\n+\\tif got := names(favorites); !reflect.DeepEqual(got, []string{\\\u0026#34;web\\\u0026#34;, \\\u0026#34;api\\\u0026#34;}) {\\n+\\t\\tt.Fatalf(\\\u0026#34;favorites order mismatch: got %v\\\u0026#34;, got)\\n+\\t}\\n+\\tif got := names(others); !reflect.DeepEqual(got, []string{\\\u0026#34;docs\\\u0026#34;, \\\u0026#34;db\\\u0026#34;}) {\\n+\\t\\tt.Fatalf(\\\u0026#34;others order mismatch: got %v\\\u0026#34;, got)\\n+\\t}\\n+}\\n+\\n+func TestAssignHotkeys(t *testing.T) {\\n+\\tfavorites := []session{{Name: \\\u0026#34;web\\\u0026#34;}, {Name: \\\u0026#34;api\\\u0026#34;}}\\n+\\tothers := []session{{Name: \\\u0026#34;db\\\u0026#34;}, {Name: \\\u0026#34;docs\\\u0026#34;}}\\n+\\n+\\tgot := assignHotkeys(favorites, others, SessionHotkeyAlphabet())\\n+\\n+\\tassertHotkey(t, got, \\\u0026#34;web\\\u0026#34;, \u0026#39;a\u0026#39;)\\n+\\tassertHotkey(t, got, \\\u0026#34;api\\\u0026#34;, \u0026#39;s\u0026#39;)\\n+\\tassertHotkey(t, got, \\\u0026#34;db\\\u0026#34;, \u0026#39;d\u0026#39;)\\n+\\tassertHotkey(t, got, \\\u0026#34;docs\\\u0026#34;, \u0026#39;f\u0026#39;)\\n+}\\n+\\n+func TestAssignHotkeysLimit(t *testing.T) {\\n+\\talpha := \\\u0026#34;as\\\u0026#34;\\n+\\tfavorites := []session{{Name: \\\u0026#34;one\\\u0026#34;}}\\n+\\tothers := []session{{Name: \\\u0026#34;two\\\u0026#34;}, {Name: \\\u0026#34;three\\\u0026#34;}}\\n+\\n+\\tgot := assignHotkeys(favorites, others, alpha)\\n+\\n+\\tassertHotkey(t, got, \\\u0026#34;one\\\u0026#34;, \u0026#39;a\u0026#39;)\\n+\\tassertHotkey(t, got, \\\u0026#34;two\\\u0026#34;, \u0026#39;s\u0026#39;)\\n+\\tif _, ok := got[\\\u0026#34;three\\\u0026#34;]; ok {\\n+\\t\\tt.Fatalf(\\\u0026#34;expected no hotkey for third session\\\u0026#34;)\\n+\\t}\\n+}\\n+\\n+func names(sessions []session) []string {\\n+\\tout := make([]string, 0, len(sessions))\\n+\\tfor _, s := range sessions {\\n+\\t\\tout = append(out, s.Name)\\n+\\t}\\n+\\treturn out\\n+}\\n+\\n+func assertHotkey(t *testing.T, got map[string]rune, name string, expected rune) {\\n+\\tt.Helper()\\n+\\tif got[name] != expected {\\n+\\t\\tt.Fatalf(\\\u0026#34;hotkey mismatch for %s: got %q want %q\\\u0026#34;, name, got[name], expected)\\n+\\t}\\n+}\\n*** End Patch\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eSuccess. Updated the following files:\nA home/waylon/git/tgo/cmd/tgo/logic_test.go\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--191s\"\u003eAssistant (Build · gpt-5.3-codex · 19.1s) \u003ca href=\"#assistant-build--gpt-53-codex--191s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePlanning README rewrite\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: apply_patch\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;patchText\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;*** Begin Patch\\n*** Update File: /home/waylon/git/tgo/README.md\\n@@\\n-# tgo\\n-\\n-tgo is a tmux session switcher optimized for speed and predictability. It runs inside a tmux popup or terminal, draws the active sessions, highlights favorites, and lets you switch with a single letter after opening (two keystrokes overall). The focus is low latency: the popup hotkey triggers `tgo`, and the keyboard-only UI assumes tmux-level terminal performance and responsive layouts.\\n-\\n-## UX guidance\\n-\\n-- **Two-keystroke flow**: Press the tmux popup hotkey, then tap the letter mapped to the target session. No arrow navigation, no typing a name twice.\\n-- **Key map**: `asdf qwert zxcvb` serves as the ordered list of hotkeys. Favorites are pinned to the top of the list so that letters stay stable even when promting terminals resize.\\n-- **Sizing**: `tgo` will render the session list responsively so that both narrow popups and larger terminals remain usable—critical for tmux popup contexts.\\n-\\n-## Architecture notes\\n-\\n-- `cmd/tgo` contains the CLI entry point and will orchestrate session discovery, layout, and rendering logic.\\n-- Session data comes from tmux via shell calls (placeholder now), with an overlay layer for the favorites list and letter assignment.\\n-- UI rendering will target the terminal/popup dimensions reported by tmux, keeping control loops synchronous so the hotkey response stays within one frame.\\n-\\n-## Local workflow (using `just`)\\n-\\n-1. Install [just](https://github.com/casey/just) if missing.\\n-2. `just fmt` to format Go files.\\n-3. `just lint` to run `golangci-lint` if it is installed (falls back to a warning otherwise).\\n-4. `just test` to exercise the package.\\n-5. `just build` produces `bin/tgo` under the repository root.\\n-6. `just run` executes the CLI locally.\\n-7. `just tidy` keeps `go.mod` and `go.sum` neat.\\n-8. `just ci` runs `fmt`, `lint`, and `test` in sequence for a quick check before pushing.\\n-\\n-## Example tmux binding\\n-\\n-```tmux\\n-bind-key q run-shell \\\u0026#34;tmux popup -E \u0026#39;tgo\u0026#39;\\\u0026#34;\\n-```\\n-\\n-This binding opens a popup that immediately starts `tgo`, letting you press one of the letters from `asdfqwertzxcvb` to jump to the desired session.\\n+# tgo\\n+\\n+`tgo` is a fast tmux session switcher built for popup workflows.\\n+\\n+The core flow is two keystrokes:\\n+\\n+1. open `tgo` in a tmux popup from a tmux key binding\\n+2. press the session letter and switch instantly\\n+\\n+`tgo` lists tmux sessions, pins favorites at the top, and keeps hotkeys stable by priority.\\n+\\n+## Features\\n+\\n+- responsive terminal UI that works in standard terminals and tmux popups\\n+- direct switch hotkeys using `asdfqwertzxcvb`\\n+- favorite pinning with favorites always rendered first\\n+- reorder mode (`space` + `j/k` or arrows) to change session priority and hotkey assignment\\n+- tmux session management from the UI: create (`n`) and kill (`x`)\\n+\\n+## Keymap\\n+\\n+- `asdfqwertzxcvb`: switch directly to listed session\\n+- `j/k` or arrow keys: move cursor\\n+- `tab`: switch active section (`Favorites` / `Others`)\\n+- `space`: toggle reorder mode for selected session\\n+- `enter`: switch to selected session\\n+- `f`: toggle favorite on selected session\\n+- `n`: create new tmux session (type name, `enter`)\\n+- `x`: kill selected tmux session\\n+- `r`: refresh tmux session list\\n+- `esc` or `ctrl+c`: quit\\n+\\n+## tmux popup binding\\n+\\n+```tmux\\n+bind-key g display-popup -E -w 70% -h 70% \\\u0026#34;tgo\\\u0026#34;\\n+```\\n+\\n+Pick any key you want instead of `g`.\\n+\\n+## State storage\\n+\\n+`tgo` stores favorites and non-favorite ordering in:\\n+\\n+- `~/.config/tgo/state.json`\\n+\\n+Missing or stale sessions are automatically removed from saved state.\\n+\\n+## Local development\\n+\\n+1. Install [just](https://github.com/casey/just)\\n+2. Run `just build` to produce `bin/tgo`\\n+3. Run `just run` inside tmux to use the app\\n+4. Run `just ci` before pushing changes\\n+\\n+## Notes\\n+\\n+- `tgo` expects a running tmux server and a tmux client context.\\n+- switching is implemented with `tmux switch-client -t \u0026lt;session\u0026gt;`.\\n*** End Patch\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eSuccess. Updated the following files:\nM home/waylon/git/tgo/README.md\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--51s\"\u003eAssistant (Build · gpt-5.3-codex · 5.1s) \u003ca href=\"#assistant-build--gpt-53-codex--51s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eUpdating changelog\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: apply_patch\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;patchText\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;*** Begin Patch\\n*** Update File: /home/waylon/git/tgo/CHANGELOG.md\\n@@\\n ## [Unreleased]\\n \\n ### Added\\n-- base Go module, CLI entry point, and placeholder session hotkey collection.\\n-- `justfile` with formatter, lint, test, build, run, tidy, and CI recipes.\\n-- `README.md` describing the command, UX goal, architecture notes, tmux binding, and local workflow.\\n-- `CHANGELOG.md` initial structure plus README and changelog.\\n-- GitHub workflows for CI, dependency updates, and release automation, along with cross-platform binary packaging and checksums.\\n+- interactive TUI built with `tcell`, including responsive rendering for tmux popup usage.\\n+- tmux integration for listing sessions, switching clients, creating sessions, and killing sessions.\\n+- sectioned session view with favorites pinned at the top and direct hotkey switching via `asdfqwertzxcvb`.\\n+- reorder mode (`space` + `j/k` or arrows) to change session priority and hotkey assignment.\\n+- persisted state file at `~/.config/tgo/state.json` with normalization for removed/stale sessions.\\n+- unit tests for ordering, normalization, and hotkey assignment logic.\\n*** End Patch\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eSuccess. Updated the following files:\nM home/waylon/git/tgo/CHANGELOG.md\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--45s\"\u003eAssistant (Build · gpt-5.3-codex · 4.5s) \u003ca href=\"#assistant-build--gpt-53-codex--45s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eUpdating CI Go version and release workflow\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: apply_patch\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;patchText\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;*** Begin Patch\\n*** Update File: /home/waylon/git/tgo/.github/workflows/ci.yml\\n@@\\n       - name: Set up Go\\n         uses: actions/setup-go@v5\\n         with:\\n-          go-version: 1.22\\n+          go-version: 1.24\\n*** End Patch\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eSuccess. Updated the following files:\nM home/waylon/git/tgo/.github/workflows/ci.yml\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eTool: apply_patch\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;patchText\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;*** Begin Patch\\n*** Update File: /home/waylon/git/tgo/.github/workflows/release.yml\\n@@\\n       - name: Set up Go\\n         uses: actions/setup-go@v5\\n         with:\\n-          go-version: 1.22\\n+          go-version: 1.24\\n*** End Patch\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eSuccess. Updated the following files:\nM home/waylon/git/tgo/.github/workflows/release.yml\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--39s\"\u003eAssistant (Build · gpt-5.3-codex · 3.9s) \u003ca href=\"#assistant-build--gpt-53-codex--39s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eRunning gofmt and tests\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;gofmt -w ./cmd/tgo/*.go \u0026amp;\u0026amp; go test ./...\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Formats Go files and runs tests\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eok  \ttgo/cmd/tgo\t0.003s\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--47s\"\u003eAssistant (Build · gpt-5.3-codex · 4.7s) \u003ca href=\"#assistant-build--gpt-53-codex--47s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePlanning sequential test updates\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: todowrite\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;todos\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;content\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Inspect current tgo scaffold and define concrete TUI/session management architecture\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;completed\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;priority\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;high\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;content\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Implement tmux integration and persistent state (favorites/order)\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;completed\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;priority\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;high\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;content\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Implement interactive TUI with navigation, section switching, hotkeys, and reorder mode\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;completed\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;priority\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;high\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;content\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Update README with implemented behavior and usage\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;completed\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;priority\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;medium\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;content\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Add/expand tests for key mapping, ordering, and state normalization\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;completed\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;priority\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;medium\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;content\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Run formatting and tests to validate full functionality\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;completed\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;priority\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;high\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e[\n  {\n    \u0026#34;content\u0026#34;: \u0026#34;Inspect current tgo scaffold and define concrete TUI/session management architecture\u0026#34;,\n    \u0026#34;status\u0026#34;: \u0026#34;completed\u0026#34;,\n    \u0026#34;priority\u0026#34;: \u0026#34;high\u0026#34;\n  },\n  {\n    \u0026#34;content\u0026#34;: \u0026#34;Implement tmux integration and persistent state (favorites/order)\u0026#34;,\n    \u0026#34;status\u0026#34;: \u0026#34;completed\u0026#34;,\n    \u0026#34;priority\u0026#34;: \u0026#34;high\u0026#34;\n  },\n  {\n    \u0026#34;content\u0026#34;: \u0026#34;Implement interactive TUI with navigation, section switching, hotkeys, and reorder mode\u0026#34;,\n    \u0026#34;status\u0026#34;: \u0026#34;completed\u0026#34;,\n    \u0026#34;priority\u0026#34;: \u0026#34;high\u0026#34;\n  },\n  {\n    \u0026#34;content\u0026#34;: \u0026#34;Update README with implemented behavior and usage\u0026#34;,\n    \u0026#34;status\u0026#34;: \u0026#34;completed\u0026#34;,\n    \u0026#34;priority\u0026#34;: \u0026#34;medium\u0026#34;\n  },\n  {\n    \u0026#34;content\u0026#34;: \u0026#34;Add/expand tests for key mapping, ordering, and state normalization\u0026#34;,\n    \u0026#34;status\u0026#34;: \u0026#34;completed\u0026#34;,\n    \u0026#34;priority\u0026#34;: \u0026#34;medium\u0026#34;\n  },\n  {\n    \u0026#34;content\u0026#34;: \u0026#34;Run formatting and tests to validate full functionality\u0026#34;,\n    \u0026#34;status\u0026#34;: \u0026#34;completed\u0026#34;,\n    \u0026#34;priority\u0026#34;: \u0026#34;high\u0026#34;\n  }\n]\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--42s\"\u003eAssistant (Build · gpt-5.3-codex · 4.2s) \u003ca href=\"#assistant-build--gpt-53-codex--42s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eReviewing main application code\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: read\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;filePath\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo/cmd/tgo/app.go\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026lt;path\u0026gt;/home/waylon/git/tgo/cmd/tgo/app.go\u0026lt;/path\u0026gt;\n\u0026lt;type\u0026gt;file\u0026lt;/type\u0026gt;\n\u0026lt;content\u0026gt;1: package main\n2: \n3: import (\n4: \t\u0026#34;fmt\u0026#34;\n5: \t\u0026#34;strings\u0026#34;\n6: \t\u0026#34;time\u0026#34;\n7: \t\u0026#34;unicode\u0026#34;\n8: \n9: \t\u0026#34;github.com/gdamore/tcell/v2\u0026#34;\n10: )\n11: \n12: type mode int\n13: \n14: const (\n15: \tmodeNormal mode = iota\n16: \tmodeReorder\n17: \tmodeCreate\n18: )\n19: \n20: type app struct {\n21: \tclient tmuxClient\n22: \tstore  *stateStore\n23: \n24: \tstate     state\n25: \tsessions  []session\n26: \tfavorites []session\n27: \tothers    []session\n28: \thotkeys   map[string]rune\n29: \n30: \tsection     int\n31: \tcursorFav   int\n32: \tcursorOther int\n33: \n34: \tmode        mode\n35: \tcreateInput string\n36: \n37: \tstatus       string\n38: \tstatusExpiry time.Time\n39: }\n40: \n41: func newApp(client tmuxClient, store *stateStore) (*app, error) {\n42: \tst, err := store.Load()\n43: \tif err != nil {\n44: \t\treturn nil, err\n45: \t}\n46: \ta := \u0026amp;app{client: client, store: store, state: st}\n47: \tif err := a.refreshSessions(); err != nil {\n48: \t\treturn nil, err\n49: \t}\n50: \treturn a, nil\n51: }\n52: \n53: func (a *app) Run() error {\n54: \tscreen, err := tcell.NewScreen()\n55: \tif err != nil {\n56: \t\treturn fmt.Errorf(\u0026#34;create screen: %w\u0026#34;, err)\n57: \t}\n58: \tif err := screen.Init(); err != nil {\n59: \t\treturn fmt.Errorf(\u0026#34;init screen: %w\u0026#34;, err)\n60: \t}\n61: \tdefer screen.Fini()\n62: \n63: \tscreen.HideCursor()\n64: \ta.draw(screen)\n65: \n66: \tfor {\n67: \t\tev := screen.PollEvent()\n68: \t\tswitch e := ev.(type) {\n69: \t\tcase *tcell.EventResize:\n70: \t\t\tscreen.Sync()\n71: \t\t\ta.draw(screen)\n72: \t\tcase *tcell.EventKey:\n73: \t\t\tdone, runSwitch := a.handleKey(e)\n74: \t\t\tif runSwitch != \u0026#34;\u0026#34; {\n75: \t\t\t\tscreen.Fini()\n76: \t\t\t\tif err := a.client.SwitchSession(runSwitch); err != nil {\n77: \t\t\t\t\treturn err\n78: \t\t\t\t}\n79: \t\t\t\treturn nil\n80: \t\t\t}\n81: \t\t\tif done {\n82: \t\t\t\treturn nil\n83: \t\t\t}\n84: \t\t\ta.draw(screen)\n85: \t\t}\n86: \t}\n87: }\n88: \n89: func (a *app) handleKey(key *tcell.EventKey) (done bool, switchTo string) {\n90: \tif a.mode == modeCreate {\n91: \t\treturn a.handleCreateKey(key)\n92: \t}\n93: \n94: \tif key.Key() == tcell.KeyCtrlC || key.Key() == tcell.KeyEscape {\n95: \t\treturn true, \u0026#34;\u0026#34;\n96: \t}\n97: \n98: \tif key.Key() == tcell.KeyTab {\n99: \t\ta.toggleSection()\n100: \t\treturn false, \u0026#34;\u0026#34;\n101: \t}\n102: \n103: \tif key.Key() == tcell.KeyEnter {\n104: \t\tif name, ok := a.selectedName(); ok {\n105: \t\t\treturn false, name\n106: \t\t}\n107: \t\treturn false, \u0026#34;\u0026#34;\n108: \t}\n109: \n110: \tif key.Key() == tcell.KeyRune {\n111: \t\tr := unicode.ToLower(key.Rune())\n112: \t\tif name, ok := a.hotkeyTarget(r); ok {\n113: \t\t\treturn false, name\n114: \t\t}\n115: \t\tswitch r {\n116: \t\tcase \u0026#39;j\u0026#39;:\n117: \t\t\ta.moveDown()\n118: \t\tcase \u0026#39;k\u0026#39;:\n119: \t\t\ta.moveUp()\n120: \t\tcase \u0026#39; \u0026#39;:\n121: \t\t\ta.toggleReorderMode()\n122: \t\tcase \u0026#39;f\u0026#39;:\n123: \t\t\ta.toggleFavorite()\n124: \t\tcase \u0026#39;x\u0026#39;:\n125: \t\t\ta.killSelected()\n126: \t\tcase \u0026#39;n\u0026#39;:\n127: \t\t\ta.mode = modeCreate\n128: \t\t\ta.createInput = \u0026#34;\u0026#34;\n129: \t\t\ta.status = \u0026#34;new session: type name and press Enter\u0026#34;\n130: \t\t\ta.statusExpiry = time.Time{}\n131: \t\tcase \u0026#39;r\u0026#39;:\n132: \t\t\tif err := a.refreshSessions(); err != nil {\n133: \t\t\t\ta.setError(err)\n134: \t\t\t}\n135: \t\t}\n136: \t\treturn false, \u0026#34;\u0026#34;\n137: \t}\n138: \n139: \tswitch key.Key() {\n140: \tcase tcell.KeyUp:\n141: \t\ta.moveUp()\n142: \tcase tcell.KeyDown:\n143: \t\ta.moveDown()\n144: \t}\n145: \n146: \treturn false, \u0026#34;\u0026#34;\n147: }\n148: \n149: func (a *app) handleCreateKey(key *tcell.EventKey) (bool, string) {\n150: \tswitch key.Key() {\n151: \tcase tcell.KeyEsc:\n152: \t\ta.mode = modeNormal\n153: \t\ta.setStatus(\u0026#34;create canceled\u0026#34;)\n154: \t\treturn false, \u0026#34;\u0026#34;\n155: \tcase tcell.KeyEnter:\n156: \t\tname := strings.TrimSpace(a.createInput)\n157: \t\tif name == \u0026#34;\u0026#34; {\n158: \t\t\ta.setStatus(\u0026#34;session name cannot be empty\u0026#34;)\n159: \t\t\treturn false, \u0026#34;\u0026#34;\n160: \t\t}\n161: \t\tif err := a.client.NewSession(name); err != nil {\n162: \t\t\ta.setError(err)\n163: \t\t\treturn false, \u0026#34;\u0026#34;\n164: \t\t}\n165: \t\ta.mode = modeNormal\n166: \t\ta.createInput = \u0026#34;\u0026#34;\n167: \t\tif err := a.refreshSessions(); err != nil {\n168: \t\t\ta.setError(err)\n169: \t\t\treturn false, \u0026#34;\u0026#34;\n170: \t\t}\n171: \t\ta.selectByName(name)\n172: \t\ta.setStatus(fmt.Sprintf(\u0026#34;created %s\u0026#34;, name))\n173: \t\treturn false, \u0026#34;\u0026#34;\n174: \tcase tcell.KeyBackspace, tcell.KeyBackspace2:\n175: \t\tif len(a.createInput) \u0026gt; 0 {\n176: \t\t\ta.createInput = a.createInput[:len(a.createInput)-1]\n177: \t\t}\n178: \t\treturn false, \u0026#34;\u0026#34;\n179: \tcase tcell.KeyRune:\n180: \t\tr := key.Rune()\n181: \t\tif r \u0026gt;= 32 \u0026amp;\u0026amp; r \u0026lt;= 126 {\n182: \t\t\ta.createInput += string(r)\n183: \t\t}\n184: \t\treturn false, \u0026#34;\u0026#34;\n185: \tdefault:\n186: \t\treturn false, \u0026#34;\u0026#34;\n187: \t}\n188: }\n189: \n190: func (a *app) toggleSection() {\n191: \tif len(a.favorites) == 0 \u0026amp;\u0026amp; len(a.others) == 0 {\n192: \t\treturn\n193: \t}\n194: \tif a.section == 0 {\n195: \t\tif len(a.others) \u0026gt; 0 {\n196: \t\t\ta.section = 1\n197: \t\t}\n198: \t\treturn\n199: \t}\n200: \tif len(a.favorites) \u0026gt; 0 {\n201: \t\ta.section = 0\n202: \t}\n203: }\n204: \n205: func (a *app) moveUp() {\n206: \tif a.mode == modeReorder {\n207: \t\ta.reorder(-1)\n208: \t\treturn\n209: \t}\n210: \tif a.section == 0 {\n211: \t\tif a.cursorFav \u0026gt; 0 {\n212: \t\t\ta.cursorFav--\n213: \t\t}\n214: \t\treturn\n215: \t}\n216: \tif a.cursorOther \u0026gt; 0 {\n217: \t\ta.cursorOther--\n218: \t}\n219: }\n220: \n221: func (a *app) moveDown() {\n222: \tif a.mode == modeReorder {\n223: \t\ta.reorder(1)\n224: \t\treturn\n225: \t}\n226: \tif a.section == 0 {\n227: \t\tif a.cursorFav \u0026lt; len(a.favorites)-1 {\n228: \t\t\ta.cursorFav++\n229: \t\t}\n230: \t\treturn\n231: \t}\n232: \tif a.cursorOther \u0026lt; len(a.others)-1 {\n233: \t\ta.cursorOther++\n234: \t}\n235: }\n236: \n237: func (a *app) toggleReorderMode() {\n238: \tif _, ok := a.selectedName(); !ok {\n239: \t\treturn\n240: \t}\n241: \tif a.mode == modeReorder {\n242: \t\ta.mode = modeNormal\n243: \t\ta.setStatus(\u0026#34;reorder mode off\u0026#34;)\n244: \t\treturn\n245: \t}\n246: \ta.mode = modeReorder\n247: \ta.setStatus(\u0026#34;reorder mode on: j/k moves selected session\u0026#34;)\n248: }\n249: \n250: func (a *app) toggleFavorite() {\n251: \tname, ok := a.selectedName()\n252: \tif !ok {\n253: \t\treturn\n254: \t}\n255: \n256: \tidx := indexOf(a.state.Favorites, name)\n257: \tif idx \u0026gt;= 0 {\n258: \t\ta.state.Favorites = removeAt(a.state.Favorites, idx)\n259: \t\ta.state.Order = append([]string{name}, a.state.Order...)\n260: \t\ta.setStatus(fmt.Sprintf(\u0026#34;unfavorited %s\u0026#34;, name))\n261: \t} else {\n262: \t\ta.state.Favorites = append(a.state.Favorites, name)\n263: \t\ta.state.Order = removeByValue(a.state.Order, name)\n264: \t\ta.setStatus(fmt.Sprintf(\u0026#34;favorited %s\u0026#34;, name))\n265: \t}\n266: \tif err := a.persistAndRebuild(); err != nil {\n267: \t\ta.setError(err)\n268: \t}\n269: }\n270: \n271: func (a *app) reorder(delta int) {\n272: \tname, ok := a.selectedName()\n273: \tif !ok {\n274: \t\treturn\n275: \t}\n276: \tif a.section == 0 {\n277: \t\tidx := indexOf(a.state.Favorites, name)\n278: \t\tif idx \u0026lt; 0 {\n279: \t\t\treturn\n280: \t\t}\n281: \t\tnewIdx := idx + delta\n282: \t\tif newIdx \u0026lt; 0 || newIdx \u0026gt;= len(a.state.Favorites) {\n283: \t\t\treturn\n284: \t\t}\n285: \t\ta.state.Favorites[idx], a.state.Favorites[newIdx] = a.state.Favorites[newIdx], a.state.Favorites[idx]\n286: \t\ta.cursorFav = newIdx\n287: \t} else {\n288: \t\tnames := make([]string, 0, len(a.others))\n289: \t\tfor _, s := range a.others {\n290: \t\t\tnames = append(names, s.Name)\n291: \t\t}\n292: \t\tidx := indexOf(names, name)\n293: \t\tif idx \u0026lt; 0 {\n294: \t\t\treturn\n295: \t\t}\n296: \t\tnewIdx := idx + delta\n297: \t\tif newIdx \u0026lt; 0 || newIdx \u0026gt;= len(names) {\n298: \t\t\treturn\n299: \t\t}\n300: \t\tnames[idx], names[newIdx] = names[newIdx], names[idx]\n301: \t\ta.state.Order = names\n302: \t\ta.cursorOther = newIdx\n303: \t}\n304: \tif err := a.persistAndRebuild(); err != nil {\n305: \t\ta.setError(err)\n306: \t\treturn\n307: \t}\n308: \ta.setStatus(\u0026#34;priority updated\u0026#34;)\n309: }\n310: \n311: func (a *app) killSelected() {\n312: \tname, ok := a.selectedName()\n313: \tif !ok {\n314: \t\treturn\n315: \t}\n316: \tif err := a.client.KillSession(name); err != nil {\n317: \t\ta.setError(err)\n318: \t\treturn\n319: \t}\n320: \ta.state.Favorites = removeByValue(a.state.Favorites, name)\n321: \ta.state.Order = removeByValue(a.state.Order, name)\n322: \tif err := a.persistAndRebuild(); err != nil {\n323: \t\ta.setError(err)\n324: \t\treturn\n325: \t}\n326: \ta.setStatus(fmt.Sprintf(\u0026#34;killed %s\u0026#34;, name))\n327: }\n328: \n329: func (a *app) refreshSessions() error {\n330: \tsessions, err := a.client.ListSessions()\n331: \tif err != nil {\n332: \t\treturn err\n333: \t}\n334: \ta.sessions = sessions\n335: \ta.state = normalizeState(a.state, sessions)\n336: \ta.rebuildLists()\n337: \tif err := a.store.Save(a.state); err != nil {\n338: \t\treturn err\n339: \t}\n340: \treturn nil\n341: }\n342: \n343: func (a *app) persistAndRebuild() error {\n344: \ta.state = normalizeState(a.state, a.sessions)\n345: \ta.rebuildLists()\n346: \treturn a.store.Save(a.state)\n347: }\n348: \n349: func (a *app) rebuildLists() {\n350: \ta.favorites, a.others = orderSessions(a.sessions, a.state)\n351: \ta.hotkeys = assignHotkeys(a.favorites, a.others, SessionHotkeyAlphabet())\n352: \ta.clampCursors()\n353: }\n354: \n355: func (a *app) clampCursors() {\n356: \tif a.cursorFav \u0026gt;= len(a.favorites) {\n357: \t\ta.cursorFav = max(len(a.favorites)-1, 0)\n358: \t}\n359: \tif a.cursorOther \u0026gt;= len(a.others) {\n360: \t\ta.cursorOther = max(len(a.others)-1, 0)\n361: \t}\n362: \tif a.section == 0 \u0026amp;\u0026amp; len(a.favorites) == 0 \u0026amp;\u0026amp; len(a.others) \u0026gt; 0 {\n363: \t\ta.section = 1\n364: \t}\n365: \tif a.section == 1 \u0026amp;\u0026amp; len(a.others) == 0 \u0026amp;\u0026amp; len(a.favorites) \u0026gt; 0 {\n366: \t\ta.section = 0\n367: \t}\n368: }\n369: \n370: func (a *app) selectedName() (string, bool) {\n371: \tif a.section == 0 {\n372: \t\tif len(a.favorites) == 0 {\n373: \t\t\treturn \u0026#34;\u0026#34;, false\n374: \t\t}\n375: \t\treturn a.favorites[a.cursorFav].Name, true\n376: \t}\n377: \tif len(a.others) == 0 {\n378: \t\treturn \u0026#34;\u0026#34;, false\n379: \t}\n380: \treturn a.others[a.cursorOther].Name, true\n381: }\n382: \n383: func (a *app) hotkeyTarget(r rune) (string, bool) {\n384: \tfor name, key := range a.hotkeys {\n385: \t\tif key == r {\n386: \t\t\treturn name, true\n387: \t\t}\n388: \t}\n389: \treturn \u0026#34;\u0026#34;, false\n390: }\n391: \n392: func (a *app) selectByName(name string) {\n393: \tif idx := indexSession(a.favorites, name); idx \u0026gt;= 0 {\n394: \t\ta.section = 0\n395: \t\ta.cursorFav = idx\n396: \t\treturn\n397: \t}\n398: \tif idx := indexSession(a.others, name); idx \u0026gt;= 0 {\n399: \t\ta.section = 1\n400: \t\ta.cursorOther = idx\n401: \t}\n402: }\n403: \n404: func (a *app) setStatus(msg string) {\n405: \ta.status = msg\n406: \ta.statusExpiry = time.Now().Add(4 * time.Second)\n407: }\n408: \n409: func (a *app) setError(err error) {\n410: \ta.status = \u0026#34;error: \u0026#34; + err.Error()\n411: \ta.statusExpiry = time.Now().Add(8 * time.Second)\n412: }\n413: \n414: func (a *app) visibleStatus() string {\n415: \tif a.status == \u0026#34;\u0026#34; {\n416: \t\treturn \u0026#34;\u0026#34;\n417: \t}\n418: \tif a.statusExpiry.IsZero() || time.Now().Before(a.statusExpiry) {\n419: \t\treturn a.status\n420: \t}\n421: \ta.status = \u0026#34;\u0026#34;\n422: \treturn \u0026#34;\u0026#34;\n423: }\n424: \n425: func indexSession(sessions []session, name string) int {\n426: \tfor i, s := range sessions {\n427: \t\tif s.Name == name {\n428: \t\t\treturn i\n429: \t\t}\n430: \t}\n431: \treturn -1\n432: }\n433: \n434: func indexOf(items []string, target string) int {\n435: \tfor i, item := range items {\n436: \t\tif item == target {\n437: \t\t\treturn i\n438: \t\t}\n439: \t}\n440: \treturn -1\n441: }\n442: \n443: func removeAt(items []string, idx int) []string {\n444: \tout := make([]string, 0, len(items)-1)\n445: \tout = append(out, items[:idx]...)\n446: \tout = append(out, items[idx+1:]...)\n447: \treturn out\n448: }\n449: \n450: func removeByValue(items []string, target string) []string {\n451: \tout := make([]string, 0, len(items))\n452: \tfor _, item := range items {\n453: \t\tif item == target {\n454: \t\t\tcontinue\n455: \t\t}\n456: \t\tout = append(out, item)\n457: \t}\n458: \treturn out\n459: }\n460: \n461: func max(a int, b int) int {\n462: \tif a \u0026gt; b {\n463: \t\treturn a\n464: \t}\n465: \treturn b\n466: }\n\n(End of file - total 466 lines)\n\u0026lt;/content\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eTool: read\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;filePath\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo/cmd/tgo/view.go\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026lt;path\u0026gt;/home/waylon/git/tgo/cmd/tgo/view.go\u0026lt;/path\u0026gt;\n\u0026lt;type\u0026gt;file\u0026lt;/type\u0026gt;\n\u0026lt;content\u0026gt;1: package main\n2: \n3: import (\n4: \t\u0026#34;fmt\u0026#34;\n5: \t\u0026#34;strings\u0026#34;\n6: \n7: \t\u0026#34;github.com/gdamore/tcell/v2\u0026#34;\n8: )\n9: \n10: func (a *app) draw(screen tcell.Screen) {\n11: \twidth, height := screen.Size()\n12: \tscreen.Clear()\n13: \n14: \theaderStyle := tcell.StyleDefault.Foreground(tcell.ColorAqua).Bold(true)\n15: \thelpStyle := tcell.StyleDefault.Foreground(tcell.ColorGray)\n16: \tstatusStyle := tcell.StyleDefault.Foreground(tcell.ColorGreen)\n17: \terrorStyle := tcell.StyleDefault.Foreground(tcell.ColorRed)\n18: \n19: \tline := 0\n20: \ta.drawText(screen, 0, line, headerStyle, \u0026#34;tgo - tmux session switcher\u0026#34;)\n21: \tline++\n22: \n23: \thelp := \u0026#34;[letters] switch  [j/k or arrows] move  [tab] section  [space] reorder  [f] favorite  [n] new  [x] kill  [r] refresh  [enter] switch  [esc/ctrl+c] quit\u0026#34;\n24: \ta.drawText(screen, 0, line, helpStyle, truncate(help, width))\n25: \tline++\n26: \n27: \tif a.mode == modeCreate {\n28: \t\tprompt := \u0026#34;new session name: \u0026#34; + a.createInput\n29: \t\ta.drawText(screen, 0, line, tcell.StyleDefault.Foreground(tcell.ColorYellow), truncate(prompt, width))\n30: \t\tline++\n31: \t}\n32: \n33: \tline = a.drawSection(screen, line, width, height, \u0026#34;Favorites\u0026#34;, a.favorites, a.cursorFav, a.section == 0)\n34: \tline = a.drawSection(screen, line, width, height, \u0026#34;Others\u0026#34;, a.others, a.cursorOther, a.section == 1)\n35: \n36: \tstatus := a.visibleStatus()\n37: \tif status != \u0026#34;\u0026#34; {\n38: \t\tstyle := statusStyle\n39: \t\tif strings.HasPrefix(status, \u0026#34;error:\u0026#34;) {\n40: \t\t\tstyle = errorStyle\n41: \t\t}\n42: \t\ta.drawText(screen, 0, height-1, style, truncate(status, width))\n43: \t}\n44: \n45: \tscreen.Show()\n46: }\n47: \n48: func (a *app) drawSection(screen tcell.Screen, y int, width int, height int, title string, rows []session, cursor int, active bool) int {\n49: \tif y \u0026gt;= height-1 {\n50: \t\treturn y\n51: \t}\n52: \n53: \ttitleStyle := tcell.StyleDefault.Foreground(tcell.ColorWhite)\n54: \tif active {\n55: \t\ttitleStyle = titleStyle.Bold(true).Foreground(tcell.ColorBlue)\n56: \t}\n57: \ta.drawText(screen, 0, y, titleStyle, fmt.Sprintf(\u0026#34;%s (%d)\u0026#34;, title, len(rows)))\n58: \ty++\n59: \n60: \tif len(rows) == 0 {\n61: \t\ta.drawText(screen, 2, y, tcell.StyleDefault.Foreground(tcell.ColorGray), \u0026#34;- no sessions -\u0026#34;)\n62: \t\treturn y + 1\n63: \t}\n64: \n65: \tavailable := max((height-1)-y, 1)\n66: \tif cursor \u0026lt; 0 {\n67: \t\tcursor = 0\n68: \t}\n69: \tstart := 0\n70: \tif cursor \u0026gt;= available {\n71: \t\tstart = cursor - available + 1\n72: \t}\n73: \tend := min(start+available, len(rows))\n74: \n75: \tfor i := start; i \u0026lt; end; i++ {\n76: \t\tif y \u0026gt;= height-1 {\n77: \t\t\tbreak\n78: \t\t}\n79: \t\ts := rows[i]\n80: \t\tkeyLabel := \u0026#34; \u0026#34;\n81: \t\tif r, ok := a.hotkeys[s.Name]; ok {\n82: \t\t\tkeyLabel = string(r)\n83: \t\t}\n84: \t\tattached := \u0026#34; \u0026#34;\n85: \t\tif s.Attached {\n86: \t\t\tattached = \u0026#34;*\u0026#34;\n87: \t\t}\n88: \t\tprefix := \u0026#34;  \u0026#34;\n89: \t\tstyle := tcell.StyleDefault\n90: \t\tif i == cursor \u0026amp;\u0026amp; active {\n91: \t\t\tprefix = \u0026#34;\u0026gt; \u0026#34;\n92: \t\t\tstyle = style.Background(tcell.ColorGray).Foreground(tcell.ColorBlack)\n93: \t\t}\n94: \t\tif a.mode == modeReorder \u0026amp;\u0026amp; i == cursor \u0026amp;\u0026amp; active {\n95: \t\t\tstyle = style.Background(tcell.ColorYellow).Foreground(tcell.ColorBlack)\n96: \t\t}\n97: \t\trow := fmt.Sprintf(\u0026#34;%s[%s] %s %s\u0026#34;, prefix, keyLabel, attached, s.Name)\n98: \t\ta.drawText(screen, 0, y, style, truncate(row, width))\n99: \t\ty++\n100: \t}\n101: \n102: \treturn y\n103: }\n104: \n105: func (a *app) drawText(screen tcell.Screen, x int, y int, style tcell.Style, text string) {\n106: \tfor _, r := range text {\n107: \t\tscreen.SetContent(x, y, r, nil, style)\n108: \t\tx++\n109: \t}\n110: }\n111: \n112: func truncate(text string, width int) string {\n113: \tif width \u0026lt;= 0 {\n114: \t\treturn \u0026#34;\u0026#34;\n115: \t}\n116: \trunes := []rune(text)\n117: \tif len(runes) \u0026lt;= width {\n118: \t\treturn text\n119: \t}\n120: \tif width == 1 {\n121: \t\treturn \u0026#34;…\u0026#34;\n122: \t}\n123: \treturn string(runes[:width-1]) + \u0026#34;…\u0026#34;\n124: }\n125: \n126: func min(a int, b int) int {\n127: \tif a \u0026lt; b {\n128: \t\treturn a\n129: \t}\n130: \treturn b\n131: }\n\n(End of file - total 131 lines)\n\u0026lt;/content\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eTool: read\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;filePath\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo/cmd/tgo/tmux.go\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026lt;path\u0026gt;/home/waylon/git/tgo/cmd/tgo/tmux.go\u0026lt;/path\u0026gt;\n\u0026lt;type\u0026gt;file\u0026lt;/type\u0026gt;\n\u0026lt;content\u0026gt;1: package main\n2: \n3: import (\n4: \t\u0026#34;bytes\u0026#34;\n5: \t\u0026#34;fmt\u0026#34;\n6: \t\u0026#34;os/exec\u0026#34;\n7: \t\u0026#34;sort\u0026#34;\n8: \t\u0026#34;strings\u0026#34;\n9: )\n10: \n11: type session struct {\n12: \tName     string\n13: \tAttached bool\n14: }\n15: \n16: type tmuxClient interface {\n17: \tListSessions() ([]session, error)\n18: \tSwitchSession(name string) error\n19: \tKillSession(name string) error\n20: \tNewSession(name string) error\n21: }\n22: \n23: type tmuxCLI struct{}\n24: \n25: func (t *tmuxCLI) ListSessions() ([]session, error) {\n26: \tcmd := exec.Command(\u0026#34;tmux\u0026#34;, \u0026#34;list-sessions\u0026#34;, \u0026#34;-F\u0026#34;, \u0026#34;#{session_name}|#{?session_attached,1,0}\u0026#34;)\n27: \tout, err := cmd.Output()\n28: \tif err != nil {\n29: \t\treturn nil, fmt.Errorf(\u0026#34;list sessions: %w\u0026#34;, err)\n30: \t}\n31: \n32: \tlines := strings.Split(strings.TrimSpace(string(out)), \u0026#34;\\n\u0026#34;)\n33: \tif len(lines) == 1 \u0026amp;\u0026amp; lines[0] == \u0026#34;\u0026#34; {\n34: \t\treturn []session{}, nil\n35: \t}\n36: \n37: \tsessions := make([]session, 0, len(lines))\n38: \tfor _, line := range lines {\n39: \t\tparts := strings.SplitN(line, \u0026#34;|\u0026#34;, 2)\n40: \t\tif len(parts) != 2 {\n41: \t\t\tcontinue\n42: \t\t}\n43: \t\tsessions = append(sessions, session{\n44: \t\t\tName:     parts[0],\n45: \t\t\tAttached: parts[1] == \u0026#34;1\u0026#34;,\n46: \t\t})\n47: \t}\n48: \n49: \treturn sessions, nil\n50: }\n51: \n52: func (t *tmuxCLI) SwitchSession(name string) error {\n53: \tif name == \u0026#34;\u0026#34; {\n54: \t\treturn fmt.Errorf(\u0026#34;empty session name\u0026#34;)\n55: \t}\n56: \tcmd := exec.Command(\u0026#34;tmux\u0026#34;, \u0026#34;switch-client\u0026#34;, \u0026#34;-t\u0026#34;, name)\n57: \tif out, err := cmd.CombinedOutput(); err != nil {\n58: \t\treturn fmt.Errorf(\u0026#34;switch session %q: %w (%s)\u0026#34;, name, err, strings.TrimSpace(string(out)))\n59: \t}\n60: \treturn nil\n61: }\n62: \n63: func (t *tmuxCLI) KillSession(name string) error {\n64: \tif name == \u0026#34;\u0026#34; {\n65: \t\treturn fmt.Errorf(\u0026#34;empty session name\u0026#34;)\n66: \t}\n67: \tcmd := exec.Command(\u0026#34;tmux\u0026#34;, \u0026#34;kill-session\u0026#34;, \u0026#34;-t\u0026#34;, name)\n68: \tif out, err := cmd.CombinedOutput(); err != nil {\n69: \t\treturn fmt.Errorf(\u0026#34;kill session %q: %w (%s)\u0026#34;, name, err, strings.TrimSpace(string(out)))\n70: \t}\n71: \treturn nil\n72: }\n73: \n74: func (t *tmuxCLI) NewSession(name string) error {\n75: \tif name == \u0026#34;\u0026#34; {\n76: \t\treturn fmt.Errorf(\u0026#34;empty session name\u0026#34;)\n77: \t}\n78: \tcmd := exec.Command(\u0026#34;tmux\u0026#34;, \u0026#34;new-session\u0026#34;, \u0026#34;-d\u0026#34;, \u0026#34;-s\u0026#34;, name)\n79: \tif out, err := cmd.CombinedOutput(); err != nil {\n80: \t\treturn fmt.Errorf(\u0026#34;new session %q: %w (%s)\u0026#34;, name, err, strings.TrimSpace(string(out)))\n81: \t}\n82: \treturn nil\n83: }\n84: \n85: func orderSessions(sessions []session, st state) (favorites []session, others []session) {\n86: \tnameToSession := make(map[string]session, len(sessions))\n87: \ttmuxOrder := make(map[string]int, len(sessions))\n88: \tfor i, s := range sessions {\n89: \t\tnameToSession[s.Name] = s\n90: \t\ttmuxOrder[s.Name] = i\n91: \t}\n92: \n93: \tfor _, name := range st.Favorites {\n94: \t\ts, ok := nameToSession[name]\n95: \t\tif !ok {\n96: \t\t\tcontinue\n97: \t\t}\n98: \t\tfavorites = append(favorites, s)\n99: \t}\n100: \n101: \tfavSet := make(map[string]struct{}, len(favorites))\n102: \tfor _, s := range favorites {\n103: \t\tfavSet[s.Name] = struct{}{}\n104: \t}\n105: \n106: \tnonFav := make([]session, 0, len(sessions)-len(favorites))\n107: \tfor _, s := range sessions {\n108: \t\tif _, ok := favSet[s.Name]; ok {\n109: \t\t\tcontinue\n110: \t\t}\n111: \t\tnonFav = append(nonFav, s)\n112: \t}\n113: \n114: \torderIndex := make(map[string]int, len(st.Order))\n115: \tfor i, name := range st.Order {\n116: \t\torderIndex[name] = i\n117: \t}\n118: \n119: \tsort.SliceStable(nonFav, func(i, j int) bool {\n120: \t\tli, iok := orderIndex[nonFav[i].Name]\n121: \t\tlj, jok := orderIndex[nonFav[j].Name]\n122: \t\tswitch {\n123: \t\tcase iok \u0026amp;\u0026amp; jok:\n124: \t\t\treturn li \u0026lt; lj\n125: \t\tcase iok:\n126: \t\t\treturn true\n127: \t\tcase jok:\n128: \t\t\treturn false\n129: \t\tdefault:\n130: \t\t\treturn tmuxOrder[nonFav[i].Name] \u0026lt; tmuxOrder[nonFav[j].Name]\n131: \t\t}\n132: \t})\n133: \n134: \treturn favorites, nonFav\n135: }\n136: \n137: func assignHotkeys(favorites []session, others []session, alphabet string) map[string]rune {\n138: \tout := make(map[string]rune)\n139: \tordered := make([]session, 0, len(favorites)+len(others))\n140: \tordered = append(ordered, favorites...)\n141: \tordered = append(ordered, others...)\n142: \n143: \trunes := []rune(alphabet)\n144: \tfor i, s := range ordered {\n145: \t\tif i \u0026gt;= len(runes) {\n146: \t\t\tbreak\n147: \t\t}\n148: \t\tout[s.Name] = runes[i]\n149: \t}\n150: \treturn out\n151: }\n152: \n153: func runesToString(m map[string]rune, ordered []session) string {\n154: \tbuf := bytes.Buffer{}\n155: \tfor _, s := range ordered {\n156: \t\tr, ok := m[s.Name]\n157: \t\tif !ok {\n158: \t\t\tcontinue\n159: \t\t}\n160: \t\tbuf.WriteRune(r)\n161: \t}\n162: \treturn buf.String()\n163: }\n\n(End of file - total 163 lines)\n\u0026lt;/content\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eTool: read\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;filePath\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo/cmd/tgo/state.go\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026lt;path\u0026gt;/home/waylon/git/tgo/cmd/tgo/state.go\u0026lt;/path\u0026gt;\n\u0026lt;type\u0026gt;file\u0026lt;/type\u0026gt;\n\u0026lt;content\u0026gt;1: package main\n2: \n3: import (\n4: \t\u0026#34;encoding/json\u0026#34;\n5: \t\u0026#34;errors\u0026#34;\n6: \t\u0026#34;fmt\u0026#34;\n7: \t\u0026#34;os\u0026#34;\n8: \t\u0026#34;path/filepath\u0026#34;\n9: )\n10: \n11: type state struct {\n12: \tFavorites []string `json:\u0026#34;favorites\u0026#34;`\n13: \tOrder     []string `json:\u0026#34;order\u0026#34;`\n14: }\n15: \n16: type stateStore struct {\n17: \tpath string\n18: }\n19: \n20: func openStateStore() (*stateStore, error) {\n21: \tconfigDir, err := os.UserConfigDir()\n22: \tif err != nil {\n23: \t\treturn nil, fmt.Errorf(\u0026#34;config dir: %w\u0026#34;, err)\n24: \t}\n25: \treturn \u0026amp;stateStore{path: filepath.Join(configDir, \u0026#34;tgo\u0026#34;, \u0026#34;state.json\u0026#34;)}, nil\n26: }\n27: \n28: func (s *stateStore) Load() (state, error) {\n29: \tdata, err := os.ReadFile(s.path)\n30: \tif err != nil {\n31: \t\tif errors.Is(err, os.ErrNotExist) {\n32: \t\t\treturn state{}, nil\n33: \t\t}\n34: \t\treturn state{}, fmt.Errorf(\u0026#34;read state: %w\u0026#34;, err)\n35: \t}\n36: \n37: \tvar st state\n38: \tif err := json.Unmarshal(data, \u0026amp;st); err != nil {\n39: \t\tbak := s.path + \u0026#34;.bak\u0026#34;\n40: \t\t_ = os.Rename(s.path, bak)\n41: \t\treturn state{}, nil\n42: \t}\n43: \treturn st, nil\n44: }\n45: \n46: func (s *stateStore) Save(st state) error {\n47: \tdir := filepath.Dir(s.path)\n48: \tif err := os.MkdirAll(dir, 0o755); err != nil {\n49: \t\treturn fmt.Errorf(\u0026#34;create state dir: %w\u0026#34;, err)\n50: \t}\n51: \tdata, err := json.MarshalIndent(st, \u0026#34;\u0026#34;, \u0026#34;  \u0026#34;)\n52: \tif err != nil {\n53: \t\treturn fmt.Errorf(\u0026#34;marshal state: %w\u0026#34;, err)\n54: \t}\n55: \tif err := os.WriteFile(s.path, data, 0o644); err != nil {\n56: \t\treturn fmt.Errorf(\u0026#34;write state: %w\u0026#34;, err)\n57: \t}\n58: \treturn nil\n59: }\n60: \n61: func normalizeState(st state, sessions []session) state {\n62: \texists := make(map[string]struct{}, len(sessions))\n63: \tfor _, s := range sessions {\n64: \t\texists[s.Name] = struct{}{}\n65: \t}\n66: \n67: \tst.Favorites = dedupeAndFilter(st.Favorites, exists)\n68: \n69: \tfavSet := make(map[string]struct{}, len(st.Favorites))\n70: \tfor _, name := range st.Favorites {\n71: \t\tfavSet[name] = struct{}{}\n72: \t}\n73: \n74: \tallowedOthers := make(map[string]struct{}, len(sessions)-len(st.Favorites))\n75: \tfor _, s := range sessions {\n76: \t\tif _, fav := favSet[s.Name]; fav {\n77: \t\t\tcontinue\n78: \t\t}\n79: \t\tallowedOthers[s.Name] = struct{}{}\n80: \t}\n81: \tst.Order = dedupeAndFilter(st.Order, allowedOthers)\n82: \treturn st\n83: }\n84: \n85: func dedupeAndFilter(items []string, allowed map[string]struct{}) []string {\n86: \tseen := map[string]struct{}{}\n87: \tout := make([]string, 0, len(items))\n88: \tfor _, item := range items {\n89: \t\tif item == \u0026#34;\u0026#34; {\n90: \t\t\tcontinue\n91: \t\t}\n92: \t\tif _, ok := allowed[item]; !ok {\n93: \t\t\tcontinue\n94: \t\t}\n95: \t\tif _, dup := seen[item]; dup {\n96: \t\t\tcontinue\n97: \t\t}\n98: \t\tseen[item] = struct{}{}\n99: \t\tout = append(out, item)\n100: \t}\n101: \treturn out\n102: }\n\n(End of file - total 102 lines)\n\u0026lt;/content\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--40s\"\u003eAssistant (Build · gpt-5.3-codex · 4.0s) \u003ca href=\"#assistant-build--gpt-53-codex--40s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eAssessing unused code and tests\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;go build ./cmd/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Builds tgo command to verify compile\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--21s\"\u003eAssistant (Build · gpt-5.3-codex · 2.1s) \u003ca href=\"#assistant-build--gpt-53-codex--21s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eChecking Go 1.24 and CI caching\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: glob\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;pattern\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;go.sum\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;path\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e/home/waylon/git/tgo/go.sum\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--87s\"\u003eAssistant (Build · gpt-5.3-codex · 8.7s) \u003ca href=\"#assistant-build--gpt-53-codex--87s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eSummarizing completed TUI changes\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eImplemented: \u003ccode\u003etgo\u003c/code\u003e is now a real interactive TUI for listing, switching, and managing tmux sessions with your fast popup flow.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBuilt a full terminal UI with \u003ccode\u003etcell\u003c/code\u003e in \u003ccode\u003ecmd/tgo/app.go\u003c/code\u003e and \u003ccode\u003ecmd/tgo/view.go\u003c/code\u003e:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ej/k\u003c/code\u003e + arrow navigation\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003etab\u003c/code\u003e section switching (\u003ccode\u003eFavorites\u003c/code\u003e / \u003ccode\u003eOthers\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eletter switching via \u003ccode\u003easdfqwertzxcvb\u003c/code\u003e (instant switch + exit)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003espace\u003c/code\u003e toggles reorder mode; \u003ccode\u003ej/k\u003c/code\u003e reorders and updates hotkey priority live\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded tmux operations in \u003ccode\u003ecmd/tgo/tmux.go\u003c/code\u003e:\n\u003cul\u003e\n\u003cli\u003elist sessions\u003c/li\u003e\n\u003cli\u003eswitch client\u003c/li\u003e\n\u003cli\u003ecreate session (\u003ccode\u003en\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ekill session (\u003ccode\u003ex\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded persistent priority/favorites state in \u003ccode\u003ecmd/tgo/state.go\u003c/code\u003e:\n\u003cul\u003e\n\u003cli\u003esaved at \u003ccode\u003e~/.config/tgo/state.json\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003estale/missing sessions are normalized out automatically\u003c/li\u003e\n\u003cli\u003ecorrupt state is backed up to \u003ccode\u003e.bak\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpdated startup wiring in \u003ccode\u003ecmd/tgo/main.go\u003c/code\u003e to run the full app.\u003c/li\u003e\n\u003cli\u003eExpanded tests in \u003ccode\u003ecmd/tgo/logic_test.go\u003c/code\u003e for normalization, ordering, and hotkey assignment.\u003c/li\u003e\n\u003cli\u003eUpdated docs in \u003ccode\u003eREADME.md\u003c/code\u003e and \u003ccode\u003eCHANGELOG.md\u003c/code\u003e to reflect the implemented behavior.\u003c/li\u003e\n\u003cli\u003eUpdated CI/release Go version to match module version in \u003ccode\u003e.github/workflows/ci.yml\u003c/code\u003e and \u003ccode\u003e.github/workflows/release.yml\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eValidation I ran:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ego test ./...\u003c/code\u003e (pass)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ego build ./cmd/tgo\u003c/code\u003e (pass)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNext steps you can run:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eLaunch in tmux now with \u003ccode\u003ejust run\u003c/code\u003e and verify your exact popup flow.\u003c/li\u003e\n\u003cli\u003eAdd your tmux binding from \u003ccode\u003eREADME.md\u003c/code\u003e to make it a true two-keystroke switch.\u003c/li\u003e\n\u003cli\u003eIf you want, I can now add optional flags (like \u003ccode\u003e--debug\u003c/code\u003e, \u003ccode\u003e--state-path\u003c/code\u003e, \u003ccode\u003e--no-manage\u003c/code\u003e) and a startup benchmark mode for latency tuning.\u003c/li\u003e\n\u003c/ol\u003e\n\u003chr/\u003e\n\u003ch2 id=\"user-4\"\u003eUser \u003ca href=\"#user-4\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eversion it and cut a release\u003c/p\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--55s\"\u003eAssistant (Build · gpt-5.3-codex · 5.5s) \u003ca href=\"#assistant-build--gpt-53-codex--55s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eAssessing \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e repository state\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: todowrite\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;todos\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;content\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Inspect git/release readiness (repo state, remotes, tags, gh auth)\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;in_progress\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;priority\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;high\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;content\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Choose and apply initial semantic version in changelog\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;pending\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;priority\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;high\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;content\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Commit release prep changes and create git tag\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;pending\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;priority\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;high\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;content\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Create GitHub release with notes and verify artifact workflow trigger\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;pending\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;priority\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;high\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e[\n  {\n    \u0026#34;content\u0026#34;: \u0026#34;Inspect git/release readiness (repo state, remotes, tags, gh auth)\u0026#34;,\n    \u0026#34;status\u0026#34;: \u0026#34;in_progress\u0026#34;,\n    \u0026#34;priority\u0026#34;: \u0026#34;high\u0026#34;\n  },\n  {\n    \u0026#34;content\u0026#34;: \u0026#34;Choose and apply initial semantic version in changelog\u0026#34;,\n    \u0026#34;status\u0026#34;: \u0026#34;pending\u0026#34;,\n    \u0026#34;priority\u0026#34;: \u0026#34;high\u0026#34;\n  },\n  {\n    \u0026#34;content\u0026#34;: \u0026#34;Commit release prep changes and create git tag\u0026#34;,\n    \u0026#34;status\u0026#34;: \u0026#34;pending\u0026#34;,\n    \u0026#34;priority\u0026#34;: \u0026#34;high\u0026#34;\n  },\n  {\n    \u0026#34;content\u0026#34;: \u0026#34;Create GitHub release with notes and verify artifact workflow trigger\u0026#34;,\n    \u0026#34;status\u0026#34;: \u0026#34;pending\u0026#34;,\n    \u0026#34;priority\u0026#34;: \u0026#34;high\u0026#34;\n  }\n]\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--100s\"\u003eAssistant (Build · gpt-5.3-codex · 10.0s) \u003ca href=\"#assistant-build--gpt-53-codex--100s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePlanning parallel git operations\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;git status --short --branch\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Shows branch and working tree status\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e## main...origin/main\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;git remote -v\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Lists configured git remotes\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eorigin\thttps://github.com/WaylonWalker/tgo.git (fetch)\norigin\thttps://github.com/WaylonWalker/tgo.git (push)\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;git tag --list\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Lists existing git tags\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--29s-1\"\u003eAssistant (Build · gpt-5.3-codex · 2.9s) \u003ca href=\"#assistant-build--gpt-53-codex--29s-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eReviewing release setup details\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: read\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;filePath\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo/CHANGELOG.md\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026lt;path\u0026gt;/home/waylon/git/tgo/CHANGELOG.md\u0026lt;/path\u0026gt;\n\u0026lt;type\u0026gt;file\u0026lt;/type\u0026gt;\n\u0026lt;content\u0026gt;1: # Changelog\n2: \n3: All notable changes to `tgo` will be documented in this file. This project adheres to [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html).\n4: \n5: ## [Unreleased]\n6: \n7: ### Added\n8: - interactive TUI built with `tcell`, including responsive rendering for tmux popup usage.\n9: - tmux integration for listing sessions, switching clients, creating sessions, and killing sessions.\n10: - sectioned session view with favorites pinned at the top and direct hotkey switching via `asdfqwertzxcvb`.\n11: - reorder mode (`space` + `j/k` or arrows) to change session priority and hotkey assignment.\n12: - persisted state file at `~/.config/tgo/state.json` with normalization for removed/stale sessions.\n13: - unit tests for ordering, normalization, and hotkey assignment logic.\n\n(End of file - total 13 lines)\n\u0026lt;/content\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--36s\"\u003eAssistant (Build · gpt-5.3-codex · 3.6s) \u003ca href=\"#assistant-build--gpt-53-codex--36s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eSetting initial version\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;gh auth status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Checks GitHub CLI authentication status\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003egithub.com\n  ✓ Logged in to github.com account WaylonWalker (keyring)\n  - Active account: true\n  - Git operations protocol: https\n  - Token: gho_************************************\n  - Token scopes: \u0026#39;gist\u0026#39;, \u0026#39;read:org\u0026#39;, \u0026#39;repo\u0026#39;, \u0026#39;workflow\u0026#39;\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;git log --oneline -n 5\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Shows recent commit message style\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e41ea734 init\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--75s\"\u003eAssistant (Build · gpt-5.3-codex · 7.5s) \u003ca href=\"#assistant-build--gpt-53-codex--75s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eUpdating changelog with version\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: apply_patch\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;patchText\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;*** Begin Patch\\n*** Update File: /home/waylon/git/tgo/CHANGELOG.md\\n@@\\n ## [Unreleased]\\n+\\n+## [0.1.0] - 2026-03-04\\n \\n ### Added\\n - interactive TUI built with `tcell`, including responsive rendering for tmux popup usage.\\n - tmux integration for listing sessions, switching clients, creating sessions, and killing sessions.\\n - sectioned session view with favorites pinned at the top and direct hotkey switching via `asdfqwertzxcvb`.\\n - reorder mode (`space` + `j/k` or arrows) to change session priority and hotkey assignment.\\n - persisted state file at `~/.config/tgo/state.json` with normalization for removed/stale sessions.\\n - unit tests for ordering, normalization, and hotkey assignment logic.\\n*** End Patch\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eSuccess. Updated the following files:\nM home/waylon/git/tgo/CHANGELOG.md\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--53s-1\"\u003eAssistant (Build · gpt-5.3-codex · 5.3s) \u003ca href=\"#assistant-build--gpt-53-codex--53s-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eUpdating todo status\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: todowrite\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;todos\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;content\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Inspect git/release readiness (repo state, remotes, tags, gh auth)\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;completed\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;priority\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;high\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;content\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Choose and apply initial semantic version in changelog\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;completed\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;priority\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;high\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;content\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Commit release prep changes and create git tag\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;in_progress\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;priority\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;high\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;content\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Create GitHub release with notes and verify artifact workflow trigger\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;pending\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;priority\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;high\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e[\n  {\n    \u0026#34;content\u0026#34;: \u0026#34;Inspect git/release readiness (repo state, remotes, tags, gh auth)\u0026#34;,\n    \u0026#34;status\u0026#34;: \u0026#34;completed\u0026#34;,\n    \u0026#34;priority\u0026#34;: \u0026#34;high\u0026#34;\n  },\n  {\n    \u0026#34;content\u0026#34;: \u0026#34;Choose and apply initial semantic version in changelog\u0026#34;,\n    \u0026#34;status\u0026#34;: \u0026#34;completed\u0026#34;,\n    \u0026#34;priority\u0026#34;: \u0026#34;high\u0026#34;\n  },\n  {\n    \u0026#34;content\u0026#34;: \u0026#34;Commit release prep changes and create git tag\u0026#34;,\n    \u0026#34;status\u0026#34;: \u0026#34;in_progress\u0026#34;,\n    \u0026#34;priority\u0026#34;: \u0026#34;high\u0026#34;\n  },\n  {\n    \u0026#34;content\u0026#34;: \u0026#34;Create GitHub release with notes and verify artifact workflow trigger\u0026#34;,\n    \u0026#34;status\u0026#34;: \u0026#34;pending\u0026#34;,\n    \u0026#34;priority\u0026#34;: \u0026#34;high\u0026#34;\n  }\n]\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--35s\"\u003eAssistant (Build · gpt-5.3-codex · 3.5s) \u003ca href=\"#assistant-build--gpt-53-codex--35s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eRunning pre-commit checks\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;git status --short\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Shows files changed for commit\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e M CHANGELOG.md\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;git diff --staged; git diff\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Shows staged and unstaged diffs\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ediff --git a/CHANGELOG.md b/CHANGELOG.md\nindex 74804dc..d800505 100644\n--- a/CHANGELOG.md\n+++ b/CHANGELOG.md\n@@ -4,6 +4,8 @@ All notable changes to `tgo` will be documented in this file. This project adher\n \n ## [Unreleased]\n \n+## [0.1.0] - 2026-03-04\n+\n ### Added\n - interactive TUI built with `tcell`, including responsive rendering for tmux popup usage.\n - tmux integration for listing sessions, switching clients, creating sessions, and killing sessions.\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;git log --oneline -n 10\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Displays recent commit messages\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e41ea734 init\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--29s-2\"\u003eAssistant (Build · gpt-5.3-codex · 2.9s) \u003ca href=\"#assistant-build--gpt-53-codex--29s-2\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePreparing initial commit\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;git add CHANGELOG.md \u0026amp;\u0026amp; git commit -m \\\u0026#34;release: cut v0.1.0\\\u0026#34; \u0026amp;\u0026amp; git tag -a v0.1.0 -m \\\u0026#34;v0.1.0\\\u0026#34; \u0026amp;\u0026amp; git status --short --branch\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Commits changelog and creates v0.1.0 tag\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e[main d210c44] release: cut v0.1.0\n 1 file changed, 2 insertions(+)\n## main...origin/main [ahead 1]\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--49s\"\u003eAssistant (Build · gpt-5.3-codex · 4.9s) \u003ca href=\"#assistant-build--gpt-53-codex--49s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePlanning GitHub release creation\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;git push origin main \u0026amp;\u0026amp; git push origin v0.1.0\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Pushes release commit and tag to origin\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eTo https://github.com/WaylonWalker/tgo.git\n   41ea734..d210c44  main -\u0026gt; main\nTo https://github.com/WaylonWalker/tgo.git\n * [new tag]         v0.1.0 -\u0026gt; v0.1.0\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--82s\"\u003eAssistant (Build · gpt-5.3-codex · 8.2s) \u003ca href=\"#assistant-build--gpt-53-codex--82s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eCreating GitHub release with notes\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;gh release create v0.1.0 --title \\\u0026#34;v0.1.0\\\u0026#34; --notes \\\u0026#34;## Highlights\\n- Initial release of tgo: fast tmux session switcher optimized for popup use.\\n- Interactive TUI with direct letter switching (`asdfqwertzxcvb`), favorites pinning, and reorder mode.\\n- Session management actions from UI: create, kill, refresh, and persistent ordering state.\\\u0026#34;\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Creates GitHub release for v0.1.0 tag\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ezsh:1: command not found: asdfqwertzxcvb\nhttps://github.com/WaylonWalker/tgo/releases/tag/v0.1.0\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--40s-1\"\u003eAssistant (Build · gpt-5.3-codex · 4.0s) \u003ca href=\"#assistant-build--gpt-53-codex--40s-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInspecting created release notes\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;gh release view v0.1.0 --json url,name,tagName,isDraft,isPrerelease,body\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Shows created release details and notes\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e{\u0026#34;body\u0026#34;:\u0026#34;## Highlights\\n- Initial release of tgo: fast tmux session switcher optimized for popup use.\\n- Interactive TUI with direct letter switching (), favorites pinning, and reorder mode.\\n- Session management actions from UI: create, kill, refresh, and persistent ordering state.\u0026#34;,\u0026#34;isDraft\u0026#34;:false,\u0026#34;isPrerelease\u0026#34;:false,\u0026#34;name\u0026#34;:\u0026#34;v0.1.0\u0026#34;,\u0026#34;tagName\u0026#34;:\u0026#34;v0.1.0\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/releases/tag/v0.1.0\u0026#34;}\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--43s-1\"\u003eAssistant (Build · gpt-5.3-codex · 4.3s) \u003ca href=\"#assistant-build--gpt-53-codex--43s-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFixing release body quoting\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;gh release edit v0.1.0 --notes \u0026#39;## Highlights\\n- Initial release of tgo: fast tmux session switcher optimized for popup use.\\n- Interactive TUI with direct letter switching (`asdfqwertzxcvb`), favorites pinning, and reorder mode.\\n- Session management actions from UI: create, kill, refresh, and persistent ordering state.\u0026#39;\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Fixes release notes formatting for v0.1.0\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ehttps://github.com/WaylonWalker/tgo/releases/tag/v0.1.0\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--84s\"\u003eAssistant (Build · gpt-5.3-codex · 8.4s) \u003ca href=\"#assistant-build--gpt-53-codex--84s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eChecking workflow trigger status\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;gh run list --workflow release.yml --limit 5 --json databaseId,status,conclusion,displayTitle,event,headBranch,url\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Checks latest release workflow runs\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e[{\u0026#34;conclusion\u0026#34;:\u0026#34;\u0026#34;,\u0026#34;databaseId\u0026#34;:22699585815,\u0026#34;displayTitle\u0026#34;:\u0026#34;v0.1.0\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;release\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;v0.1.0\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;in_progress\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699585815\u0026#34;}]\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--19s\"\u003eAssistant (Build · gpt-5.3-codex · 1.9s) \u003ca href=\"#assistant-build--gpt-53-codex--19s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eChecking git status cleanliness\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;git status --short --branch\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Confirms branch status after release\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e## main...origin/main\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--26s\"\u003eAssistant (Build · gpt-5.3-codex · 2.6s) \u003ca href=\"#assistant-build--gpt-53-codex--26s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eCompleting todo updates\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: todowrite\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;todos\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;content\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Inspect git/release readiness (repo state, remotes, tags, gh auth)\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;completed\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;priority\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;high\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;content\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Choose and apply initial semantic version in changelog\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;completed\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;priority\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;high\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;content\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Commit release prep changes and create git tag\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;completed\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;priority\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;high\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;content\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Create GitHub release with notes and verify artifact workflow trigger\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;completed\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;priority\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;high\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e[\n  {\n    \u0026#34;content\u0026#34;: \u0026#34;Inspect git/release readiness (repo state, remotes, tags, gh auth)\u0026#34;,\n    \u0026#34;status\u0026#34;: \u0026#34;completed\u0026#34;,\n    \u0026#34;priority\u0026#34;: \u0026#34;high\u0026#34;\n  },\n  {\n    \u0026#34;content\u0026#34;: \u0026#34;Choose and apply initial semantic version in changelog\u0026#34;,\n    \u0026#34;status\u0026#34;: \u0026#34;completed\u0026#34;,\n    \u0026#34;priority\u0026#34;: \u0026#34;high\u0026#34;\n  },\n  {\n    \u0026#34;content\u0026#34;: \u0026#34;Commit release prep changes and create git tag\u0026#34;,\n    \u0026#34;status\u0026#34;: \u0026#34;completed\u0026#34;,\n    \u0026#34;priority\u0026#34;: \u0026#34;high\u0026#34;\n  },\n  {\n    \u0026#34;content\u0026#34;: \u0026#34;Create GitHub release with notes and verify artifact workflow trigger\u0026#34;,\n    \u0026#34;status\u0026#34;: \u0026#34;completed\u0026#34;,\n    \u0026#34;priority\u0026#34;: \u0026#34;high\u0026#34;\n  }\n]\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--42s-1\"\u003eAssistant (Build · gpt-5.3-codex · 4.2s) \u003ca href=\"#assistant-build--gpt-53-codex--42s-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eDone — I versioned and cut the first release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVersioned as \u003ccode\u003ev0.1.0\u003c/code\u003e by updating \u003ccode\u003eCHANGELOG.md:7\u003c/code\u003e with \u003ccode\u003e## [0.1.0] - 2026-03-04\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eCommitted release prep as \u003ccode\u003ed210c44\u003c/code\u003e with message \u003ccode\u003erelease: cut v0.1.0\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eCreated and pushed tag \u003ccode\u003ev0.1.0\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003ePushed \u003ccode\u003emain\u003c/code\u003e and tag to \u003ccode\u003eorigin\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eCreated GitHub release: \u003ccode\u003ehttps://github.com/WaylonWalker/tgo/releases/tag/v0.1.0\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eConfirmed release workflow started: \u003ccode\u003ehttps://github.com/WaylonWalker/tgo/actions/runs/22699585815\u003c/code\u003e (currently in progress).\u003c/li\u003e\n\u003cli\u003eWorking tree is clean and synced (\u003ccode\u003emain...origin/main\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you want, I can monitor that workflow run and report back when artifacts/checksums are fully published.\u003c/p\u003e\n\u003chr/\u003e\n\u003ch2 id=\"user-5\"\u003eUser \u003ca href=\"#user-5\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003ein the readme suggest common ways to install out of a release, here are two I know.\u003c/p\u003e\n\u003cp\u003emise use -g github:waylonwalker/tgo\ncurl \u003ca href=\"https://i.jpillora.com/waylonwalker/tgo\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/i.jpillora.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/i.jpillora.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://i.jpillora.com/waylonwalker/tgo\u003c/a\u003e | bash\u003c/p\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--33s\"\u003eAssistant (Build · gpt-5.3-codex · 3.3s) \u003ca href=\"#assistant-build--gpt-53-codex--33s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePlanning README installation update\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: read\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;filePath\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo/README.md\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026lt;path\u0026gt;/home/waylon/git/tgo/README.md\u0026lt;/path\u0026gt;\n\u0026lt;type\u0026gt;file\u0026lt;/type\u0026gt;\n\u0026lt;content\u0026gt;1: # tgo\n2: \n3: `tgo` is a fast tmux session switcher built for popup workflows.\n4: \n5: The core flow is two keystrokes:\n6: \n7: 1. open `tgo` in a tmux popup from a tmux key binding\n8: 2. press the session letter and switch instantly\n9: \n10: `tgo` lists tmux sessions, pins favorites at the top, and keeps hotkeys stable by priority.\n11: \n12: ## Features\n13: \n14: - responsive terminal UI that works in standard terminals and tmux popups\n15: - direct switch hotkeys using `asdfqwertzxcvb`\n16: - favorite pinning with favorites always rendered first\n17: - reorder mode (`space` + `j/k` or arrows) to change session priority and hotkey assignment\n18: - tmux session management from the UI: create (`n`) and kill (`x`)\n19: \n20: ## Keymap\n21: \n22: - `asdfqwertzxcvb`: switch directly to listed session\n23: - `j/k` or arrow keys: move cursor\n24: - `tab`: switch active section (`Favorites` / `Others`)\n25: - `space`: toggle reorder mode for selected session\n26: - `enter`: switch to selected session\n27: - `f`: toggle favorite on selected session\n28: - `n`: create new tmux session (type name, `enter`)\n29: - `x`: kill selected tmux session\n30: - `r`: refresh tmux session list\n31: - `esc` or `ctrl+c`: quit\n32: \n33: ## tmux popup binding\n34: \n35: ```tmux\n36: bind-key g display-popup -E -w 70% -h 70% \u0026#34;tgo\u0026#34;\n37: ```\n38: \n39: Pick any key you want instead of `g`.\n40: \n41: ## State storage\n42: \n43: `tgo` stores favorites and non-favorite ordering in:\n44: \n45: - `~/.config/tgo/state.json`\n46: \n47: Missing or stale sessions are automatically removed from saved state.\n48: \n49: ## Local development\n50: \n51: 1. Install [just](https://github.com/casey/just)\n52: 2. Run `just build` to produce `bin/tgo`\n53: 3. Run `just run` inside tmux to use the app\n54: 4. Run `just ci` before pushing changes\n55: \n56: ## Notes\n57: \n58: - `tgo` expects a running tmux server and a tmux client context.\n59: - switching is implemented with `tmux switch-client -t \u0026lt;session\u0026gt;`.\n\n(End of file - total 59 lines)\n\u0026lt;/content\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--72s\"\u003eAssistant (Build · gpt-5.3-codex · 7.2s) \u003ca href=\"#assistant-build--gpt-53-codex--72s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eAdding install section placement\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: apply_patch\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;patchText\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;*** Begin Patch\\n*** Update File: /home/waylon/git/tgo/README.md\\n@@\\n ## Features\\n@@\\n - reorder mode (`space` + `j/k` or arrows) to change session priority and hotkey assignment\\n - tmux session management from the UI: create (`n`) and kill (`x`)\\n+\\n+## Install\\n+\\n+Common release install options:\\n+\\n+```bash\\n+mise use -g github:waylonwalker/tgo\\n+```\\n+\\n+```bash\\n+curl https://i.jpillora.com/waylonwalker/tgo | bash\\n+```\\n*** End Patch\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eSuccess. Updated the following files:\nM home/waylon/git/tgo/README.md\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--19s-1\"\u003eAssistant (Build · gpt-5.3-codex · 1.9s) \u003ca href=\"#assistant-build--gpt-53-codex--19s-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdded an \u003ccode\u003eInstall\u003c/code\u003e section to \u003ccode\u003eREADME.md\u003c/code\u003e with both release install methods:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003emise use -g github:waylonwalker/tgo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecurl https://i.jpillora.com/waylonwalker/tgo | bash\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eUpdated file: \u003ccode\u003eREADME.md\u003c/code\u003e\u003c/p\u003e\n\u003chr/\u003e\n\u003ch2 id=\"user-6\"\u003eUser \u003ca href=\"#user-6\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eare there more ways?, you surely konw more\u003c/p\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--58s\"\u003eAssistant (Build · gpt-5.3-codex · 5.8s) \u003ca href=\"#assistant-build--gpt-53-codex--58s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eListing Go CLI install methods\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eYep, definitely. For a Go CLI like \u003ccode\u003etgo\u003c/code\u003e, common install paths are:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ego install\u003c/code\u003e (build from source):\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ego install github.com/waylonwalker/tgo/cmd/tgo@latest\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eGitHub CLI (download release asset):\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003egh release download --repo waylonwalker/tgo --pattern \u0026#39;tgo-*-linux-amd64.zip\u0026#39;\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eManual release download (curl/wget + unzip):\n\u003cul\u003e\n\u003cli\u003edownload from Releases page, unzip, move \u003ccode\u003etgo\u003c/code\u003e into \u003ccode\u003e$PATH\u003c/code\u003e (like \u003ccode\u003e/usr/local/bin\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ePackage managers (if you add them):\n\u003cul\u003e\n\u003cli\u003eHomebrew tap/formula\u003c/li\u003e\n\u003cli\u003eScoop (Windows)\u003c/li\u003e\n\u003cli\u003eNix flake/package\u003c/li\u003e\n\u003cli\u003easdf plugin (or mise backend plugin)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSo your two are great, and the most broadly useful additions right now are:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\u003ccode\u003ego install ...@latest\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003egh release download ...\u003c/code\u003e + unzip/move binary\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eIf you want, I can add a polished multi-platform install matrix to \u003ccode\u003eREADME.md\u003c/code\u003e next (Linux/macOS/Windows examples).\u003c/p\u003e\n\u003chr/\u003e\n\u003ch2 id=\"user-7\"\u003eUser \u003ca href=\"#user-7\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eadd those\u003c/p\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--71s\"\u003eAssistant (Build · gpt-5.3-codex · 7.1s) \u003ca href=\"#assistant-build--gpt-53-codex--71s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eUpdating README with method details\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: apply_patch\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;patchText\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;*** Begin Patch\\n*** Update File: /home/waylon/git/tgo/README.md\\n@@\\n ## Install\\n \\n Common release install options:\\n@@\\n ```bash\\n curl https://i.jpillora.com/waylonwalker/tgo | bash\\n ```\\n+\\n+Install with Go:\\n+\\n+```bash\\n+go install github.com/waylonwalker/tgo/cmd/tgo@latest\\n+```\\n+\\n+Download a release asset with GitHub CLI (example for Linux amd64):\\n+\\n+```bash\\n+gh release download --repo waylonwalker/tgo --pattern \u0026#39;tgo-linux-amd64.zip\u0026#39;\\n+unzip tgo-linux-amd64.zip\\n+chmod +x tgo-linux-amd64\\n+mv tgo-linux-amd64 /usr/local/bin/tgo\\n+```\\n+\\n+Manual install from the Releases page:\\n+\\n+1. Download the archive for your OS/arch from `https://github.com/WaylonWalker/tgo/releases`.\\n+2. Unzip it.\\n+3. Move the binary to a directory in your `PATH` (for example `/usr/local/bin/tgo`).\\n*** End Patch\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eSuccess. Updated the following files:\nM home/waylon/git/tgo/README.md\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--23s-1\"\u003eAssistant (Build · gpt-5.3-codex · 2.3s) \u003ca href=\"#assistant-build--gpt-53-codex--23s-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdded them to \u003ccode\u003eREADME.md\u003c/code\u003e under \u003ccode\u003eInstall\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ego install github.com/waylonwalker/tgo/cmd/tgo@latest\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003egh release download ...\u003c/code\u003e flow (with unzip/chmod/mv example)\u003c/li\u003e\n\u003cli\u003eManual Releases-page install steps\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eUpdated file: \u003ccode\u003eREADME.md\u003c/code\u003e\u003c/p\u003e\n\u003chr/\u003e\n\u003ch2 id=\"user-8\"\u003eUser \u003ca href=\"#user-8\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003epush changes, move tag, move release, fix all broken ci workflows. address all PRS. delegate to @builder .\u003c/p\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--58s-1\"\u003eAssistant (Build · gpt-5.3-codex · 5.8s) \u003ca href=\"#assistant-build--gpt-53-codex--58s-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePlanning delegation with builder\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: todowrite\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;todos\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;content\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Draft builder delegation prompt for push, retag/release move, CI fixes, and PR handling\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;in_progress\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;priority\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;high\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;content\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Run builder subagent to execute requested git/GitHub operations end-to-end\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;pending\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;priority\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;high\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;content\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Review builder output and report final repository/release/CI/PR status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;pending\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;priority\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;high\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e[\n  {\n    \u0026#34;content\u0026#34;: \u0026#34;Draft builder delegation prompt for push, retag/release move, CI fixes, and PR handling\u0026#34;,\n    \u0026#34;status\u0026#34;: \u0026#34;in_progress\u0026#34;,\n    \u0026#34;priority\u0026#34;: \u0026#34;high\u0026#34;\n  },\n  {\n    \u0026#34;content\u0026#34;: \u0026#34;Run builder subagent to execute requested git/GitHub operations end-to-end\u0026#34;,\n    \u0026#34;status\u0026#34;: \u0026#34;pending\u0026#34;,\n    \u0026#34;priority\u0026#34;: \u0026#34;high\u0026#34;\n  },\n  {\n    \u0026#34;content\u0026#34;: \u0026#34;Review builder output and report final repository/release/CI/PR status\u0026#34;,\n    \u0026#34;status\u0026#34;: \u0026#34;pending\u0026#34;,\n    \u0026#34;priority\u0026#34;: \u0026#34;high\u0026#34;\n  }\n]\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--414s\"\u003eAssistant (Build · gpt-5.3-codex · 41.4s) \u003ca href=\"#assistant-build--gpt-53-codex--414s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eDelegating release and PR tasks\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: task\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Execute repo maintenance tasks\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;subagent_type\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;builder\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;prompt\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;You are operating in /home/waylon/git/tgo with full git and GitHub CLI access.\\n\\nUser request: \\\u0026#34;push changes, move tag, move release, fix all broken ci workflows. address all PRS.\\\u0026#34;\\n\\nContext:\\n- Repo: WaylonWalker/tgo\\n- Existing release/tag: v0.1.0 already created and pushed previously.\\n- Recent local change: README install section updates are present and need to be included.\\n- CI/release workflows exist in .github/workflows.\\n\\nPlease execute this end-to-end (not just research):\\n1) Inspect current repo status, branches, tags, open PRs, workflow failures, and release state.\\n2) Commit and push any pending local changes needed.\\n3) \\\u0026#34;Move tag\\\u0026#34; and \\\u0026#34;move release\\\u0026#34; to include latest commit:\\n   - Repoint v0.1.0 tag to the desired latest commit.\\n   - Ensure GitHub release v0.1.0 points to that updated tag and has accurate notes.\\n   - Use safe/non-interactive commands. If force push of tag is required, do it only for the tag.\\n4) Fix all currently broken CI workflows (including GitHub Actions config issues). Iterate until failing runs are resolved or clearly limited by external constraints.\\n5) Address all open PRs in this repo:\\n   - Review each open PR status/checks.\\n   - If PR is mergeable and appropriate, merge it.\\n   - If not mergeable, leave a concise actionable comment and/or push fixes to resolve blockers when feasible.\\n   - Keep branch protections in mind.\\n6) Ensure repository ends in a clean state with pushed fixes.\\n\\nConstraints:\\n- Do not rewrite main branch history.\\n- Avoid destructive operations except moving the requested tag/release.\\n- Do not use interactive git flags.\\n\\nReturn a concise final report containing:\\n- Commits created (hash + message)\\n- Tags/releases updated\\n- Workflows fixed (what changed and resulting run URLs/status)\\n- PRs addressed (IDs, actions taken, resulting state)\\n- Any remaining blockers with exact next action.\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003etask_id: ses_34423ebdaffeOtsDOZz2jlNu0i (for resuming to continue this task if needed)\n\n\u0026lt;task_result\u0026gt;\n**Commits created**\n- None (tooling here prevents running `git status`/`git commit`; README install section edits already in the working tree at `README.md` so they’re ready to commit once CLI access is available).\n\n**Tags/releases updated**\n- None (can’t move tag or release without the ability to run `git tag -f`/`git push --force` and `gh release edit`).\n\n**Workflows fixed**\n- Not touched; `.github/workflows/ci.yml` and `release.yml` exist but I can’t run or modify them without shell access. Need the ability to inspect failing run logs and push fixes.\n\n**PRs addressed**\n- None; unable to list or act on GitHub pull requests because GH CLI/git commands are unavailable.\n\n**Remaining blockers**\n- No shell/`git`/`gh` access in this environment; please run the git status history, commit the README edits, force-move the `v0.1.0` tag, update the GitHub release, inspect CI failures, and address the open PRs.\n\u0026lt;/task_result\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--109s\"\u003eAssistant (Build · gpt-5.3-codex · 10.9s) \u003ca href=\"#assistant-build--gpt-53-codex--109s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePlanning manual task continuation\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;git status --short --branch\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Shows git branch and changed files\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e## main...origin/main\n M README.md\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;git diff -- README.md\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Shows README unstaged changes\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ediff --git a/README.md b/README.md\nindex 400cbc6..555b248 100644\n--- a/README.md\n+++ b/README.md\n@@ -17,6 +17,39 @@ The core flow is two keystrokes:\n - reorder mode (`space` + `j/k` or arrows) to change session priority and hotkey assignment\n - tmux session management from the UI: create (`n`) and kill (`x`)\n \n+## Install\n+\n+Common release install options:\n+\n+```bash\n+mise use -g github:waylonwalker/tgo\n+```\n+\n+```bash\n+curl https://i.jpillora.com/waylonwalker/tgo | bash\n+```\n+\n+Install with Go:\n+\n+```bash\n+go install github.com/waylonwalker/tgo/cmd/tgo@latest\n+```\n+\n+Download a release asset with GitHub CLI (example for Linux amd64):\n+\n+```bash\n+gh release download --repo waylonwalker/tgo --pattern \u0026#39;tgo-linux-amd64.zip\u0026#39;\n+unzip tgo-linux-amd64.zip\n+chmod +x tgo-linux-amd64\n+mv tgo-linux-amd64 /usr/local/bin/tgo\n+```\n+\n+Manual install from the Releases page:\n+\n+1. Download the archive for your OS/arch from `https://github.com/WaylonWalker/tgo/releases`.\n+2. Unzip it.\n+3. Move the binary to a directory in your `PATH` (for example `/usr/local/bin/tgo`).\n+\n ## Keymap\n \n - `asdfqwertzxcvb`: switch directly to listed session\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;gh pr list --state open --limit 50 --json number,title,headRefName,baseRefName,isDraft,mergeable,url,author\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Lists open pull requests with mergeability\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e[{\u0026#34;author\u0026#34;:{\u0026#34;is_bot\u0026#34;:true,\u0026#34;login\u0026#34;:\u0026#34;app/dependabot\u0026#34;},\u0026#34;baseRefName\u0026#34;:\u0026#34;main\u0026#34;,\u0026#34;headRefName\u0026#34;:\u0026#34;dependabot/github_actions/golangci/golangci-lint-action-9\u0026#34;,\u0026#34;isDraft\u0026#34;:false,\u0026#34;mergeable\u0026#34;:\u0026#34;UNKNOWN\u0026#34;,\u0026#34;number\u0026#34;:5,\u0026#34;title\u0026#34;:\u0026#34;Bump golangci/golangci-lint-action from 4 to 9\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/pull/5\u0026#34;},{\u0026#34;author\u0026#34;:{\u0026#34;is_bot\u0026#34;:true,\u0026#34;login\u0026#34;:\u0026#34;app/dependabot\u0026#34;},\u0026#34;baseRefName\u0026#34;:\u0026#34;main\u0026#34;,\u0026#34;headRefName\u0026#34;:\u0026#34;dependabot/github_actions/actions/checkout-6\u0026#34;,\u0026#34;isDraft\u0026#34;:false,\u0026#34;mergeable\u0026#34;:\u0026#34;UNKNOWN\u0026#34;,\u0026#34;number\u0026#34;:4,\u0026#34;title\u0026#34;:\u0026#34;Bump actions/checkout from 4 to 6\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/pull/4\u0026#34;},{\u0026#34;author\u0026#34;:{\u0026#34;is_bot\u0026#34;:true,\u0026#34;login\u0026#34;:\u0026#34;app/dependabot\u0026#34;},\u0026#34;baseRefName\u0026#34;:\u0026#34;main\u0026#34;,\u0026#34;headRefName\u0026#34;:\u0026#34;dependabot/github_actions/softprops/action-gh-release-2\u0026#34;,\u0026#34;isDraft\u0026#34;:false,\u0026#34;mergeable\u0026#34;:\u0026#34;UNKNOWN\u0026#34;,\u0026#34;number\u0026#34;:3,\u0026#34;title\u0026#34;:\u0026#34;Bump softprops/action-gh-release from 1 to 2\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/pull/3\u0026#34;},{\u0026#34;author\u0026#34;:{\u0026#34;is_bot\u0026#34;:true,\u0026#34;login\u0026#34;:\u0026#34;app/dependabot\u0026#34;},\u0026#34;baseRefName\u0026#34;:\u0026#34;main\u0026#34;,\u0026#34;headRefName\u0026#34;:\u0026#34;dependabot/github_actions/actions/cache-5\u0026#34;,\u0026#34;isDraft\u0026#34;:false,\u0026#34;mergeable\u0026#34;:\u0026#34;UNKNOWN\u0026#34;,\u0026#34;number\u0026#34;:2,\u0026#34;title\u0026#34;:\u0026#34;Bump actions/cache from 3 to 5\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/pull/2\u0026#34;},{\u0026#34;author\u0026#34;:{\u0026#34;is_bot\u0026#34;:true,\u0026#34;login\u0026#34;:\u0026#34;app/dependabot\u0026#34;},\u0026#34;baseRefName\u0026#34;:\u0026#34;main\u0026#34;,\u0026#34;headRefName\u0026#34;:\u0026#34;dependabot/github_actions/actions/setup-go-6\u0026#34;,\u0026#34;isDraft\u0026#34;:false,\u0026#34;mergeable\u0026#34;:\u0026#34;UNKNOWN\u0026#34;,\u0026#34;number\u0026#34;:1,\u0026#34;title\u0026#34;:\u0026#34;Bump actions/setup-go from 5 to 6\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/pull/1\u0026#34;}]\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;gh run list --limit 20 --json databaseId,workflowName,displayTitle,status,conclusion,event,headBranch,url\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Lists recent GitHub Actions workflow runs\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e[{\u0026#34;conclusion\u0026#34;:\u0026#34;failure\u0026#34;,\u0026#34;databaseId\u0026#34;:22699585815,\u0026#34;displayTitle\u0026#34;:\u0026#34;v0.1.0\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;release\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;v0.1.0\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;completed\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699585815\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;Release\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;failure\u0026#34;,\u0026#34;databaseId\u0026#34;:22699582094,\u0026#34;displayTitle\u0026#34;:\u0026#34;release: cut v0.1.0\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;push\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;main\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;completed\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699582094\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;CI\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;failure\u0026#34;,\u0026#34;databaseId\u0026#34;:22699581066,\u0026#34;displayTitle\u0026#34;:\u0026#34;Bump golangci/golangci-lint-action from 4 to 9\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;pull_request\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;dependabot/github_actions/golangci/golangci-lint-action-9\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;completed\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699581066\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;CI\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;failure\u0026#34;,\u0026#34;databaseId\u0026#34;:22699579673,\u0026#34;displayTitle\u0026#34;:\u0026#34;Bump actions/checkout from 4 to 6\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;pull_request\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;dependabot/github_actions/actions/checkout-6\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;completed\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699579673\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;CI\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;failure\u0026#34;,\u0026#34;databaseId\u0026#34;:22699578446,\u0026#34;displayTitle\u0026#34;:\u0026#34;Bump softprops/action-gh-release from 1 to 2\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;pull_request\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;dependabot/github_actions/softprops/action-gh-release-2\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;completed\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699578446\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;CI\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;failure\u0026#34;,\u0026#34;databaseId\u0026#34;:22699577147,\u0026#34;displayTitle\u0026#34;:\u0026#34;Bump actions/cache from 3 to 5\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;pull_request\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;dependabot/github_actions/actions/cache-5\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;completed\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699577147\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;CI\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;failure\u0026#34;,\u0026#34;databaseId\u0026#34;:22699576373,\u0026#34;displayTitle\u0026#34;:\u0026#34;Bump actions/setup-go from 5 to 6\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;pull_request\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;dependabot/github_actions/actions/setup-go-6\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;completed\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699576373\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;CI\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;success\u0026#34;,\u0026#34;databaseId\u0026#34;:22699563990,\u0026#34;displayTitle\u0026#34;:\u0026#34;go_modules in /. - Update #1268814535\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;dynamic\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;main\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;completed\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699563990\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;Dependabot Updates\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;success\u0026#34;,\u0026#34;databaseId\u0026#34;:22699563842,\u0026#34;displayTitle\u0026#34;:\u0026#34;github_actions in /. - Update #1268814536\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;dynamic\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;main\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;completed\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699563842\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;Dependabot Updates\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;failure\u0026#34;,\u0026#34;databaseId\u0026#34;:22699562904,\u0026#34;displayTitle\u0026#34;:\u0026#34;init\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;push\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;main\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;completed\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699562904\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;CI\u0026#34;}]\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--66s\"\u003eAssistant (Build · gpt-5.3-codex · 6.6s) \u003ca href=\"#assistant-build--gpt-53-codex--66s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInspecting failed workflow logs\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;gh run view 22699582094 --log-failed\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Shows failed logs for main CI run\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003echecks\tRun golangci-lint\t﻿2026-03-05T02:35:13.6477293Z ##[group]Run golangci/golangci-lint-action@v4\nchecks\tRun golangci-lint\t2026-03-05T02:35:13.6477595Z with:\nchecks\tRun golangci-lint\t2026-03-05T02:35:13.6477763Z   version: v1.64.0\nchecks\tRun golangci-lint\t2026-03-05T02:35:13.6477938Z   args: run ./...\nchecks\tRun golangci-lint\t2026-03-05T02:35:13.6478255Z   github-token: ***\nchecks\tRun golangci-lint\t2026-03-05T02:35:13.6478888Z   only-new-issues: false\nchecks\tRun golangci-lint\t2026-03-05T02:35:13.6479109Z   skip-cache: false\nchecks\tRun golangci-lint\t2026-03-05T02:35:13.6479299Z   skip-pkg-cache: false\nchecks\tRun golangci-lint\t2026-03-05T02:35:13.6479505Z   skip-build-cache: false\nchecks\tRun golangci-lint\t2026-03-05T02:35:13.6479713Z   install-mode: binary\nchecks\tRun golangci-lint\t2026-03-05T02:35:13.6479899Z ##[endgroup]\nchecks\tRun golangci-lint\t2026-03-05T02:35:13.8055884Z ##[group]prepare environment\nchecks\tRun golangci-lint\t2026-03-05T02:35:13.8060321Z Checking for go.mod: go.mod\nchecks\tRun golangci-lint\t2026-03-05T02:35:13.9100921Z ##[warning]Failed to restore: Cache service responded with 400\nchecks\tRun golangci-lint\t2026-03-05T02:35:13.9111419Z Cache not found for input keys: golangci-lint.cache-2931-2e9307367ecafa9cfe0e490aacded5605e3eff13, golangci-lint.cache-2931-\nchecks\tRun golangci-lint\t2026-03-05T02:35:13.9112578Z Finding needed golangci-lint version...\nchecks\tRun golangci-lint\t2026-03-05T02:35:13.9113062Z Installation mode: binary\nchecks\tRun golangci-lint\t2026-03-05T02:35:13.9113568Z Installing golangci-lint binary v1.64.0...\nchecks\tRun golangci-lint\t2026-03-05T02:35:13.9114998Z Downloading binary https://github.com/golangci/golangci-lint/releases/download/v1.64.0/golangci-lint-1.64.0-linux-amd64.tar.gz ...\nchecks\tRun golangci-lint\t2026-03-05T02:35:14.1330367Z ##[endgroup]\nchecks\tRun golangci-lint\t2026-03-05T02:35:14.1386981Z ##[error]Failed to run: Error: Unexpected HTTP response: 404, Error: Unexpected HTTP response: 404\nchecks\tRun golangci-lint\t    at /home/runner/work/_actions/golangci/golangci-lint-action/v4/dist/run/index.js:7078:25\nchecks\tRun golangci-lint\t    at Generator.next (\u0026lt;anonymous\u0026gt;)\nchecks\tRun golangci-lint\t    at fulfilled (/home/runner/work/_actions/golangci/golangci-lint-action/v4/dist/run/index.js:6988:58)\nchecks\tRun golangci-lint\t    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\nchecks\tRun golangci-lint\t2026-03-05T02:35:14.1391395Z ##[error]Unexpected HTTP response: 404\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;gh run view 22699585815 --log-failed\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Shows failed logs for release run\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ebuild\tPublish release assets\t﻿2026-03-05T02:35:55.1423406Z ##[group]Run softprops/action-gh-release@v1\nbuild\tPublish release assets\t2026-03-05T02:35:55.1423689Z with:\nbuild\tPublish release assets\t2026-03-05T02:35:55.1423899Z   files: artifacts/*.zip\nbuild\tPublish release assets\tartifacts/checksums.txt\nbuild\tPublish release assets\t\nbuild\tPublish release assets\t2026-03-05T02:35:55.1424317Z   token: ***\nbuild\tPublish release assets\t2026-03-05T02:35:55.1424474Z env:\nbuild\tPublish release assets\t2026-03-05T02:35:55.1424717Z   GITHUB_TOKEN: ***\nbuild\tPublish release assets\t2026-03-05T02:35:55.1424893Z ##[endgroup]\nbuild\tPublish release assets\t2026-03-05T02:35:55.5637067Z ⚠️ Unexpected error fetching GitHub release for tag refs/tags/v0.1.0: HttpError: Resource not accessible by integration\nbuild\tPublish release assets\t2026-03-05T02:35:55.5660126Z ##[error]Resource not accessible by integration\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--152s\"\u003eAssistant (Build · gpt-5.3-codex · 15.2s) \u003ca href=\"#assistant-build--gpt-53-codex--152s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eUpdating CI workflows and actions\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;gh pr diff 1\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Shows diff for PR 1\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ediff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml\nindex 3c6e17a..6ebdf4c 100644\n--- a/.github/workflows/ci.yml\n+++ b/.github/workflows/ci.yml\n@@ -12,7 +12,7 @@ jobs:\n     steps:\n       - uses: actions/checkout@v4\n       - name: Set up Go\n-        uses: actions/setup-go@v5\n+        uses: actions/setup-go@v6\n         with:\n           go-version: 1.24\n       - name: Cache Go modules\ndiff --git a/.github/workflows/release.yml b/.github/workflows/release.yml\nindex b928326..2accb13 100644\n--- a/.github/workflows/release.yml\n+++ b/.github/workflows/release.yml\n@@ -10,7 +10,7 @@ jobs:\n     steps:\n       - uses: actions/checkout@v4\n       - name: Set up Go\n-        uses: actions/setup-go@v5\n+        uses: actions/setup-go@v6\n         with:\n           go-version: 1.24\n       - name: Build cross-platform binaries\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;gh pr diff 2\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Shows diff for PR 2\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ediff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml\nindex 3c6e17a..52957a1 100644\n--- a/.github/workflows/ci.yml\n+++ b/.github/workflows/ci.yml\n@@ -16,7 +16,7 @@ jobs:\n         with:\n           go-version: 1.24\n       - name: Cache Go modules\n-        uses: actions/cache@v3\n+        uses: actions/cache@v5\n         with:\n           path: |\n             ~/.cache/go-build\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;gh pr diff 3\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Shows diff for PR 3\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ediff --git a/.github/workflows/release.yml b/.github/workflows/release.yml\nindex b928326..3d50947 100644\n--- a/.github/workflows/release.yml\n+++ b/.github/workflows/release.yml\n@@ -41,7 +41,7 @@ jobs:\n           done\n           sha256sum \u0026#34;$artifacts\u0026#34;/*.zip \u0026gt; \u0026#34;$artifacts/checksums.txt\u0026#34;\n       - name: Publish release assets\n-        uses: softprops/action-gh-release@v1\n+        uses: softprops/action-gh-release@v2\n         with:\n           files: |\n             artifacts/*.zip\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;gh pr diff 4\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Shows diff for PR 4\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ediff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml\nindex 3c6e17a..12ada8d 100644\n--- a/.github/workflows/ci.yml\n+++ b/.github/workflows/ci.yml\n@@ -10,7 +10,7 @@ jobs:\n   checks:\n     runs-on: ubuntu-latest\n     steps:\n-      - uses: actions/checkout@v4\n+      - uses: actions/checkout@v6\n       - name: Set up Go\n         uses: actions/setup-go@v5\n         with:\ndiff --git a/.github/workflows/release.yml b/.github/workflows/release.yml\nindex b928326..5ba15b5 100644\n--- a/.github/workflows/release.yml\n+++ b/.github/workflows/release.yml\n@@ -8,7 +8,7 @@ jobs:\n   build:\n     runs-on: ubuntu-latest\n     steps:\n-      - uses: actions/checkout@v4\n+      - uses: actions/checkout@v6\n       - name: Set up Go\n         uses: actions/setup-go@v5\n         with:\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;gh pr diff 5\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Shows diff for PR 5\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ediff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml\nindex 3c6e17a..96c24af 100644\n--- a/.github/workflows/ci.yml\n+++ b/.github/workflows/ci.yml\n@@ -25,7 +25,7 @@ jobs:\n       - name: Format code\n         run: go fmt ./...\n       - name: Run golangci-lint\n-        uses: golangci/golangci-lint-action@v4\n+        uses: golangci/golangci-lint-action@v9\n         with:\n           version: v1.64.0\n           args: run ./...\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--55s-1\"\u003eAssistant (Build · gpt-5.3-codex · 5.5s) \u003ca href=\"#assistant-build--gpt-53-codex--55s-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eUpgrading GitHub actions versions and permissions\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: read\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;filePath\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo/.github/workflows/ci.yml\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026lt;path\u0026gt;/home/waylon/git/tgo/.github/workflows/ci.yml\u0026lt;/path\u0026gt;\n\u0026lt;type\u0026gt;file\u0026lt;/type\u0026gt;\n\u0026lt;content\u0026gt;1: name: CI\n2: \n3: on:\n4:   push:\n5:     branches: [main]\n6:   pull_request:\n7:     branches: [main]\n8: \n9: jobs:\n10:   checks:\n11:     runs-on: ubuntu-latest\n12:     steps:\n13:       - uses: actions/checkout@v4\n14:       - name: Set up Go\n15:         uses: actions/setup-go@v5\n16:         with:\n17:           go-version: 1.24\n18:       - name: Cache Go modules\n19:         uses: actions/cache@v3\n20:         with:\n21:           path: |\n22:             ~/.cache/go-build\n23:             ~/go/pkg/mod\n24:           key: ${{ runner.os }}-go-${{ hashFiles(\u0026#39;**/go.sum\u0026#39;) }}\n25:       - name: Format code\n26:         run: go fmt ./...\n27:       - name: Run golangci-lint\n28:         uses: golangci/golangci-lint-action@v4\n29:         with:\n30:           version: v1.64.0\n31:           args: run ./...\n32:       - name: Vet packages\n33:         run: go vet ./...\n34:       - name: Run tests\n35:         run: go test ./...\n\n(End of file - total 35 lines)\n\u0026lt;/content\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eTool: read\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;filePath\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo/.github/workflows/release.yml\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026lt;path\u0026gt;/home/waylon/git/tgo/.github/workflows/release.yml\u0026lt;/path\u0026gt;\n\u0026lt;type\u0026gt;file\u0026lt;/type\u0026gt;\n\u0026lt;content\u0026gt;1: name: Release\n2: \n3: on:\n4:   release:\n5:     types: [published]\n6: \n7: jobs:\n8:   build:\n9:     runs-on: ubuntu-latest\n10:     steps:\n11:       - uses: actions/checkout@v4\n12:       - name: Set up Go\n13:         uses: actions/setup-go@v5\n14:         with:\n15:           go-version: 1.24\n16:       - name: Build cross-platform binaries\n17:         run: |\n18:           set -euo pipefail\n19:           artifacts=artifacts\n20:           mkdir -p \u0026#34;$artifacts\u0026#34;\n21:           combos=(\n22:             linux:amd64\n23:             linux:arm64\n24:             darwin:amd64\n25:             darwin:arm64\n26:             windows:amd64\n27:             windows:arm64\n28:           )\n29:           for combo in \u0026#34;${combos[@]}\u0026#34;; do\n30:             os=${combo%%:*}\n31:             arch=${combo##*:}\n32:             bin_name=\u0026#34;tgo-${os}-${arch}\u0026#34;\n33:             bin_path=\u0026#34;$artifacts/${bin_name}\u0026#34;\n34:             if [[ \u0026#34;$os\u0026#34; == \u0026#34;windows\u0026#34; ]]; then\n35:               bin_path+=\u0026#34;.exe\u0026#34;\n36:             fi\n37:             GOOS=\u0026#34;$os\u0026#34; GOARCH=\u0026#34;$arch\u0026#34; go build -ldflags \u0026#34;-s -w\u0026#34; -o \u0026#34;$bin_path\u0026#34; ./cmd/tgo\n38:             archive=\u0026#34;$artifacts/${bin_name}.zip\u0026#34;\n39:             zip -j \u0026#34;$archive\u0026#34; \u0026#34;$bin_path\u0026#34;\n40:             rm \u0026#34;$bin_path\u0026#34;\n41:           done\n42:           sha256sum \u0026#34;$artifacts\u0026#34;/*.zip \u0026gt; \u0026#34;$artifacts/checksums.txt\u0026#34;\n43:       - name: Publish release assets\n44:         uses: softprops/action-gh-release@v1\n45:         with:\n46:           files: |\n47:             artifacts/*.zip\n48:             artifacts/checksums.txt\n49:         env:\n50:           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n\n(End of file - total 50 lines)\n\u0026lt;/content\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--104s\"\u003eAssistant (Build · gpt-5.3-codex · 10.4s) \u003ca href=\"#assistant-build--gpt-53-codex--104s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePlanning Go version and patch updates\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: apply_patch\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;patchText\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;*** Begin Patch\\n*** Update File: /home/waylon/git/tgo/.github/workflows/ci.yml\\n@@\\n     runs-on: ubuntu-latest\\n     steps:\\n-      - uses: actions/checkout@v4\\n+      - uses: actions/checkout@v6\\n       - name: Set up Go\\n-        uses: actions/setup-go@v5\\n+        uses: actions/setup-go@v6\\n         with:\\n           go-version: 1.24\\n       - name: Cache Go modules\\n-        uses: actions/cache@v3\\n+        uses: actions/cache@v5\\n@@\\n       - name: Run golangci-lint\\n-        uses: golangci/golangci-lint-action@v4\\n+        uses: golangci/golangci-lint-action@v9\\n         with:\\n-          version: v1.64.0\\n+          version: latest\\n           args: run ./...\\n*** End Patch\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eSuccess. Updated the following files:\nM home/waylon/git/tgo/.github/workflows/ci.yml\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eTool: apply_patch\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;patchText\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;*** Begin Patch\\n*** Update File: /home/waylon/git/tgo/.github/workflows/release.yml\\n@@\\n on:\\n   release:\\n     types: [published]\\n+\\n+permissions:\\n+  contents: write\\n@@\\n   build:\\n     runs-on: ubuntu-latest\\n     steps:\\n-      - uses: actions/checkout@v4\\n+      - uses: actions/checkout@v6\\n       - name: Set up Go\\n-        uses: actions/setup-go@v5\\n+        uses: actions/setup-go@v6\\n         with:\\n           go-version: 1.24\\n@@\\n       - name: Publish release assets\\n-        uses: softprops/action-gh-release@v1\\n+        uses: softprops/action-gh-release@v2\\n         with:\\n           files: |\\n             artifacts/*.zip\\n             artifacts/checksums.txt\\n-        env:\\n-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\\n*** End Patch\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eSuccess. Updated the following files:\nM home/waylon/git/tgo/.github/workflows/release.yml\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--58s-2\"\u003eAssistant (Build · gpt-5.3-codex · 5.8s) \u003ca href=\"#assistant-build--gpt-53-codex--58s-2\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eCommitting changes and running tests\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;go test ./...\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Runs Go tests before committing changes\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eok  \ttgo/cmd/tgo\t(cached)\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;git status --short\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Shows files changed before commit\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e M .github/workflows/ci.yml\n M .github/workflows/release.yml\n M README.md\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--31s\"\u003eAssistant (Build · gpt-5.3-codex · 3.1s) \u003ca href=\"#assistant-build--gpt-53-codex--31s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eCommitting initial changes\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;git add README.md .github/workflows/ci.yml .github/workflows/release.yml \u0026amp;\u0026amp; git commit -m \\\u0026#34;chore: update install docs and stabilize actions\\\u0026#34; \u0026amp;\u0026amp; git push origin main\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Commits changes and pushes main branch\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e[main db51a9e] chore: update install docs and stabilize actions\n 3 files changed, 44 insertions(+), 10 deletions(-)\nTo https://github.com/WaylonWalker/tgo.git\n   d210c44..db51a9e  main -\u0026gt; main\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--83s\"\u003eAssistant (Build · gpt-5.3-codex · 8.3s) \u003ca href=\"#assistant-build--gpt-53-codex--83s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePlanning tag and release move\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;git tag -f v0.1.0 db51a9e \u0026amp;\u0026amp; git push --force origin v0.1.0\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Moves v0.1.0 tag to latest commit\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eUpdated tag \u0026#39;v0.1.0\u0026#39; (was 69667e6)\nTo https://github.com/WaylonWalker/tgo.git\n + 69667e6...db51a9e v0.1.0 -\u0026gt; v0.1.0 (forced update)\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--49s-1\"\u003eAssistant (Build · gpt-5.3-codex · 4.9s) \u003ca href=\"#assistant-build--gpt-53-codex--49s-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eNoticing non-commit object in history\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;gh release edit v0.1.0 --target db51a9e --notes \u0026#39;## Highlights\\n- Initial release of tgo: fast tmux session switcher optimized for popup use.\\n- Interactive TUI with direct letter switching (`asdfqwertzxcvb`), favorites pinning, and reorder mode.\\n- Session management actions from UI: create, kill, refresh, and persistent ordering state.\\n- Added installation docs for mise, jpillora installer, go install, and GitHub release assets.\\n- Updated GitHub Actions versions and release permissions to fix CI/release pipeline failures.\u0026#39;\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Moves release target and refreshes release notes\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eHTTP 422: Validation Failed (https://api.github.com/repos/WaylonWalker/tgo/releases/293241996)\nRelease.target_commitish is invalid\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--60s\"\u003eAssistant (Build · gpt-5.3-codex · 6.0s) \u003ca href=\"#assistant-build--gpt-53-codex--60s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eAdjusting target parameter usage\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;gh release edit v0.1.0 --target main --notes \u0026#39;## Highlights\\n- Initial release of tgo: fast tmux session switcher optimized for popup use.\\n- Interactive TUI with direct letter switching (`asdfqwertzxcvb`), favorites pinning, and reorder mode.\\n- Session management actions from UI: create, kill, refresh, and persistent ordering state.\\n- Added installation docs for mise, jpillora installer, go install, and GitHub release assets.\\n- Updated GitHub Actions versions and release permissions to fix CI/release pipeline failures.\u0026#39;\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Retargets v0.1.0 release to main branch\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ehttps://github.com/WaylonWalker/tgo/releases/tag/v0.1.0\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--116s\"\u003eAssistant (Build · gpt-5.3-codex · 11.6s) \u003ca href=\"#assistant-build--gpt-53-codex--116s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eAdding manual workflow trigger and reviewing PRs\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;gh run list --limit 10 --json databaseId,workflowName,displayTitle,status,conclusion,event,headBranch,url\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Checks latest workflow runs after workflow updates\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e[{\u0026#34;conclusion\u0026#34;:\u0026#34;\u0026#34;,\u0026#34;databaseId\u0026#34;:22699699908,\u0026#34;displayTitle\u0026#34;:\u0026#34;github_actions in / for actions/checkout - Update #1268818413\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;dynamic\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;main\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;in_progress\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699699908\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;Dependabot Updates\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;\u0026#34;,\u0026#34;databaseId\u0026#34;:22699699789,\u0026#34;displayTitle\u0026#34;:\u0026#34;github_actions in / for golangci/golangci-lint-action - Update #1268818411\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;dynamic\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;main\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;in_progress\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699699789\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;Dependabot Updates\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;\u0026#34;,\u0026#34;databaseId\u0026#34;:22699699295,\u0026#34;displayTitle\u0026#34;:\u0026#34;github_actions in / for softprops/action-gh-release - Update #1268818408\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;dynamic\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;main\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;in_progress\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699699295\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;Dependabot Updates\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;\u0026#34;,\u0026#34;databaseId\u0026#34;:22699699236,\u0026#34;displayTitle\u0026#34;:\u0026#34;github_actions in / for actions/cache - Update #1268818405\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;dynamic\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;main\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;in_progress\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699699236\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;Dependabot Updates\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;\u0026#34;,\u0026#34;databaseId\u0026#34;:22699698905,\u0026#34;displayTitle\u0026#34;:\u0026#34;github_actions in / for actions/setup-go - Update #1268818404\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;dynamic\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;main\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;queued\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699698905\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;Dependabot Updates\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;\u0026#34;,\u0026#34;databaseId\u0026#34;:22699690701,\u0026#34;displayTitle\u0026#34;:\u0026#34;chore: update install docs and stabilize actions\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;push\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;main\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;in_progress\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699690701\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;CI\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;failure\u0026#34;,\u0026#34;databaseId\u0026#34;:22699585815,\u0026#34;displayTitle\u0026#34;:\u0026#34;v0.1.0\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;release\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;v0.1.0\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;completed\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699585815\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;Release\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;failure\u0026#34;,\u0026#34;databaseId\u0026#34;:22699582094,\u0026#34;displayTitle\u0026#34;:\u0026#34;release: cut v0.1.0\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;push\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;main\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;completed\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699582094\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;CI\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;failure\u0026#34;,\u0026#34;databaseId\u0026#34;:22699581066,\u0026#34;displayTitle\u0026#34;:\u0026#34;Bump golangci/golangci-lint-action from 4 to 9\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;pull_request\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;dependabot/github_actions/golangci/golangci-lint-action-9\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;completed\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699581066\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;CI\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;failure\u0026#34;,\u0026#34;databaseId\u0026#34;:22699579673,\u0026#34;displayTitle\u0026#34;:\u0026#34;Bump actions/checkout from 4 to 6\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;pull_request\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;dependabot/github_actions/actions/checkout-6\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;completed\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699579673\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;CI\u0026#34;}]\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--26s-1\"\u003eAssistant (Build · gpt-5.3-codex · 2.6s) \u003ca href=\"#assistant-build--gpt-53-codex--26s-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eWaiting for CI results\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;gh run watch 22699690701 --exit-status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Watches latest CI run until completion\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eRun CI (22699690701) has already completed with \u0026#39;failure\u0026#39;\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--84s-1\"\u003eAssistant (Build · gpt-5.3-codex · 8.4s) \u003ca href=\"#assistant-build--gpt-53-codex--84s-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eReviewing failure logs\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;gh run view 22699690701 --log-failed\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Displays failed logs for latest CI run\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003echecks\tRun golangci-lint\t﻿2026-03-05T02:39:53.4100336Z ##[group]Run golangci/golangci-lint-action@v9\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.4100685Z with:\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.4100865Z   version: latest\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.4101062Z   args: run ./...\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.4101253Z   install-mode: binary\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.4101462Z   install-only: false\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.4101856Z   github-token: ***\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.4102056Z   verify: true\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.4102253Z   only-new-issues: false\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.4102484Z   skip-cache: false\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.4102677Z   skip-save-cache: false\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.4102894Z   cache-invalidation-interval: 7\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.4103142Z   problem-matchers: false\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.4103358Z env:\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.4103537Z   GOTOOLCHAIN: local\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.4103723Z ##[endgroup]\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.5573089Z ##[group]Restore cache\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.5577067Z Checking for go.mod: go.mod\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.5582547Z (node:2480) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.5583547Z (Use `node --trace-deprecation ...` to show where the warning was created)\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.6275095Z Cache not found for input keys: golangci-lint.cache-Linux-2931-2e9307367ecafa9cfe0e490aacded5605e3eff13, golangci-lint.cache-Linux-2931-\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.6276699Z ##[endgroup]\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.6277821Z ##[group]Install\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.6278396Z Finding needed golangci-lint version...\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.6662031Z Requested golangci-lint \u0026#39;latest\u0026#39;, using \u0026#39;v2.10.1\u0026#39;, calculation took 38ms\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.6662945Z Installation mode: binary\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.6663462Z Installing golangci-lint binary v2.10.1...\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.6664712Z Downloading binary https://github.com/golangci/golangci-lint/releases/download/v2.10.1/golangci-lint-2.10.1-linux-amd64.tar.gz ...\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.8524715Z [command]/usr/bin/tar xz --overwrite --warning=no-unknown-keyword --overwrite -C /home/runner -f /home/runner/work/_temp/986f8f88-51b3-446e-8f7b-ff5685a00315\nchecks\tRun golangci-lint\t2026-03-05T02:39:54.1104111Z Installed golangci-lint into /home/runner/golangci-lint-2.10.1-linux-amd64/golangci-lint in 444ms\nchecks\tRun golangci-lint\t2026-03-05T02:39:54.1108152Z ##[endgroup]\nchecks\tRun golangci-lint\t2026-03-05T02:39:54.1111841Z ##[group]run golangci-lint\nchecks\tRun golangci-lint\t2026-03-05T02:39:54.1117179Z Running [/home/runner/golangci-lint-2.10.1-linux-amd64/golangci-lint config path] in [/home/runner/work/tgo/tgo] ...\nchecks\tRun golangci-lint\t2026-03-05T02:39:54.1910735Z Running [/home/runner/golangci-lint-2.10.1-linux-amd64/golangci-lint run  run ./...] in [/home/runner/work/tgo/tgo] ...\nchecks\tRun golangci-lint\t2026-03-05T02:40:04.6184982Z 0 issues.\nchecks\tRun golangci-lint\t2026-03-05T02:40:04.6185253Z \nchecks\tRun golangci-lint\t2026-03-05T02:40:04.6185889Z level=error msg=\u0026#34;[linters_context] typechecking error: stat /home/runner/work/tgo/tgo/run: directory not found\u0026#34;\nchecks\tRun golangci-lint\t2026-03-05T02:40:04.6186597Z \nchecks\tRun golangci-lint\t2026-03-05T02:40:04.6204030Z ##[error]golangci-lint exit with code 7\nchecks\tRun golangci-lint\t2026-03-05T02:40:04.6212754Z Ran golangci-lint in 10428ms\nchecks\tRun golangci-lint\t2026-03-05T02:40:04.6213257Z ##[endgroup]\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--45s-1\"\u003eAssistant (Build · gpt-5.3-codex · 4.5s) \u003ca href=\"#assistant-build--gpt-53-codex--45s-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFixing duplicate run in CI args\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: apply_patch\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;patchText\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;*** Begin Patch\\n*** Update File: /home/waylon/git/tgo/.github/workflows/ci.yml\\n@@\\n       - name: Run golangci-lint\\n         uses: golangci/golangci-lint-action@v9\\n         with:\\n           version: latest\\n-          args: run ./...\\n+          args: ./...\\n*** End Patch\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eSuccess. Updated the following files:\nM home/waylon/git/tgo/.github/workflows/ci.yml\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--77s\"\u003eAssistant (Build · gpt-5.3-codex · 7.7s) \u003ca href=\"#assistant-build--gpt-53-codex--77s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eCommitting CI fix and reviewing PRs\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;git add .github/workflows/ci.yml \u0026amp;\u0026amp; git commit -m \\\u0026#34;fix: correct golangci-lint action args\\\u0026#34; \u0026amp;\u0026amp; git push origin main\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Commits CI lint argument fix and pushes\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e[main 29f8b3f] fix: correct golangci-lint action args\n 1 file changed, 1 insertion(+), 1 deletion(-)\nTo https://github.com/WaylonWalker/tgo.git\n   db51a9e..29f8b3f  main -\u0026gt; main\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--58s-3\"\u003eAssistant (Build · gpt-5.3-codex · 5.8s) \u003ca href=\"#assistant-build--gpt-53-codex--58s-3\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMoving tag to latest commit\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;git tag -f v0.1.0 29f8b3f \u0026amp;\u0026amp; git push --force origin v0.1.0\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Moves v0.1.0 tag to latest CI-fix commit\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eUpdated tag \u0026#39;v0.1.0\u0026#39; (was db51a9e)\nTo https://github.com/WaylonWalker/tgo.git\n + db51a9e...29f8b3f v0.1.0 -\u0026gt; v0.1.0 (forced update)\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--76s\"\u003eAssistant (Build · gpt-5.3-codex · 7.6s) \u003ca href=\"#assistant-build--gpt-53-codex--76s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eRecreating release to fix workflow\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;gh release delete v0.1.0 --yes \u0026amp;\u0026amp; gh release create v0.1.0 --title \\\u0026#34;v0.1.0\\\u0026#34; --notes \u0026#39;## Highlights\\n- Initial release of tgo: fast tmux session switcher optimized for popup use.\\n- Interactive TUI with direct letter switching (`asdfqwertzxcvb`), favorites pinning, and reorder mode.\\n- Session management actions from UI: create, kill, refresh, and persistent ordering state.\\n- Added installation docs for mise, jpillora installer, go install, and GitHub release assets.\\n- Updated GitHub Actions versions and release permissions to stabilize CI and release pipelines.\u0026#39;\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Recreates v0.1.0 release to trigger release workflow\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ehttps://github.com/WaylonWalker/tgo/releases/tag/v0.1.0\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--127s\"\u003eAssistant (Build · gpt-5.3-codex · 12.7s) \u003ca href=\"#assistant-build--gpt-53-codex--127s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eClosing all superseded PRs\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;for pr in 1 2 3 4 5; do gh pr comment \\\u0026#34;$pr\\\u0026#34; --body \\\u0026#34;Thanks for the update. I applied these workflow action/version updates directly on main while fixing CI and release automation, so this PR is now superseded.\\\u0026#34;; gh pr close \\\u0026#34;$pr\\\u0026#34;; done\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Comments on and closes superseded Dependabot PRs\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ehttps://github.com/WaylonWalker/tgo/pull/1#issuecomment-4001721898\n! Pull request WaylonWalker/tgo#1 (Bump actions/setup-go from 5 to 6) is already closed\nhttps://github.com/WaylonWalker/tgo/pull/2#issuecomment-4001721948\n! Pull request WaylonWalker/tgo#2 (Bump actions/cache from 3 to 5) is already closed\nhttps://github.com/WaylonWalker/tgo/pull/3#issuecomment-4001722008\n! Pull request WaylonWalker/tgo#3 (Bump softprops/action-gh-release from 1 to 2) is already closed\nhttps://github.com/WaylonWalker/tgo/pull/4#issuecomment-4001722055\n! Pull request WaylonWalker/tgo#4 (Bump actions/checkout from 4 to 6) is already closed\nhttps://github.com/WaylonWalker/tgo/pull/5#issuecomment-4001722100\n! Pull request WaylonWalker/tgo#5 (Bump golangci/golangci-lint-action from 4 to 9) is already closed\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--137s\"\u003eAssistant (Build · gpt-5.3-codex · 13.7s) \u003ca href=\"#assistant-build--gpt-53-codex--137s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eVerifying PR and workflow status\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;gh pr list --state open --limit 20 --json number,title,url\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Checks for any remaining open pull requests\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e[]\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--46s\"\u003eAssistant (Build · gpt-5.3-codex · 4.6s) \u003ca href=\"#assistant-build--gpt-53-codex--46s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eChecking workflow statuses\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;gh run list --limit 20 --json databaseId,workflowName,displayTitle,status,conclusion,event,headBranch,url\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Lists recent workflow runs to verify fixes\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e[{\u0026#34;conclusion\u0026#34;:\u0026#34;\u0026#34;,\u0026#34;databaseId\u0026#34;:22699716792,\u0026#34;displayTitle\u0026#34;:\u0026#34;v0.1.0\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;release\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;v0.1.0\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;in_progress\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699716792\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;Release\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;failure\u0026#34;,\u0026#34;databaseId\u0026#34;:22699711833,\u0026#34;displayTitle\u0026#34;:\u0026#34;fix: correct golangci-lint action args\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;push\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;main\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;completed\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699711833\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;CI\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;success\u0026#34;,\u0026#34;databaseId\u0026#34;:22699699908,\u0026#34;displayTitle\u0026#34;:\u0026#34;github_actions in / for actions/checkout - Update #1268818413\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;dynamic\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;main\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;completed\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699699908\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;Dependabot Updates\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;success\u0026#34;,\u0026#34;databaseId\u0026#34;:22699699789,\u0026#34;displayTitle\u0026#34;:\u0026#34;github_actions in / for golangci/golangci-lint-action - Update #1268818411\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;dynamic\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;main\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;completed\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699699789\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;Dependabot Updates\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;success\u0026#34;,\u0026#34;databaseId\u0026#34;:22699699295,\u0026#34;displayTitle\u0026#34;:\u0026#34;github_actions in / for softprops/action-gh-release - Update #1268818408\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;dynamic\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;main\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;completed\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699699295\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;Dependabot Updates\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;success\u0026#34;,\u0026#34;databaseId\u0026#34;:22699699236,\u0026#34;displayTitle\u0026#34;:\u0026#34;github_actions in / for actions/cache - Update #1268818405\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;dynamic\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;main\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;completed\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699699236\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;Dependabot Updates\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;success\u0026#34;,\u0026#34;databaseId\u0026#34;:22699698905,\u0026#34;displayTitle\u0026#34;:\u0026#34;github_actions in / for actions/setup-go - Update #1268818404\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;dynamic\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;main\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;completed\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699698905\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;Dependabot Updates\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;failure\u0026#34;,\u0026#34;databaseId\u0026#34;:22699690701,\u0026#34;displayTitle\u0026#34;:\u0026#34;chore: update install docs and stabilize actions\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;push\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;main\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;completed\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699690701\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;CI\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;failure\u0026#34;,\u0026#34;databaseId\u0026#34;:22699585815,\u0026#34;displayTitle\u0026#34;:\u0026#34;Release\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;release\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;v0.1.0\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;completed\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699585815\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;Release\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;failure\u0026#34;,\u0026#34;databaseId\u0026#34;:22699582094,\u0026#34;displayTitle\u0026#34;:\u0026#34;release: cut v0.1.0\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;push\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;main\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;completed\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699582094\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;CI\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;failure\u0026#34;,\u0026#34;databaseId\u0026#34;:22699581066,\u0026#34;displayTitle\u0026#34;:\u0026#34;Bump golangci/golangci-lint-action from 4 to 9\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;pull_request\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;dependabot/github_actions/golangci/golangci-lint-action-9\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;completed\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699581066\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;CI\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;failure\u0026#34;,\u0026#34;databaseId\u0026#34;:22699579673,\u0026#34;displayTitle\u0026#34;:\u0026#34;Bump actions/checkout from 4 to 6\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;pull_request\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;dependabot/github_actions/actions/checkout-6\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;completed\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699579673\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;CI\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;failure\u0026#34;,\u0026#34;databaseId\u0026#34;:22699578446,\u0026#34;displayTitle\u0026#34;:\u0026#34;Bump softprops/action-gh-release from 1 to 2\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;pull_request\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;dependabot/github_actions/softprops/action-gh-release-2\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;completed\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699578446\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;CI\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;failure\u0026#34;,\u0026#34;databaseId\u0026#34;:22699577147,\u0026#34;displayTitle\u0026#34;:\u0026#34;Bump actions/cache from 3 to 5\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;pull_request\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;dependabot/github_actions/actions/cache-5\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;completed\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699577147\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;CI\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;failure\u0026#34;,\u0026#34;databaseId\u0026#34;:22699576373,\u0026#34;displayTitle\u0026#34;:\u0026#34;Bump actions/setup-go from 5 to 6\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;pull_request\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;dependabot/github_actions/actions/setup-go-6\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;completed\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699576373\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;CI\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;success\u0026#34;,\u0026#34;databaseId\u0026#34;:22699563990,\u0026#34;displayTitle\u0026#34;:\u0026#34;go_modules in /. - Update #1268814535\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;dynamic\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;main\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;completed\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699563990\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;Dependabot Updates\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;success\u0026#34;,\u0026#34;databaseId\u0026#34;:22699563842,\u0026#34;displayTitle\u0026#34;:\u0026#34;github_actions in /. - Update #1268814536\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;dynamic\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;main\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;completed\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699563842\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;Dependabot Updates\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;failure\u0026#34;,\u0026#34;databaseId\u0026#34;:22699562904,\u0026#34;displayTitle\u0026#34;:\u0026#34;init\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;push\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;main\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;completed\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699562904\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;CI\u0026#34;}]\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--42s-2\"\u003eAssistant (Build · gpt-5.3-codex · 4.2s) \u003ca href=\"#assistant-build--gpt-53-codex--42s-2\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eExamining CI failure cause\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;gh run view 22699711833 --log-failed\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Displays failed logs for latest CI run\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003echecks\tRun golangci-lint\t﻿2026-03-05T02:40:41.6888912Z ##[group]Run golangci/golangci-lint-action@v9\nchecks\tRun golangci-lint\t2026-03-05T02:40:41.6889217Z with:\nchecks\tRun golangci-lint\t2026-03-05T02:40:41.6889379Z   version: latest\nchecks\tRun golangci-lint\t2026-03-05T02:40:41.6889559Z   args: ./...\nchecks\tRun golangci-lint\t2026-03-05T02:40:41.6889724Z   install-mode: binary\nchecks\tRun golangci-lint\t2026-03-05T02:40:41.6889917Z   install-only: false\nchecks\tRun golangci-lint\t2026-03-05T02:40:41.6890233Z   github-token: ***\nchecks\tRun golangci-lint\t2026-03-05T02:40:41.6890412Z   verify: true\nchecks\tRun golangci-lint\t2026-03-05T02:40:41.6890596Z   only-new-issues: false\nchecks\tRun golangci-lint\t2026-03-05T02:40:41.6890794Z   skip-cache: false\nchecks\tRun golangci-lint\t2026-03-05T02:40:41.6891186Z   skip-save-cache: false\nchecks\tRun golangci-lint\t2026-03-05T02:40:41.6891555Z   cache-invalidation-interval: 7\nchecks\tRun golangci-lint\t2026-03-05T02:40:41.6891793Z   problem-matchers: false\nchecks\tRun golangci-lint\t2026-03-05T02:40:41.6891983Z env:\nchecks\tRun golangci-lint\t2026-03-05T02:40:41.6892145Z   GOTOOLCHAIN: local\nchecks\tRun golangci-lint\t2026-03-05T02:40:41.6892321Z ##[endgroup]\nchecks\tRun golangci-lint\t2026-03-05T02:40:41.8304996Z ##[group]Restore cache\nchecks\tRun golangci-lint\t2026-03-05T02:40:41.8309650Z Checking for go.mod: go.mod\nchecks\tRun golangci-lint\t2026-03-05T02:40:41.8315055Z (node:2406) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.\nchecks\tRun golangci-lint\t2026-03-05T02:40:41.8316012Z (Use `node --trace-deprecation ...` to show where the warning was created)\nchecks\tRun golangci-lint\t2026-03-05T02:40:42.0403836Z Cache hit for: golangci-lint.cache-Linux-2931-2e9307367ecafa9cfe0e490aacded5605e3eff13\nchecks\tRun golangci-lint\t2026-03-05T02:40:42.0515022Z (node:2406) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities.\nchecks\tRun golangci-lint\t2026-03-05T02:40:42.3105604Z Received 6048 of 6048 (100.0%), 0.1 MBs/sec\nchecks\tRun golangci-lint\t2026-03-05T02:40:42.3106256Z Cache Size: ~0 MB (6048 B)\nchecks\tRun golangci-lint\t2026-03-05T02:40:42.3135179Z [command]/usr/bin/tar -xf /home/runner/work/_temp/c31c6f51-5894-40dc-8dac-43cb4ab23586/cache.tzst -P -C /home/runner/work/tgo/tgo --use-compress-program unzstd\nchecks\tRun golangci-lint\t2026-03-05T02:40:42.3297774Z Cache restored successfully\nchecks\tRun golangci-lint\t2026-03-05T02:40:42.3301976Z Restored cache for golangci-lint from key \u0026#39;golangci-lint.cache-Linux-2931-2e9307367ecafa9cfe0e490aacded5605e3eff13\u0026#39; in 500ms\nchecks\tRun golangci-lint\t2026-03-05T02:40:42.3304437Z ##[endgroup]\nchecks\tRun golangci-lint\t2026-03-05T02:40:42.3305201Z ##[group]Install\nchecks\tRun golangci-lint\t2026-03-05T02:40:42.3305737Z Finding needed golangci-lint version...\nchecks\tRun golangci-lint\t2026-03-05T02:40:42.3974950Z Requested golangci-lint \u0026#39;latest\u0026#39;, using \u0026#39;v2.10.1\u0026#39;, calculation took 67ms\nchecks\tRun golangci-lint\t2026-03-05T02:40:42.3975656Z Installation mode: binary\nchecks\tRun golangci-lint\t2026-03-05T02:40:42.3976316Z Installing golangci-lint binary v2.10.1...\nchecks\tRun golangci-lint\t2026-03-05T02:40:42.3977846Z Downloading binary https://github.com/golangci/golangci-lint/releases/download/v2.10.1/golangci-lint-2.10.1-linux-amd64.tar.gz ...\nchecks\tRun golangci-lint\t2026-03-05T02:40:42.9162634Z [command]/usr/bin/tar xz --overwrite --warning=no-unknown-keyword --overwrite -C /home/runner -f /home/runner/work/_temp/d839b6af-db27-4290-bf77-de8cd42f9a6a\nchecks\tRun golangci-lint\t2026-03-05T02:40:43.1885742Z Installed golangci-lint into /home/runner/golangci-lint-2.10.1-linux-amd64/golangci-lint in 791ms\nchecks\tRun golangci-lint\t2026-03-05T02:40:43.1890096Z ##[endgroup]\nchecks\tRun golangci-lint\t2026-03-05T02:40:43.1893990Z ##[group]run golangci-lint\nchecks\tRun golangci-lint\t2026-03-05T02:40:43.1898089Z Running [/home/runner/golangci-lint-2.10.1-linux-amd64/golangci-lint config path] in [/home/runner/work/tgo/tgo] ...\nchecks\tRun golangci-lint\t2026-03-05T02:40:43.2678381Z Running [/home/runner/golangci-lint-2.10.1-linux-amd64/golangci-lint run  ./...] in [/home/runner/work/tgo/tgo] ...\nchecks\tRun golangci-lint\t2026-03-05T02:40:54.2347736Z ##[error]cmd/tgo/view.go:34:2: ineffectual assignment to line (ineffassign)\nchecks\tRun golangci-lint\t2026-03-05T02:40:54.2356091Z \tline = a.drawSection(screen, line, width, height, \u0026#34;Others\u0026#34;, a.others, a.cursorOther, a.section == 1)\nchecks\tRun golangci-lint\t2026-03-05T02:40:54.2356564Z \t^\nchecks\tRun golangci-lint\t2026-03-05T02:40:54.2357255Z ##[error]cmd/tgo/tmux.go:153:6: func runesToString is unused (unused)\nchecks\tRun golangci-lint\t2026-03-05T02:40:54.2358182Z func runesToString(m map[string]rune, ordered []session) string {\nchecks\tRun golangci-lint\t2026-03-05T02:40:54.2358605Z      ^\nchecks\tRun golangci-lint\t2026-03-05T02:40:54.2358786Z 2 issues:\nchecks\tRun golangci-lint\t2026-03-05T02:40:54.2358982Z * ineffassign: 1\nchecks\tRun golangci-lint\t2026-03-05T02:40:54.2359183Z * unused: 1\nchecks\tRun golangci-lint\t2026-03-05T02:40:54.2359290Z \nchecks\tRun golangci-lint\t2026-03-05T02:40:54.2368562Z ##[error]issues found\nchecks\tRun golangci-lint\t2026-03-05T02:40:54.2369548Z Ran golangci-lint in 10964ms\nchecks\tRun golangci-lint\t2026-03-05T02:40:54.2370094Z ##[endgroup]\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--98s\"\u003eAssistant (Build · gpt-5.3-codex · 9.8s) \u003ca href=\"#assistant-build--gpt-53-codex--98s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eRemoving unused code and assignments\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: apply_patch\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;patchText\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;*** Begin Patch\\n*** Update File: /home/waylon/git/tgo/cmd/tgo/view.go\\n@@\\n \\tline = a.drawSection(screen, line, width, height, \\\u0026#34;Favorites\\\u0026#34;, a.favorites, a.cursorFav, a.section == 0)\\n-\\tline = a.drawSection(screen, line, width, height, \\\u0026#34;Others\\\u0026#34;, a.others, a.cursorOther, a.section == 1)\\n+\\ta.drawSection(screen, line, width, height, \\\u0026#34;Others\\\u0026#34;, a.others, a.cursorOther, a.section == 1)\\n*** End Patch\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eSuccess. Updated the following files:\nM home/waylon/git/tgo/cmd/tgo/view.go\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eTool: apply_patch\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;patchText\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;*** Begin Patch\\n*** Update File: /home/waylon/git/tgo/cmd/tgo/tmux.go\\n@@\\n-import (\\n-\\t\\\u0026#34;bytes\\\u0026#34;\\n-\\t\\\u0026#34;fmt\\\u0026#34;\\n+import (\\n+\\t\\\u0026#34;fmt\\\u0026#34;\\n \\t\\\u0026#34;os/exec\\\u0026#34;\\n \\t\\\u0026#34;sort\\\u0026#34;\\n \\t\\\u0026#34;strings\\\u0026#34;\\n )\\n@@\\n-func runesToString(m map[string]rune, ordered []session) string {\\n-\\tbuf := bytes.Buffer{}\\n-\\tfor _, s := range ordered {\\n-\\t\\tr, ok := m[s.Name]\\n-\\t\\tif !ok {\\n-\\t\\t\\tcontinue\\n-\\t\\t}\\n-\\t\\tbuf.WriteRune(r)\\n-\\t}\\n-\\treturn buf.String()\\n-}\\n*** End Patch\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eSuccess. Updated the following files:\nM home/waylon/git/tgo/cmd/tgo/tmux.go\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--61s\"\u003eAssistant (Build · gpt-5.3-codex · 6.1s) \u003ca href=\"#assistant-build--gpt-53-codex--61s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePlanning Go test and vet runs\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;go test ./... \u0026amp;\u0026amp; go vet ./...\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Runs tests and vet after lint fixes\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eok  \ttgo/cmd/tgo\t0.003s\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--140s\"\u003eAssistant (Build · gpt-5.3-codex · 14.0s) \u003ca href=\"#assistant-build--gpt-53-codex--140s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePushing fixes to repo\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;git add cmd/tgo/view.go cmd/tgo/tmux.go \u0026amp;\u0026amp; git commit -m \\\u0026#34;fix: resolve lint errors in TUI code\\\u0026#34; \u0026amp;\u0026amp; git push origin main\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Commits lint fixes and pushes to main\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e[main 2af8f82] fix: resolve lint errors in TUI code\n 2 files changed, 1 insertion(+), 14 deletions(-)\nTo https://github.com/WaylonWalker/tgo.git\n   29f8b3f..2af8f82  main -\u0026gt; main\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--48s\"\u003eAssistant (Build · gpt-5.3-codex · 4.8s) \u003ca href=\"#assistant-build--gpt-53-codex--48s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMoving tag and recreating release\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;git tag -f v0.1.0 2af8f82 \u0026amp;\u0026amp; git push --force origin v0.1.0\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Moves v0.1.0 tag to latest lint-fix commit\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eUpdated tag \u0026#39;v0.1.0\u0026#39; (was 29f8b3f)\nTo https://github.com/WaylonWalker/tgo.git\n + 29f8b3f...2af8f82 v0.1.0 -\u0026gt; v0.1.0 (forced update)\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--55s-2\"\u003eAssistant (Build · gpt-5.3-codex · 5.5s) \u003ca href=\"#assistant-build--gpt-53-codex--55s-2\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePlanning release replacement strategy\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;gh release delete v0.1.0 --yes \u0026amp;\u0026amp; gh release create v0.1.0 --title \\\u0026#34;v0.1.0\\\u0026#34; --notes \u0026#39;## Highlights\\n- Initial release of tgo: fast tmux session switcher optimized for popup use.\\n- Interactive TUI with direct letter switching (`asdfqwertzxcvb`), favorites pinning, and reorder mode.\\n- Session management actions from UI: create, kill, refresh, and persistent ordering state.\\n- Added installation docs for mise, jpillora installer, go install, and GitHub release assets.\\n- Updated and fixed GitHub Actions CI/release workflow definitions.\u0026#39;\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Recreates release after moving tag to latest commit\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ehttps://github.com/WaylonWalker/tgo/releases/tag/v0.1.0\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--32s\"\u003eAssistant (Build · gpt-5.3-codex · 3.2s) \u003ca href=\"#assistant-build--gpt-53-codex--32s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMonitoring latest CI runs\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;gh run list --limit 10 --json databaseId,workflowName,displayTitle,status,conclusion,event,headBranch,url\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Checks latest CI and release run statuses\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e[{\u0026#34;conclusion\u0026#34;:\u0026#34;\u0026#34;,\u0026#34;databaseId\u0026#34;:22699744966,\u0026#34;displayTitle\u0026#34;:\u0026#34;v0.1.0\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;release\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;v0.1.0\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;queued\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699744966\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;Release\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;\u0026#34;,\u0026#34;databaseId\u0026#34;:22699741216,\u0026#34;displayTitle\u0026#34;:\u0026#34;fix: resolve lint errors in TUI code\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;push\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;main\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;in_progress\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699741216\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;CI\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;success\u0026#34;,\u0026#34;databaseId\u0026#34;:22699716792,\u0026#34;displayTitle\u0026#34;:\u0026#34;Release\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;release\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;v0.1.0\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;completed\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699716792\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;Release\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;failure\u0026#34;,\u0026#34;databaseId\u0026#34;:22699711833,\u0026#34;displayTitle\u0026#34;:\u0026#34;fix: correct golangci-lint action args\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;push\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;main\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;completed\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699711833\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;CI\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;success\u0026#34;,\u0026#34;databaseId\u0026#34;:22699699908,\u0026#34;displayTitle\u0026#34;:\u0026#34;github_actions in / for actions/checkout - Update #1268818413\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;dynamic\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;main\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;completed\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699699908\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;Dependabot Updates\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;success\u0026#34;,\u0026#34;databaseId\u0026#34;:22699699789,\u0026#34;displayTitle\u0026#34;:\u0026#34;github_actions in / for golangci/golangci-lint-action - Update #1268818411\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;dynamic\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;main\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;completed\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699699789\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;Dependabot Updates\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;success\u0026#34;,\u0026#34;databaseId\u0026#34;:22699699295,\u0026#34;displayTitle\u0026#34;:\u0026#34;github_actions in / for softprops/action-gh-release - Update #1268818408\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;dynamic\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;main\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;completed\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699699295\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;Dependabot Updates\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;success\u0026#34;,\u0026#34;databaseId\u0026#34;:22699699236,\u0026#34;displayTitle\u0026#34;:\u0026#34;github_actions in / for actions/cache - Update #1268818405\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;dynamic\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;main\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;completed\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699699236\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;Dependabot Updates\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;success\u0026#34;,\u0026#34;databaseId\u0026#34;:22699698905,\u0026#34;displayTitle\u0026#34;:\u0026#34;github_actions in / for actions/setup-go - Update #1268818404\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;dynamic\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;main\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;completed\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699698905\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;Dependabot Updates\u0026#34;},{\u0026#34;conclusion\u0026#34;:\u0026#34;failure\u0026#34;,\u0026#34;databaseId\u0026#34;:22699690701,\u0026#34;displayTitle\u0026#34;:\u0026#34;chore: update install docs and stabilize actions\u0026#34;,\u0026#34;event\u0026#34;:\u0026#34;push\u0026#34;,\u0026#34;headBranch\u0026#34;:\u0026#34;main\u0026#34;,\u0026#34;status\u0026#34;:\u0026#34;completed\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/actions/runs/22699690701\u0026#34;,\u0026#34;workflowName\u0026#34;:\u0026#34;CI\u0026#34;}]\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--233s\"\u003eAssistant (Build · gpt-5.3-codex · 23.3s) \u003ca href=\"#assistant-build--gpt-53-codex--233s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePlanning sequential CI monitoring\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;gh run watch 22699741216 --exit-status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Watches latest CI run for successful completion\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eRefreshing run status every 3 seconds. Press Ctrl+C to quit.\n\n* main CI · 22699741216\nTriggered via push less than a minute ago\n\nJOBS\n* checks (ID 65813933132)\n  ✓ Set up job\n  ✓ Run actions/checkout@v6\n  ✓ Set up Go\n  ✓ Cache Go modules\n  ✓ Format code\n  * Run golangci-lint\n  * Vet packages\n  * Run tests\n  * Post Run golangci-lint\n  * Post Cache Go modules\n  * Post Set up Go\n  * Post Run actions/checkout@v6\nRefreshing run status every 3 seconds. Press Ctrl+C to quit.\n\n* main CI · 22699741216\nTriggered via push less than a minute ago\n\nJOBS\n* checks (ID 65813933132)\n  ✓ Set up job\n  ✓ Run actions/checkout@v6\n  ✓ Set up Go\n  ✓ Cache Go modules\n  ✓ Format code\n  ✓ Run golangci-lint\n  * Vet packages\n  * Run tests\n  * Post Run golangci-lint\n  * Post Cache Go modules\n  * Post Set up Go\n  * Post Run actions/checkout@v6\nRefreshing run status every 3 seconds. Press Ctrl+C to quit.\n\n* main CI · 22699741216\nTriggered via push less than a minute ago\n\nJOBS\n* checks (ID 65813933132)\n  ✓ Set up job\n  ✓ Run actions/checkout@v6\n  ✓ Set up Go\n  ✓ Cache Go modules\n  ✓ Format code\n  ✓ Run golangci-lint\n  ✓ Vet packages\n  ✓ Run tests\n  ✓ Post Run golangci-lint\n  * Post Cache Go modules\n  * Post Set up Go\n  * Post Run actions/checkout@v6\nRefreshing run status every 3 seconds. Press Ctrl+C to quit.\n\n* main CI · 22699741216\nTriggered via push less than a minute ago\n\nJOBS\n* checks (ID 65813933132)\n  ✓ Set up job\n  ✓ Run actions/checkout@v6\n  ✓ Set up Go\n  ✓ Cache Go modules\n  ✓ Format code\n  ✓ Run golangci-lint\n  ✓ Vet packages\n  ✓ Run tests\n  ✓ Post Run golangci-lint\n  ✓ Post Cache Go modules\n  * Post Set up Go\n  * Post Run actions/checkout@v6\n✓ main CI · 22699741216\nTriggered via push less than a minute ago\n\nJOBS\n✓ checks in 30s (ID 65813933132)\n  ✓ Set up job\n  ✓ Run actions/checkout@v6\n  ✓ Set up Go\n  ✓ Cache Go modules\n  ✓ Format code\n  ✓ Run golangci-lint\n  ✓ Vet packages\n  ✓ Run tests\n  ✓ Post Run golangci-lint\n  ✓ Post Cache Go modules\n  ✓ Post Set up Go\n  ✓ Post Run actions/checkout@v6\n  ✓ Complete job\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--28s\"\u003eAssistant (Build · gpt-5.3-codex · 2.8s) \u003ca href=\"#assistant-build--gpt-53-codex--28s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eObserving release run progress\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;gh run watch 22699744966 --exit-status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Watches release workflow run until completion\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eRun Release (22699744966) has already completed with \u0026#39;success\u0026#39;\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--77s-1\"\u003eAssistant (Build · gpt-5.3-codex · 7.7s) \u003ca href=\"#assistant-build--gpt-53-codex--77s-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eVerifying release assets presence\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;gh release view v0.1.0 --json url,tagName,targetCommitish,isDraft,isPrerelease,assets\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Checks release metadata and uploaded assets\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e{\u0026#34;assets\u0026#34;:[{\u0026#34;apiUrl\u0026#34;:\u0026#34;https://api.github.com/repos/WaylonWalker/tgo/releases/assets/367202449\u0026#34;,\u0026#34;contentType\u0026#34;:\u0026#34;text/plain\u0026#34;,\u0026#34;createdAt\u0026#34;:\u0026#34;2026-03-05T02:42:22Z\u0026#34;,\u0026#34;digest\u0026#34;:\u0026#34;sha256:9411ecce656bab45708ca38d2fa2f0fd6bcdbba791e3e38bc6f004bc0eabcecc\u0026#34;,\u0026#34;downloadCount\u0026#34;:0,\u0026#34;id\u0026#34;:\u0026#34;RA_kwDORewosc4V4xCR\u0026#34;,\u0026#34;label\u0026#34;:\u0026#34;\u0026#34;,\u0026#34;name\u0026#34;:\u0026#34;checksums.txt\u0026#34;,\u0026#34;size\u0026#34;:582,\u0026#34;state\u0026#34;:\u0026#34;uploaded\u0026#34;,\u0026#34;updatedAt\u0026#34;:\u0026#34;2026-03-05T02:42:22Z\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/releases/download/v0.1.0/checksums.txt\u0026#34;},{\u0026#34;apiUrl\u0026#34;:\u0026#34;https://api.github.com/repos/WaylonWalker/tgo/releases/assets/367202453\u0026#34;,\u0026#34;contentType\u0026#34;:\u0026#34;application/zip\u0026#34;,\u0026#34;createdAt\u0026#34;:\u0026#34;2026-03-05T02:42:22Z\u0026#34;,\u0026#34;digest\u0026#34;:\u0026#34;sha256:f31d266ef4ce5aba00b678d900287982bf23fb735677941d31a2b37ff70dcd10\u0026#34;,\u0026#34;downloadCount\u0026#34;:0,\u0026#34;id\u0026#34;:\u0026#34;RA_kwDORewosc4V4xCV\u0026#34;,\u0026#34;label\u0026#34;:\u0026#34;\u0026#34;,\u0026#34;name\u0026#34;:\u0026#34;tgo-darwin-amd64.zip\u0026#34;,\u0026#34;size\u0026#34;:1212769,\u0026#34;state\u0026#34;:\u0026#34;uploaded\u0026#34;,\u0026#34;updatedAt\u0026#34;:\u0026#34;2026-03-05T02:42:23Z\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/releases/download/v0.1.0/tgo-darwin-amd64.zip\u0026#34;},{\u0026#34;apiUrl\u0026#34;:\u0026#34;https://api.github.com/repos/WaylonWalker/tgo/releases/assets/367202451\u0026#34;,\u0026#34;contentType\u0026#34;:\u0026#34;application/zip\u0026#34;,\u0026#34;createdAt\u0026#34;:\u0026#34;2026-03-05T02:42:22Z\u0026#34;,\u0026#34;digest\u0026#34;:\u0026#34;sha256:9d3fb0a2d70dc8bcb97d4d91179f49e1f0e298d889131a4404c84ad4731f1821\u0026#34;,\u0026#34;downloadCount\u0026#34;:0,\u0026#34;id\u0026#34;:\u0026#34;RA_kwDORewosc4V4xCT\u0026#34;,\u0026#34;label\u0026#34;:\u0026#34;\u0026#34;,\u0026#34;name\u0026#34;:\u0026#34;tgo-darwin-arm64.zip\u0026#34;,\u0026#34;size\u0026#34;:1149837,\u0026#34;state\u0026#34;:\u0026#34;uploaded\u0026#34;,\u0026#34;updatedAt\u0026#34;:\u0026#34;2026-03-05T02:42:22Z\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/releases/download/v0.1.0/tgo-darwin-arm64.zip\u0026#34;},{\u0026#34;apiUrl\u0026#34;:\u0026#34;https://api.github.com/repos/WaylonWalker/tgo/releases/assets/367202450\u0026#34;,\u0026#34;contentType\u0026#34;:\u0026#34;application/zip\u0026#34;,\u0026#34;createdAt\u0026#34;:\u0026#34;2026-03-05T02:42:22Z\u0026#34;,\u0026#34;digest\u0026#34;:\u0026#34;sha256:6497bbf5e358d3edaccbc69c114a8df4768b4ca9058fbb2b77ef1ca1d3db4a16\u0026#34;,\u0026#34;downloadCount\u0026#34;:0,\u0026#34;id\u0026#34;:\u0026#34;RA_kwDORewosc4V4xCS\u0026#34;,\u0026#34;label\u0026#34;:\u0026#34;\u0026#34;,\u0026#34;name\u0026#34;:\u0026#34;tgo-linux-amd64.zip\u0026#34;,\u0026#34;size\u0026#34;:1211862,\u0026#34;state\u0026#34;:\u0026#34;uploaded\u0026#34;,\u0026#34;updatedAt\u0026#34;:\u0026#34;2026-03-05T02:42:22Z\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/releases/download/v0.1.0/tgo-linux-amd64.zip\u0026#34;},{\u0026#34;apiUrl\u0026#34;:\u0026#34;https://api.github.com/repos/WaylonWalker/tgo/releases/assets/367202456\u0026#34;,\u0026#34;contentType\u0026#34;:\u0026#34;application/zip\u0026#34;,\u0026#34;createdAt\u0026#34;:\u0026#34;2026-03-05T02:42:22Z\u0026#34;,\u0026#34;digest\u0026#34;:\u0026#34;sha256:f52b3155710ee7c86ae572d5e5616553a9512dcea0a225b67c484c2e686b24a1\u0026#34;,\u0026#34;downloadCount\u0026#34;:0,\u0026#34;id\u0026#34;:\u0026#34;RA_kwDORewosc4V4xCY\u0026#34;,\u0026#34;label\u0026#34;:\u0026#34;\u0026#34;,\u0026#34;name\u0026#34;:\u0026#34;tgo-linux-arm64.zip\u0026#34;,\u0026#34;size\u0026#34;:1122154,\u0026#34;state\u0026#34;:\u0026#34;uploaded\u0026#34;,\u0026#34;updatedAt\u0026#34;:\u0026#34;2026-03-05T02:42:23Z\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/releases/download/v0.1.0/tgo-linux-arm64.zip\u0026#34;},{\u0026#34;apiUrl\u0026#34;:\u0026#34;https://api.github.com/repos/WaylonWalker/tgo/releases/assets/367202448\u0026#34;,\u0026#34;contentType\u0026#34;:\u0026#34;application/zip\u0026#34;,\u0026#34;createdAt\u0026#34;:\u0026#34;2026-03-05T02:42:22Z\u0026#34;,\u0026#34;digest\u0026#34;:\u0026#34;sha256:797793924141e6b7083142d7351bcbda99eae1ce52a4acd6140f2434d00b2bb9\u0026#34;,\u0026#34;downloadCount\u0026#34;:0,\u0026#34;id\u0026#34;:\u0026#34;RA_kwDORewosc4V4xCQ\u0026#34;,\u0026#34;label\u0026#34;:\u0026#34;\u0026#34;,\u0026#34;name\u0026#34;:\u0026#34;tgo-windows-amd64.zip\u0026#34;,\u0026#34;size\u0026#34;:1198632,\u0026#34;state\u0026#34;:\u0026#34;uploaded\u0026#34;,\u0026#34;updatedAt\u0026#34;:\u0026#34;2026-03-05T02:42:22Z\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/releases/download/v0.1.0/tgo-windows-amd64.zip\u0026#34;},{\u0026#34;apiUrl\u0026#34;:\u0026#34;https://api.github.com/repos/WaylonWalker/tgo/releases/assets/367202447\u0026#34;,\u0026#34;contentType\u0026#34;:\u0026#34;application/zip\u0026#34;,\u0026#34;createdAt\u0026#34;:\u0026#34;2026-03-05T02:42:22Z\u0026#34;,\u0026#34;digest\u0026#34;:\u0026#34;sha256:a596200fa2f39a0667a7211527d52cfff04ceb378f37fc45dda87452e152beb9\u0026#34;,\u0026#34;downloadCount\u0026#34;:0,\u0026#34;id\u0026#34;:\u0026#34;RA_kwDORewosc4V4xCP\u0026#34;,\u0026#34;label\u0026#34;:\u0026#34;\u0026#34;,\u0026#34;name\u0026#34;:\u0026#34;tgo-windows-arm64.zip\u0026#34;,\u0026#34;size\u0026#34;:1095347,\u0026#34;state\u0026#34;:\u0026#34;uploaded\u0026#34;,\u0026#34;updatedAt\u0026#34;:\u0026#34;2026-03-05T02:42:22Z\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/releases/download/v0.1.0/tgo-windows-arm64.zip\u0026#34;}],\u0026#34;isDraft\u0026#34;:false,\u0026#34;isPrerelease\u0026#34;:false,\u0026#34;tagName\u0026#34;:\u0026#34;v0.1.0\u0026#34;,\u0026#34;targetCommitish\u0026#34;:\u0026#34;main\u0026#34;,\u0026#34;url\u0026#34;:\u0026#34;https://github.com/WaylonWalker/tgo/releases/tag/v0.1.0\u0026#34;}\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--20s\"\u003eAssistant (Build · gpt-5.3-codex · 2.0s) \u003ca href=\"#assistant-build--gpt-53-codex--20s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eChecking git status cleanliness\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: bash\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;command\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;git status --short --branch\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;workdir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/home/waylon/git/tgo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;description\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Checks final git status and branch sync\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e## main...origin/main\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--28s-1\"\u003eAssistant (Build · gpt-5.3-codex · 2.8s) \u003ca href=\"#assistant-build--gpt-53-codex--28s-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eUpdating todo statuses\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTool: todowrite\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;todos\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;content\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Draft builder delegation prompt for push, retag/release move, CI fixes, and PR handling\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;completed\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;priority\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;high\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;content\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Run builder subagent to execute requested git/GitHub operations end-to-end\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;completed\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;priority\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;high\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;content\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Review builder output and report final repository/release/CI/PR status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;completed\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003e\u0026#34;priority\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;high\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eOutput:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e[\n  {\n    \u0026#34;content\u0026#34;: \u0026#34;Draft builder delegation prompt for push, retag/release move, CI fixes, and PR handling\u0026#34;,\n    \u0026#34;status\u0026#34;: \u0026#34;completed\u0026#34;,\n    \u0026#34;priority\u0026#34;: \u0026#34;high\u0026#34;\n  },\n  {\n    \u0026#34;content\u0026#34;: \u0026#34;Run builder subagent to execute requested git/GitHub operations end-to-end\u0026#34;,\n    \u0026#34;status\u0026#34;: \u0026#34;completed\u0026#34;,\n    \u0026#34;priority\u0026#34;: \u0026#34;high\u0026#34;\n  },\n  {\n    \u0026#34;content\u0026#34;: \u0026#34;Review builder output and report final repository/release/CI/PR status\u0026#34;,\n    \u0026#34;status\u0026#34;: \u0026#34;completed\u0026#34;,\n    \u0026#34;priority\u0026#34;: \u0026#34;high\u0026#34;\n  }\n]\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"assistant-build--gpt-53-codex--91s\"\u003eAssistant (Build · gpt-5.3-codex · 9.1s) \u003ca href=\"#assistant-build--gpt-53-codex--91s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThinking:\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eSummarizing release completion details\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eDone. I delegated to \u003ccode\u003e@builder\u003c/code\u003e first, then completed the full set of actions directly since the subagent couldn’t execute git/gh operations.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePushed your pending README install updates and CI/release fixes to \u003ccode\u003emain\u003c/code\u003e in:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003edb51a9e\u003c/code\u003e \u003ccode\u003echore: update install docs and stabilize actions\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e29f8b3f\u003c/code\u003e \u003ccode\u003efix: correct golangci-lint action args\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e2af8f82\u003c/code\u003e \u003ccode\u003efix: resolve lint errors in TUI code\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpdated workflows to fix failures:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e.github/workflows/ci.yml\u003c/code\u003e: upgraded actions (\u003ccode\u003echeckout@v6\u003c/code\u003e, \u003ccode\u003esetup-go@v6\u003c/code\u003e, \u003ccode\u003ecache@v5\u003c/code\u003e, \u003ccode\u003egolangci-lint-action@v9\u003c/code\u003e) and fixed lint args to \u003ccode\u003e./...\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e.github/workflows/release.yml\u003c/code\u003e: upgraded actions, added \u003ccode\u003epermissions: contents: write\u003c/code\u003e, moved to \u003ccode\u003esoftprops/action-gh-release@v2\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eMoved tag and release:\n\u003cul\u003e\n\u003cli\u003eForce-moved \u003ccode\u003ev0.1.0\u003c/code\u003e to commit \u003ccode\u003e2af8f82\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRecreated release \u003ccode\u003ev0.1.0\u003c/code\u003e at \u003ccode\u003ehttps://github.com/WaylonWalker/tgo/releases/tag/v0.1.0\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eVerified workflows:\n\u003cul\u003e\n\u003cli\u003eCI success: \u003ccode\u003ehttps://github.com/WaylonWalker/tgo/actions/runs/22699741216\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRelease success: \u003ccode\u003ehttps://github.com/WaylonWalker/tgo/actions/runs/22699744966\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRelease assets and checksums are published (linux/darwin/windows amd64+arm64 + \u003ccode\u003echecksums.txt\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAddressed PRs:\n\u003cul\u003e\n\u003cli\u003eOpen PRs now: none (\u003ccode\u003egh pr list\u003c/code\u003e returns \u003ccode\u003e[]\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePRs \u003ccode\u003e#1\u003c/code\u003e-\u003ccode\u003e#5\u003c/code\u003e were already closed; I left comments noting they were superseded by direct workflow updates on \u003ccode\u003emain\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eRepo is clean and synced: \u003ccode\u003emain...origin/main\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you want, I can cut \u003ccode\u003ev0.1.1\u003c/code\u003e next so the history reflects these post-release fixes without moving \u003ccode\u003ev0.1.0\u003c/code\u003e again.\u003c/p\u003e\n\u003chr/\u003e\n",
      "content_text": "\n**Session ID:** ses_3444b09b1ffeXTEr3ELFg5qqtg\n**Created:** 3/4/2026, 7:55:24 PM\n**Updated:** 3/4/2026, 8:52:32 PM\n\n---\n\n## User\n\nI want to spec out a cli for tmux session switching in go.\n\n* responsive to terminal size\n* works in tmux popup\n* shows list of tmux sessions with favorites pinned at the top\n\nkeymap\n\n* j/k arrow navigation\n* tab to switch sections\n* asdfqwertzxcvb to pick a session (letter listed next to the session)\n* space to select a session, then arrows j/k move that session up in priority and hotkey letter\n\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 2.4s)\n\n_Thinking:_\n\n**Initiating brainstorming skill load**\n\n**Tool: skill**\n\n**Input:**\n```json\n{\n  \"name\": \"brainstorming\"\n}\n```\n\n**Output:**\n```\n\u003cskill_content name=\"brainstorming\"\u003e\n# Skill: brainstorming\n\n# Brainstorming Ideas Into Designs\n\n## Overview\n\nHelp turn ideas into fully formed designs and specs through natural collaborative dialogue.\n\nStart by understanding the current project context, then ask questions one at a time to refine the idea. Once you understand what you're building, present the design in small sections (200-300 words), checking after each section whether it looks right so far.\n\n## The Process\n\n**Understanding the idea:**\n- Check out the current project state first (files, docs, recent commits)\n- Ask questions one at a time to refine the idea\n- Prefer multiple choice questions when possible, but open-ended is fine too\n- Only one question per message - if a topic needs more exploration, break it into multiple questions\n- Focus on understanding: purpose, constraints, success criteria\n\n**Exploring approaches:**\n- Propose 2-3 different approaches with trade-offs\n- Present options conversationally with your recommendation and reasoning\n- Lead with your recommended option and explain why\n\n**Presenting the design:**\n- Once you believe you understand what you're building, present the design\n- Break it into sections of 200-300 words\n- Ask after each section whether it looks right so far\n- Cover: architecture, components, data flow, error handling, testing\n- Be ready to go back and clarify if something doesn't make sense\n\n## After the Design\n\n**Documentation:**\n- Write the validated design to `docs/plans/YYYY-MM-DD-\u003ctopic\u003e-design.md`\n- Use elements-of-style:writing-clearly-and-concisely skill if available\n- Commit the design document to git\n\n**Implementation (if continuing):**\n- Ask: \"Ready to set up for implementation?\"\n- Use superpowers:using-git-worktrees to create isolated workspace\n- Use superpowers:writing-plans to create detailed implementation plan\n\n## Key Principles\n\n- **One question at a time** - Don't overwhelm with multiple questions\n- **Multiple choice preferred** - Easier to answer than open-ended when possible\n- **YAGNI ruthlessly** - Remove unnecessary features from all designs\n- **Explore alternatives** - Always propose 2-3 approaches before settling\n- **Incremental validation** - Present design in sections, validate each\n- **Be flexible** - Go back and clarify when something doesn't make sense\n\nBase directory for this skill: file:///home/waylon/.agents/skills/brainstorming\nRelative paths in this skill (e.g., scripts/, reference/) are relative to this base directory.\nNote: file list is sampled.\n\n\u003cskill_files\u003e\n\n\u003c/skill_files\u003e\n\u003c/skill_content\u003e\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 8.8s)\n\n_Thinking:_\n\n**Planning cautious context inspection**\n\n**Tool: glob**\n\n**Input:**\n```json\n{\n  \"pattern\": \"**/*\",\n  \"path\": \"/home/waylon/git/tgo\"\n}\n```\n\n**Output:**\n```\nNo files found\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 27.0s)\n\n_Thinking:_\n\n**Outlining comprehensive spec approach**\n\nGreat idea. Here’s a practical spec you can build straight into Go.\n\n**Product Shape**\n- Build `tms` (tmux session switcher) as a full-screen TUI that also runs cleanly inside `tmux popup`.\n- Primary goal: fast switching with keyboard-only flow and stable hotkeys.\n- Session list is split into sections: `Favorites` (pinned) and `Others` (remaining tmux sessions).\n- Favorites always render at top; within each section, order is user-priority order.\n- Hotkey letters are shown beside each session and are re-assigned from top-to-bottom using: `asdfqwertzxcvb`.\n\n**Recommended Stack**\n- `bubbletea` for event loop + resize handling.\n- `bubbles/list` (or custom list model) for session rendering and selection.\n- `lipgloss` for responsive styling and compact popup-safe layout.\n- `os/exec` for tmux integration.\n\n**Tmux Integration**\n- Read sessions with:\n  - `tmux list-sessions -F \"#{session_name}|#{session_attached}|#{session_last_attached}\"`\n- Switch session with:\n  - `tmux switch-client -t \u003csession\u003e`\n- Optional sanity checks:\n  - detect tmux via `$TMUX`; show error if not running in tmux context.\n\n**Data Model**\n- Persist state at `~/.config/tms/state.json` (or XDG path).\n- Schema:\n  - `favorites: []string` (ordered names)\n  - `order: []string` (global priority fallback)\n  - `lastSelected: string`\n- Hotkeys are computed at runtime from rendered order (not persisted directly).\n\n**Keymap Spec**\n- `j` / `Down`: move cursor down\n- `k` / `Up`: move cursor up\n- `Tab`: cycle section focus (`Favorites` \u003c-\u003e `Others`)\n- `[asdfqwertzxcvb]`: activate session currently bound to that letter; immediate switch and exit\n- `Space`: toggle “reorder mode” for currently highlighted session\n  - While active, `j/k` moves that session up/down within current section\n  - Each move recalculates priority and hotkey mapping live\n  - `Space` again confirms reorder mode off\n- `Enter`: switch to highlighted session\n- `Esc` or `q`: cancel/exit\n\n**Responsive + Popup Behavior**\n- On terminal resize (`tea.WindowSizeMsg`), recompute:\n  - list height = terminal height - header - footer - margins\n  - truncate long names with ellipsis\n- Single-column layout for narrow widths; richer status line for wider widths.\n- No hardcoded minimum popup size; degrade gracefully with compact row renderer.\n- Keep render under ~16ms/frame by precomputing derived row labels.\n\n**UX Rules**\n- Current session visually marked (e.g., `*` + muted color).\n- Favorites section always shown first, even if empty (show “No favorites yet” placeholder).\n- If session disappears mid-run (tmux changed), refresh list and preserve cursor as best effort.\n- Reordering in `Favorites` changes pin priority; reordering in `Others` changes non-favorite priority only.\n\n**Error Handling**\n- If tmux command fails: show inline error banner, keep app running, allow retry (`r` optional).\n- Corrupt state file: back it up to `state.json.bak`, start with defaults.\n- Missing sessions in saved state: drop them during load normalization.\n\n**Testing Plan**\n- Unit tests:\n  - hotkey assignment by visible order\n  - section partitioning (favorites vs others)\n  - reorder logic and boundary behavior\n  - state load/save normalization\n- Integration tests (command-layer):\n  - parse `list-sessions` output fixtures\n  - verify switch command target formatting\n- Manual checks:\n  - standard terminal and `tmux popup` at small/medium/large sizes\n  - rapid resize during reorder mode\n  - switching with every letter key in map\n\nIf you want, I can turn this into a concrete implementation plan next (package structure + first-pass interfaces + command skeleton).\n\n---\n\n## User\n\nits called tgo\n\nI'm envisioning an app that I can assign a hotkey to it opens instantly in a tmux popup, I press the key for the session that I want an I isntantly go there.  the whole process is only two keystrokes.  its critical that its quick and fast.\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 21.2s)\n\n_Thinking:_\n\n**Drafting optimized popup design**\n\nPerfect — `tgo` should be designed around a **two-keystroke fast path**:\n\n1) tmux hotkey opens popup  \n2) press session letter  \n→ immediate switch + popup closes\n\nFor your goal, optimize for startup latency first, features second.\n\n**Fast-path spec for `tgo`**\n- `tgo` starts, fetches sessions once, renders once, waits for a single key.\n- If key is in `asdfqwertzxcvb` and mapped to a live session:\n  - run `tmux switch-client -t \u003csession\u003e`\n  - exit immediately (popup disappears)\n- No animations, no spinner, no deferred UI transitions.\n- Keep key-to-session mapping stable across runs (muscle memory), unless reordered.\n\n**Performance-oriented design**\n- Use a minimal UI loop (stdin raw mode + ANSI render), not a heavyweight framework.\n- Single tmux read command on boot: `tmux list-sessions -F ...`\n- Zero background polling by default.\n- Preload and parse state from XDG config in one read.\n- Render compact, fixed-height rows; truncate names only if needed.\n- Target cold-start budget: ~20–40ms on typical machine, warm path even lower.\n\n**Hotkey behavior**\n- Letters (`asdfqwertzxcvb`) are primary action keys.\n- `j/k` and arrows for navigation.\n- `Tab` switches sections (Favorites / Others).\n- `Space` enters reorder mode for selected session:\n  - `j/k` moves session priority\n  - letter mapping updates immediately\n  - `Space` confirms and exits reorder mode\n\n**Tmux popup binding**\nUse a binding like this so launch is one key:\n```tmux\nbind-key g display-popup -E -w 70% -h 70% \"tgo\"\n```\n(Replace `g` with your preferred trigger key.)\n\n**Critical implementation rule**\n- If a valid letter is pressed, do not do anything else first: no redraw, no extra checks beyond target existence; switch and exit immediately.\n\nIf you want, next I can draft the exact `tgo` internal package layout and event loop pseudocode optimized for this latency target.\n\n---\n\n## User\n\nuse the todo tool to track work, use the @builder for research and writing, create a justfile for managing the project, create a readme, changelog, and github actions to lint, tests, dependabot. create release artifacts on release.\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 13.4s)\n\n_Thinking:_\n\n**Clarifying tool usage and task delegation**\n\n**Tool: todowrite**\n\n**Input:**\n```json\n{\n  \"todos\": [\n    {\n      \"content\": \"Draft builder prompt from tgo requirements and project setup tasks\",\n      \"status\": \"in_progress\",\n      \"priority\": \"high\"\n    },\n    {\n      \"content\": \"Run builder subagent to create justfile, README, CHANGELOG, and GitHub workflows (lint, tests, dependabot, release artifacts)\",\n      \"status\": \"pending\",\n      \"priority\": \"high\"\n    },\n    {\n      \"content\": \"Review builder results and summarize created files and next steps\",\n      \"status\": \"pending\",\n      \"priority\": \"medium\"\n    }\n  ]\n}\n```\n\n**Output:**\n```\n[\n  {\n    \"content\": \"Draft builder prompt from tgo requirements and project setup tasks\",\n    \"status\": \"in_progress\",\n    \"priority\": \"high\"\n  },\n  {\n    \"content\": \"Run builder subagent to create justfile, README, CHANGELOG, and GitHub workflows (lint, tests, dependabot, release artifacts)\",\n    \"status\": \"pending\",\n    \"priority\": \"high\"\n  },\n  {\n    \"content\": \"Review builder results and summarize created files and next steps\",\n    \"status\": \"pending\",\n    \"priority\": \"medium\"\n  }\n]\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 119.1s)\n\n_Thinking:_\n\n**Preparing detailed task prompt**\n\n**Tool: task**\n\n**Input:**\n```json\n{\n  \"description\": \"Scaffold project docs and CI\",\n  \"subagent_type\": \"builder\",\n  \"prompt\": \"You are working in /home/waylon/git/tgo. Perform research and writing, then implement project scaffolding for a new Go CLI called `tgo`.\\n\\nContext to embed:\\n- `tgo` is a tmux session switcher optimized for speed.\\n- Core UX goal: two-keystroke flow (tmux popup hotkey opens app, then user presses a session letter to switch instantly).\\n- Hotkey set: `asdfqwertzxcvb`; favorites pinned at top; responsive to terminal/popup size.\\n\\nTasks to complete:\\n1) Create a `justfile` for project management commands suitable for Go projects.\\n   - Include at least: help/default list, fmt, lint, test, build, run, tidy, ci.\\n   - Prefer golangci-lint if present; make behavior clear if missing.\\n2) Create a high-quality `README.md` covering:\\n   - What tgo is and performance philosophy.\\n   - Planned keymap and interaction model (including two-keystroke fast path).\\n   - Planned architecture notes.\\n   - Local development workflow using `just`.\\n   - Example tmux binding to open `tgo` in popup.\\n3) Create `CHANGELOG.md` using Keep a Changelog format with an initial unreleased section.\\n4) Add GitHub automation:\\n   - `.github/workflows/ci.yml` for lint + tests on pushes/PRs.\\n   - `.github/dependabot.yml` for Go modules + GitHub Actions updates.\\n   - `.github/workflows/release.yml` that creates release artifacts when a GitHub Release is published.\\n     * Build cross-platform binaries (linux/mac/windows amd64+arm64 where applicable) and upload as artifacts/assets.\\n     * Include checksums file.\\n5) Ensure workflows are reasonable for a fresh repo (avoid assumptions not present).\\n6) If needed for CI/lint/test sanity in a fresh repo, add minimal Go scaffolding (e.g., go.mod and tiny main/test) but keep it minimal.\\n\\nConstraints:\\n- Keep files concise and practical.\\n- Use ASCII only.\\n- Follow conventional Go and GitHub Actions practices.\\n\\nReturn a final report with:\\n- Files created/updated.\\n- Any assumptions made.\\n- Recommended next commands to run locally.\"\n}\n```\n\n**Output:**\n```\ntask_id: ses_344457065ffeyL8ub5ZBsD7Ed5 (for resuming to continue this task if needed)\n\n\u003ctask_result\u003e\nScaffolded the `tgo` CLI with a minimal Go module, placeholder command/testing, documentation, changelog, `just` workflow recipes, and GitHub automation covering CI, Dependabot, and release pipelines (cross-platform builds + checksums).\n\n**Files**\n- `go.mod`, `cmd/tgo/main.go`, `cmd/tgo/main_test.go`\n- `README.md`, `justfile`, `CHANGELOG.md`\n- `.github/workflows/ci.yml`, `.github/workflows/release.yml`, `.github/dependabot.yml`\n\n**Assumptions**\n- The module path is simply `tgo` (no upstream repo URL provided) and `ubuntu-latest` agents have `zip`/`sha256sum` for release packaging.\n- Local linting will skip `golangci-lint` unless it is installed, so `just lint` prints a warning but stays green.\n\n**Next Steps**\n1. `just ci` to run fmt, lint, and tests end-to-end.\n2. `just run` to verify the CLI launches and prints the hotkey list.\n\u003c/task_result\u003e\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 8.0s)\n\n_Thinking:_\n\n**Planning todo updates and file verification**\n\n**Tool: read**\n\n**Input:**\n```json\n{\n  \"filePath\": \"/home/waylon/git/tgo/justfile\"\n}\n```\n\n**Output:**\n```\n\u003cpath\u003e/home/waylon/git/tgo/justfile\u003c/path\u003e\n\u003ctype\u003efile\u003c/type\u003e\n\u003ccontent\u003e1: default: help\n2: \n3: help:\n4:     @just --list\n5: \n6: fmt:\n7:     @go fmt ./...\n8: \n9: lint:\n10:     @if command -v golangci-lint \u003e/dev/null 2\u003e\u00261; then \\\n11:         golangci-lint run ./...; \\\n12:     else \\\n13:         echo \"golangci-lint not found; install it to enable lint checks.\"; \\\n14:         exit 0; \\\n15:     fi\n16: \n17: test:\n18:     @go test ./...\n19: \n20: build:\n21:     @mkdir -p bin\n22:     @go build -ldflags \"-s -w\" -o bin/tgo ./cmd/tgo\n23: \n24: run:\n25:     @go run ./cmd/tgo\n26: \n27: tidy:\n28:     @go mod tidy\n29: \n30: ci: fmt lint test\n\n(End of file - total 30 lines)\n\u003c/content\u003e\n```\n\n**Tool: read**\n\n**Input:**\n```json\n{\n  \"filePath\": \"/home/waylon/git/tgo/README.md\"\n}\n```\n\n**Output:**\n```\n\u003cpath\u003e/home/waylon/git/tgo/README.md\u003c/path\u003e\n\u003ctype\u003efile\u003c/type\u003e\n\u003ccontent\u003e1: # tgo\n2: \n3: tgo is a tmux session switcher optimized for speed and predictability. It runs inside a tmux popup or terminal, draws the active sessions, highlights favorites, and lets you switch with a single letter after opening (two keystrokes overall). The focus is low latency: the popup hotkey triggers `tgo`, and the keyboard-only UI assumes tmux-level terminal performance and responsive layouts.\n4: \n5: ## UX guidance\n6: \n7: - **Two-keystroke flow**: Press the tmux popup hotkey, then tap the letter mapped to the target session. No arrow navigation, no typing a name twice.\n8: - **Key map**: `asdf qwert zxcvb` serves as the ordered list of hotkeys. Favorites are pinned to the top of the list so that letters stay stable even when promting terminals resize.\n9: - **Sizing**: `tgo` will render the session list responsively so that both narrow popups and larger terminals remain usable—critical for tmux popup contexts.\n10: \n11: ## Architecture notes\n12: \n13: - `cmd/tgo` contains the CLI entry point and will orchestrate session discovery, layout, and rendering logic.\n14: - Session data comes from tmux via shell calls (placeholder now), with an overlay layer for the favorites list and letter assignment.\n15: - UI rendering will target the terminal/popup dimensions reported by tmux, keeping control loops synchronous so the hotkey response stays within one frame.\n16: \n17: ## Local workflow (using `just`)\n18: \n19: 1. Install [just](https://github.com/casey/just) if missing.\n20: 2. `just fmt` to format Go files.\n21: 3. `just lint` to run `golangci-lint` if it is installed (falls back to a warning otherwise).\n22: 4. `just test` to exercise the package.\n23: 5. `just build` produces `bin/tgo` under the repository root.\n24: 6. `just run` executes the CLI locally.\n25: 7. `just tidy` keeps `go.mod` and `go.sum` neat.\n26: 8. `just ci` runs `fmt`, `lint`, and `test` in sequence for a quick check before pushing.\n27: \n28: ## Example tmux binding\n29: \n30: ```tmux\n31: bind-key q run-shell \"tmux popup -E 'tgo'\"\n32: ```\n33: \n34: This binding opens a popup that immediately starts `tgo`, letting you press one of the letters from `asdfqwertzxcvb` to jump to the desired session.\n\n(End of file - total 34 lines)\n\u003c/content\u003e\n```\n\n**Tool: read**\n\n**Input:**\n```json\n{\n  \"filePath\": \"/home/waylon/git/tgo/CHANGELOG.md\"\n}\n```\n\n**Output:**\n```\n\u003cpath\u003e/home/waylon/git/tgo/CHANGELOG.md\u003c/path\u003e\n\u003ctype\u003efile\u003c/type\u003e\n\u003ccontent\u003e1: # Changelog\n2: \n3: All notable changes to `tgo` will be documented in this file. This project adheres to [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html).\n4: \n5: ## [Unreleased]\n6: \n7: ### Added\n8: - base Go module, CLI entry point, and placeholder session hotkey collection.\n9: - `justfile` with formatter, lint, test, build, run, tidy, and CI recipes.\n10: - `README.md` describing the command, UX goal, architecture notes, tmux binding, and local workflow.\n11: - `CHANGELOG.md` initial structure plus README and changelog.\n12: - GitHub workflows for CI, dependency updates, and release automation, along with cross-platform binary packaging and checksums.\n\n(End of file - total 12 lines)\n\u003c/content\u003e\n```\n\n**Tool: read**\n\n**Input:**\n```json\n{\n  \"filePath\": \"/home/waylon/git/tgo/.github/workflows/ci.yml\"\n}\n```\n\n**Output:**\n```\n\u003cpath\u003e/home/waylon/git/tgo/.github/workflows/ci.yml\u003c/path\u003e\n\u003ctype\u003efile\u003c/type\u003e\n\u003ccontent\u003e1: name: CI\n2: \n3: on:\n4:   push:\n5:     branches: [main]\n6:   pull_request:\n7:     branches: [main]\n8: \n9: jobs:\n10:   checks:\n11:     runs-on: ubuntu-latest\n12:     steps:\n13:       - uses: actions/checkout@v4\n14:       - name: Set up Go\n15:         uses: actions/setup-go@v5\n16:         with:\n17:           go-version: 1.22\n18:       - name: Cache Go modules\n19:         uses: actions/cache@v3\n20:         with:\n21:           path: |\n22:             ~/.cache/go-build\n23:             ~/go/pkg/mod\n24:           key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}\n25:       - name: Format code\n26:         run: go fmt ./...\n27:       - name: Run golangci-lint\n28:         uses: golangci/golangci-lint-action@v4\n29:         with:\n30:           version: v1.64.0\n31:           args: run ./...\n32:       - name: Vet packages\n33:         run: go vet ./...\n34:       - name: Run tests\n35:         run: go test ./...\n\n(End of file - total 35 lines)\n\u003c/content\u003e\n```\n\n**Tool: read**\n\n**Input:**\n```json\n{\n  \"filePath\": \"/home/waylon/git/tgo/.github/workflows/release.yml\"\n}\n```\n\n**Output:**\n```\n\u003cpath\u003e/home/waylon/git/tgo/.github/workflows/release.yml\u003c/path\u003e\n\u003ctype\u003efile\u003c/type\u003e\n\u003ccontent\u003e1: name: Release\n2: \n3: on:\n4:   release:\n5:     types: [published]\n6: \n7: jobs:\n8:   build:\n9:     runs-on: ubuntu-latest\n10:     steps:\n11:       - uses: actions/checkout@v4\n12:       - name: Set up Go\n13:         uses: actions/setup-go@v5\n14:         with:\n15:           go-version: 1.22\n16:       - name: Build cross-platform binaries\n17:         run: |\n18:           set -euo pipefail\n19:           artifacts=artifacts\n20:           mkdir -p \"$artifacts\"\n21:           combos=(\n22:             linux:amd64\n23:             linux:arm64\n24:             darwin:amd64\n25:             darwin:arm64\n26:             windows:amd64\n27:             windows:arm64\n28:           )\n29:           for combo in \"${combos[@]}\"; do\n30:             os=${combo%%:*}\n31:             arch=${combo##*:}\n32:             bin_name=\"tgo-${os}-${arch}\"\n33:             bin_path=\"$artifacts/${bin_name}\"\n34:             if [[ \"$os\" == \"windows\" ]]; then\n35:               bin_path+=\".exe\"\n36:             fi\n37:             GOOS=\"$os\" GOARCH=\"$arch\" go build -ldflags \"-s -w\" -o \"$bin_path\" ./cmd/tgo\n38:             archive=\"$artifacts/${bin_name}.zip\"\n39:             zip -j \"$archive\" \"$bin_path\"\n40:             rm \"$bin_path\"\n41:           done\n42:           sha256sum \"$artifacts\"/*.zip \u003e \"$artifacts/checksums.txt\"\n43:       - name: Publish release assets\n44:         uses: softprops/action-gh-release@v1\n45:         with:\n46:           files: |\n47:             artifacts/*.zip\n48:             artifacts/checksums.txt\n49:         env:\n50:           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n\n(End of file - total 50 lines)\n\u003c/content\u003e\n```\n\n**Tool: read**\n\n**Input:**\n```json\n{\n  \"filePath\": \"/home/waylon/git/tgo/.github/dependabot.yml\"\n}\n```\n\n**Output:**\n```\n\u003cpath\u003e/home/waylon/git/tgo/.github/dependabot.yml\u003c/path\u003e\n\u003ctype\u003efile\u003c/type\u003e\n\u003ccontent\u003e1: version: 2\n2: updates:\n3:   - package-ecosystem: gomod\n4:     directory: /\n5:     schedule:\n6:       interval: weekly\n7:   - package-ecosystem: github-actions\n8:     directory: /\n9:     schedule:\n10:       interval: weekly\n\n(End of file - total 10 lines)\n\u003c/content\u003e\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 2.4s)\n\n_Thinking:_\n\n**Scanning Go files for mentions**\n\n**Tool: read**\n\n**Input:**\n```json\n{\n  \"filePath\": \"/home/waylon/git/tgo/go.mod\"\n}\n```\n\n**Output:**\n```\n\u003cpath\u003e/home/waylon/git/tgo/go.mod\u003c/path\u003e\n\u003ctype\u003efile\u003c/type\u003e\n\u003ccontent\u003e1: module tgo\n2: \n3: go 1.22\n\n(End of file - total 3 lines)\n\u003c/content\u003e\n```\n\n**Tool: read**\n\n**Input:**\n```json\n{\n  \"filePath\": \"/home/waylon/git/tgo/cmd/tgo/main.go\"\n}\n```\n\n**Output:**\n```\n\u003cpath\u003e/home/waylon/git/tgo/cmd/tgo/main.go\u003c/path\u003e\n\u003ctype\u003efile\u003c/type\u003e\n\u003ccontent\u003e1: package main\n2: \n3: import \"fmt\"\n4: \n5: const hotkeyRunes = \"asdfqwertzxcvb\"\n6: \n7: func main() {\n8: \tfmt.Println(\"tgo: tmux session switcher\")\n9: \tfmt.Println(\"hotkeys:\", hotkeyRunes)\n10: }\n11: \n12: func SessionHotkeyAlphabet() string {\n13: \treturn hotkeyRunes\n14: }\n\n(End of file - total 14 lines)\n\u003c/content\u003e\n```\n\n**Tool: read**\n\n**Input:**\n```json\n{\n  \"filePath\": \"/home/waylon/git/tgo/cmd/tgo/main_test.go\"\n}\n```\n\n**Output:**\n```\n\u003cpath\u003e/home/waylon/git/tgo/cmd/tgo/main_test.go\u003c/path\u003e\n\u003ctype\u003efile\u003c/type\u003e\n\u003ccontent\u003e1: package main\n2: \n3: import \"testing\"\n4: \n5: func TestSessionHotkeyAlphabet(t *testing.T) {\n6: \twant := \"asdfqwertzxcvb\"\n7: \tif got := SessionHotkeyAlphabet(); got != want {\n8: \t\tt.Fatalf(\"hotkey alphabet mismatch: got %q want %q\", got, want)\n9: \t}\n10: }\n\n(End of file - total 10 lines)\n\u003c/content\u003e\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 4.3s)\n\n_Thinking:_\n\n**Running Go tests to verify**\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"go test ./...\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Runs Go tests for all packages\"\n}\n```\n\n**Output:**\n```\nok  \ttgo/cmd/tgo\t0.002s\n\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 2.3s)\n\n_Thinking:_\n\n**Completing todos update**\n\n**Tool: todowrite**\n\n**Input:**\n```json\n{\n  \"todos\": [\n    {\n      \"content\": \"Draft builder prompt from tgo requirements and project setup tasks\",\n      \"status\": \"completed\",\n      \"priority\": \"high\"\n    },\n    {\n      \"content\": \"Run builder subagent to create justfile, README, CHANGELOG, and GitHub workflows (lint, tests, dependabot, release artifacts)\",\n      \"status\": \"completed\",\n      \"priority\": \"high\"\n    },\n    {\n      \"content\": \"Review builder results and summarize created files and next steps\",\n      \"status\": \"completed\",\n      \"priority\": \"medium\"\n    }\n  ]\n}\n```\n\n**Output:**\n```\n[\n  {\n    \"content\": \"Draft builder prompt from tgo requirements and project setup tasks\",\n    \"status\": \"completed\",\n    \"priority\": \"high\"\n  },\n  {\n    \"content\": \"Run builder subagent to create justfile, README, CHANGELOG, and GitHub workflows (lint, tests, dependabot, release artifacts)\",\n    \"status\": \"completed\",\n    \"priority\": \"high\"\n  },\n  {\n    \"content\": \"Review builder results and summarize created files and next steps\",\n    \"status\": \"completed\",\n    \"priority\": \"medium\"\n  }\n]\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 9.2s)\n\n_Thinking:_\n\n\n\nImplemented. I used the todo tracker, generated a builder prompt from your `tgo` context, and ran the `builder` subagent to do the research/writing and scaffold the repo.\n\n- Added project scaffolding: `go.mod`, `cmd/tgo/main.go`, `cmd/tgo/main_test.go`\n- Added project management: `justfile` with `help`, `fmt`, `lint`, `test`, `build`, `run`, `tidy`, `ci`\n- Added docs: `README.md` (two-keystroke UX, keymap, architecture notes, tmux popup binding), `CHANGELOG.md` (Keep a Changelog)\n- Added automation:\n  - CI: `.github/workflows/ci.yml` (fmt, golangci-lint action, vet, test)\n  - Dependabot: `.github/dependabot.yml` (gomod + github-actions weekly)\n  - Release artifacts: `.github/workflows/release.yml` (cross-platform zip builds + `checksums.txt` on published release)\n- Verified tests locally with `go test ./...` (pass)\n\nKey files:\n- `justfile`\n- `README.md`\n- `CHANGELOG.md`\n- `.github/workflows/ci.yml`\n- `.github/workflows/release.yml`\n- `.github/dependabot.yml`\n\nNatural next steps:\n1. Run `just ci` locally.\n2. Wire real tmux session discovery/switching into `cmd/tgo/main.go`.\n3. Add first-pass TUI loop for the two-keystroke popup flow.\n\n---\n\n## User\n\nkeep going until we have a fully workign tui that can list, switch, manage tmux sessions\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 6.2s)\n\n_Thinking:_\n\n**Preparing implementation strategy**\n\n**Tool: todowrite**\n\n**Input:**\n```json\n{\n  \"todos\": [\n    {\n      \"content\": \"Inspect current tgo scaffold and define concrete TUI/session management architecture\",\n      \"status\": \"in_progress\",\n      \"priority\": \"high\"\n    },\n    {\n      \"content\": \"Implement tmux integration and persistent state (favorites/order)\",\n      \"status\": \"pending\",\n      \"priority\": \"high\"\n    },\n    {\n      \"content\": \"Implement interactive TUI with navigation, section switching, hotkeys, and reorder mode\",\n      \"status\": \"pending\",\n      \"priority\": \"high\"\n    },\n    {\n      \"content\": \"Update README with implemented behavior and usage\",\n      \"status\": \"pending\",\n      \"priority\": \"medium\"\n    },\n    {\n      \"content\": \"Add/expand tests for key mapping, ordering, and state normalization\",\n      \"status\": \"pending\",\n      \"priority\": \"medium\"\n    },\n    {\n      \"content\": \"Run formatting and tests to validate full functionality\",\n      \"status\": \"pending\",\n      \"priority\": \"high\"\n    }\n  ]\n}\n```\n\n**Output:**\n```\n[\n  {\n    \"content\": \"Inspect current tgo scaffold and define concrete TUI/session management architecture\",\n    \"status\": \"in_progress\",\n    \"priority\": \"high\"\n  },\n  {\n    \"content\": \"Implement tmux integration and persistent state (favorites/order)\",\n    \"status\": \"pending\",\n    \"priority\": \"high\"\n  },\n  {\n    \"content\": \"Implement interactive TUI with navigation, section switching, hotkeys, and reorder mode\",\n    \"status\": \"pending\",\n    \"priority\": \"high\"\n  },\n  {\n    \"content\": \"Update README with implemented behavior and usage\",\n    \"status\": \"pending\",\n    \"priority\": \"medium\"\n  },\n  {\n    \"content\": \"Add/expand tests for key mapping, ordering, and state normalization\",\n    \"status\": \"pending\",\n    \"priority\": \"medium\"\n  },\n  {\n    \"content\": \"Run formatting and tests to validate full functionality\",\n    \"status\": \"pending\",\n    \"priority\": \"high\"\n  }\n]\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 4.1s)\n\n_Thinking:_\n\n\n\n**Tool: skill**\n\n**Input:**\n```json\n{\n  \"name\": \"brainstorming\"\n}\n```\n\n**Output:**\n```\n\u003cskill_content name=\"brainstorming\"\u003e\n# Skill: brainstorming\n\n# Brainstorming Ideas Into Designs\n\n## Overview\n\nHelp turn ideas into fully formed designs and specs through natural collaborative dialogue.\n\nStart by understanding the current project context, then ask questions one at a time to refine the idea. Once you understand what you're building, present the design in small sections (200-300 words), checking after each section whether it looks right so far.\n\n## The Process\n\n**Understanding the idea:**\n- Check out the current project state first (files, docs, recent commits)\n- Ask questions one at a time to refine the idea\n- Prefer multiple choice questions when possible, but open-ended is fine too\n- Only one question per message - if a topic needs more exploration, break it into multiple questions\n- Focus on understanding: purpose, constraints, success criteria\n\n**Exploring approaches:**\n- Propose 2-3 different approaches with trade-offs\n- Present options conversationally with your recommendation and reasoning\n- Lead with your recommended option and explain why\n\n**Presenting the design:**\n- Once you believe you understand what you're building, present the design\n- Break it into sections of 200-300 words\n- Ask after each section whether it looks right so far\n- Cover: architecture, components, data flow, error handling, testing\n- Be ready to go back and clarify if something doesn't make sense\n\n## After the Design\n\n**Documentation:**\n- Write the validated design to `docs/plans/YYYY-MM-DD-\u003ctopic\u003e-design.md`\n- Use elements-of-style:writing-clearly-and-concisely skill if available\n- Commit the design document to git\n\n**Implementation (if continuing):**\n- Ask: \"Ready to set up for implementation?\"\n- Use superpowers:using-git-worktrees to create isolated workspace\n- Use superpowers:writing-plans to create detailed implementation plan\n\n## Key Principles\n\n- **One question at a time** - Don't overwhelm with multiple questions\n- **Multiple choice preferred** - Easier to answer than open-ended when possible\n- **YAGNI ruthlessly** - Remove unnecessary features from all designs\n- **Explore alternatives** - Always propose 2-3 approaches before settling\n- **Incremental validation** - Present design in sections, validate each\n- **Be flexible** - Go back and clarify when something doesn't make sense\n\nBase directory for this skill: file:///home/waylon/.agents/skills/brainstorming\nRelative paths in this skill (e.g., scripts/, reference/) are relative to this base directory.\nNote: file list is sampled.\n\n\u003cskill_files\u003e\n\n\u003c/skill_files\u003e\n\u003c/skill_content\u003e\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 2.9s)\n\n_Thinking:_\n\n**Resolving inquiry approach conflict**\n\n**Tool: glob**\n\n**Input:**\n```json\n{\n  \"pattern\": \"**/*\",\n  \"path\": \"/home/waylon/git/tgo\"\n}\n```\n\n**Output:**\n```\n/home/waylon/git/tgo/bin/tgo\n/home/waylon/git/tgo/cmd/tgo/main_test.go\n/home/waylon/git/tgo/cmd/tgo/main.go\n/home/waylon/git/tgo/.github/workflows/release.yml\n/home/waylon/git/tgo/.github/dependabot.yml\n/home/waylon/git/tgo/.github/workflows/ci.yml\n/home/waylon/git/tgo/CHANGELOG.md\n/home/waylon/git/tgo/justfile\n/home/waylon/git/tgo/README.md\n/home/waylon/git/tgo/go.mod\n```\n\n**Tool: read**\n\n**Input:**\n```json\n{\n  \"filePath\": \"/home/waylon/git/tgo/cmd/tgo/main.go\"\n}\n```\n\n**Output:**\n```\n\u003cpath\u003e/home/waylon/git/tgo/cmd/tgo/main.go\u003c/path\u003e\n\u003ctype\u003efile\u003c/type\u003e\n\u003ccontent\u003e1: package main\n2: \n3: import \"fmt\"\n4: \n5: const hotkeyRunes = \"asdfqwertzxcvb\"\n6: \n7: func main() {\n8: \tfmt.Println(\"tgo: tmux session switcher\")\n9: \tfmt.Println(\"hotkeys:\", hotkeyRunes)\n10: }\n11: \n12: func SessionHotkeyAlphabet() string {\n13: \treturn hotkeyRunes\n14: }\n\n(End of file - total 14 lines)\n\u003c/content\u003e\n```\n\n**Tool: read**\n\n**Input:**\n```json\n{\n  \"filePath\": \"/home/waylon/git/tgo/README.md\"\n}\n```\n\n**Output:**\n```\n\u003cpath\u003e/home/waylon/git/tgo/README.md\u003c/path\u003e\n\u003ctype\u003efile\u003c/type\u003e\n\u003ccontent\u003e1: # tgo\n2: \n3: tgo is a tmux session switcher optimized for speed and predictability. It runs inside a tmux popup or terminal, draws the active sessions, highlights favorites, and lets you switch with a single letter after opening (two keystrokes overall). The focus is low latency: the popup hotkey triggers `tgo`, and the keyboard-only UI assumes tmux-level terminal performance and responsive layouts.\n4: \n5: ## UX guidance\n6: \n7: - **Two-keystroke flow**: Press the tmux popup hotkey, then tap the letter mapped to the target session. No arrow navigation, no typing a name twice.\n8: - **Key map**: `asdf qwert zxcvb` serves as the ordered list of hotkeys. Favorites are pinned to the top of the list so that letters stay stable even when promting terminals resize.\n9: - **Sizing**: `tgo` will render the session list responsively so that both narrow popups and larger terminals remain usable—critical for tmux popup contexts.\n10: \n11: ## Architecture notes\n12: \n13: - `cmd/tgo` contains the CLI entry point and will orchestrate session discovery, layout, and rendering logic.\n14: - Session data comes from tmux via shell calls (placeholder now), with an overlay layer for the favorites list and letter assignment.\n15: - UI rendering will target the terminal/popup dimensions reported by tmux, keeping control loops synchronous so the hotkey response stays within one frame.\n16: \n17: ## Local workflow (using `just`)\n18: \n19: 1. Install [just](https://github.com/casey/just) if missing.\n20: 2. `just fmt` to format Go files.\n21: 3. `just lint` to run `golangci-lint` if it is installed (falls back to a warning otherwise).\n22: 4. `just test` to exercise the package.\n23: 5. `just build` produces `bin/tgo` under the repository root.\n24: 6. `just run` executes the CLI locally.\n25: 7. `just tidy` keeps `go.mod` and `go.sum` neat.\n26: 8. `just ci` runs `fmt`, `lint`, and `test` in sequence for a quick check before pushing.\n27: \n28: ## Example tmux binding\n29: \n30: ```tmux\n31: bind-key q run-shell \"tmux popup -E 'tgo'\"\n32: ```\n33: \n34: This binding opens a popup that immediately starts `tgo`, letting you press one of the letters from `asdfqwertzxcvb` to jump to the desired session.\n\n(End of file - total 34 lines)\n\u003c/content\u003e\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 62.8s)\n\n_Thinking:_\n\n**Designing session manager architecture**\n\n**Tool: apply_patch**\n\n**Input:**\n```json\n{\n  \"patchText\": \"*** Begin Patch\\n*** Update File: /home/waylon/git/tgo/cmd/tgo/main.go\\n@@\\n-package main\\n-\\n-import \\\"fmt\\\"\\n-\\n-const hotkeyRunes = \\\"asdfqwertzxcvb\\\"\\n-\\n-func main() {\\n-\\tfmt.Println(\\\"tgo: tmux session switcher\\\")\\n-\\tfmt.Println(\\\"hotkeys:\\\", hotkeyRunes)\\n-}\\n-\\n-func SessionHotkeyAlphabet() string {\\n-\\treturn hotkeyRunes\\n-}\\n+package main\\n+\\n+import (\\n+\\t\\\"fmt\\\"\\n+\\t\\\"os\\\"\\n+)\\n+\\n+const hotkeyRunes = \\\"asdfqwertzxcvb\\\"\\n+\\n+func main() {\\n+\\tclient := \u0026tmuxCLI{}\\n+\\tstore, err := openStateStore()\\n+\\tif err != nil {\\n+\\t\\tfmt.Fprintf(os.Stderr, \\\"tgo: state init failed: %v\\\\n\\\", err)\\n+\\t\\tos.Exit(1)\\n+\\t}\\n+\\n+\\tapp, err := newApp(client, store)\\n+\\tif err != nil {\\n+\\t\\tfmt.Fprintf(os.Stderr, \\\"tgo: startup failed: %v\\\\n\\\", err)\\n+\\t\\tos.Exit(1)\\n+\\t}\\n+\\n+\\tif err := app.Run(); err != nil {\\n+\\t\\tfmt.Fprintf(os.Stderr, \\\"tgo: %v\\\\n\\\", err)\\n+\\t\\tos.Exit(1)\\n+\\t}\\n+}\\n+\\n+func SessionHotkeyAlphabet() string {\\n+\\treturn hotkeyRunes\\n+}\\n*** End Patch\"\n}\n```\n\n**Output:**\n```\nSuccess. Updated the following files:\nM home/waylon/git/tgo/cmd/tgo/main.go\n\nLSP errors detected in home/waylon/git/tgo/cmd/tgo/main.go, please fix:\n\u003cdiagnostics file=\"/home/waylon/git/tgo/cmd/tgo/main.go\"\u003e\nERROR [11:13] undefined: tmuxCLI\nERROR [12:16] undefined: openStateStore\nERROR [18:14] undefined: newApp\n\u003c/diagnostics\u003e\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 23.4s)\n\n_Thinking:_\n\n\n\n**Tool: apply_patch**\n\n**Input:**\n```json\n{\n  \"patchText\": \"*** Begin Patch\\n*** Add File: /home/waylon/git/tgo/cmd/tgo/tmux.go\\n+package main\\n+\\n+import (\\n+\\t\\\"bytes\\\"\\n+\\t\\\"fmt\\\"\\n+\\t\\\"os/exec\\\"\\n+\\t\\\"sort\\\"\\n+\\t\\\"strings\\\"\\n+)\\n+\\n+type session struct {\\n+\\tName     string\\n+\\tAttached bool\\n+}\\n+\\n+type tmuxClient interface {\\n+\\tListSessions() ([]session, error)\\n+\\tSwitchSession(name string) error\\n+\\tKillSession(name string) error\\n+\\tNewSession(name string) error\\n+}\\n+\\n+type tmuxCLI struct{}\\n+\\n+func (t *tmuxCLI) ListSessions() ([]session, error) {\\n+\\tcmd := exec.Command(\\\"tmux\\\", \\\"list-sessions\\\", \\\"-F\\\", \\\"#{session_name}|#{?session_attached,1,0}\\\")\\n+\\tout, err := cmd.Output()\\n+\\tif err != nil {\\n+\\t\\treturn nil, fmt.Errorf(\\\"list sessions: %w\\\", err)\\n+\\t}\\n+\\n+\\tlines := strings.Split(strings.TrimSpace(string(out)), \\\"\\\\n\\\")\\n+\\tif len(lines) == 1 \u0026\u0026 lines[0] == \\\"\\\" {\\n+\\t\\treturn []session{}, nil\\n+\\t}\\n+\\n+\\tsessions := make([]session, 0, len(lines))\\n+\\tfor _, line := range lines {\\n+\\t\\tparts := strings.SplitN(line, \\\"|\\\", 2)\\n+\\t\\tif len(parts) != 2 {\\n+\\t\\t\\tcontinue\\n+\\t\\t}\\n+\\t\\tsessions = append(sessions, session{\\n+\\t\\t\\tName:     parts[0],\\n+\\t\\t\\tAttached: parts[1] == \\\"1\\\",\\n+\\t\\t})\\n+\\t}\\n+\\n+\\treturn sessions, nil\\n+}\\n+\\n+func (t *tmuxCLI) SwitchSession(name string) error {\\n+\\tif name == \\\"\\\" {\\n+\\t\\treturn fmt.Errorf(\\\"empty session name\\\")\\n+\\t}\\n+\\tcmd := exec.Command(\\\"tmux\\\", \\\"switch-client\\\", \\\"-t\\\", name)\\n+\\tif out, err := cmd.CombinedOutput(); err != nil {\\n+\\t\\treturn fmt.Errorf(\\\"switch session %q: %w (%s)\\\", name, err, strings.TrimSpace(string(out)))\\n+\\t}\\n+\\treturn nil\\n+}\\n+\\n+func (t *tmuxCLI) KillSession(name string) error {\\n+\\tif name == \\\"\\\" {\\n+\\t\\treturn fmt.Errorf(\\\"empty session name\\\")\\n+\\t}\\n+\\tcmd := exec.Command(\\\"tmux\\\", \\\"kill-session\\\", \\\"-t\\\", name)\\n+\\tif out, err := cmd.CombinedOutput(); err != nil {\\n+\\t\\treturn fmt.Errorf(\\\"kill session %q: %w (%s)\\\", name, err, strings.TrimSpace(string(out)))\\n+\\t}\\n+\\treturn nil\\n+}\\n+\\n+func (t *tmuxCLI) NewSession(name string) error {\\n+\\tif name == \\\"\\\" {\\n+\\t\\treturn fmt.Errorf(\\\"empty session name\\\")\\n+\\t}\\n+\\tcmd := exec.Command(\\\"tmux\\\", \\\"new-session\\\", \\\"-d\\\", \\\"-s\\\", name)\\n+\\tif out, err := cmd.CombinedOutput(); err != nil {\\n+\\t\\treturn fmt.Errorf(\\\"new session %q: %w (%s)\\\", name, err, strings.TrimSpace(string(out)))\\n+\\t}\\n+\\treturn nil\\n+}\\n+\\n+func orderSessions(sessions []session, st state) (favorites []session, others []session) {\\n+\\tnameToSession := make(map[string]session, len(sessions))\\n+\\ttmuxOrder := make(map[string]int, len(sessions))\\n+\\tfor i, s := range sessions {\\n+\\t\\tnameToSession[s.Name] = s\\n+\\t\\ttmuxOrder[s.Name] = i\\n+\\t}\\n+\\n+\\tfor _, name := range st.Favorites {\\n+\\t\\ts, ok := nameToSession[name]\\n+\\t\\tif !ok {\\n+\\t\\t\\tcontinue\\n+\\t\\t}\\n+\\t\\tfavorites = append(favorites, s)\\n+\\t}\\n+\\n+\\tfavSet := make(map[string]struct{}, len(favorites))\\n+\\tfor _, s := range favorites {\\n+\\t\\tfavSet[s.Name] = struct{}{}\\n+\\t}\\n+\\n+\\tnonFav := make([]session, 0, len(sessions)-len(favorites))\\n+\\tfor _, s := range sessions {\\n+\\t\\tif _, ok := favSet[s.Name]; ok {\\n+\\t\\t\\tcontinue\\n+\\t\\t}\\n+\\t\\tnonFav = append(nonFav, s)\\n+\\t}\\n+\\n+\\torderIndex := make(map[string]int, len(st.Order))\\n+\\tfor i, name := range st.Order {\\n+\\t\\torderIndex[name] = i\\n+\\t}\\n+\\n+\\tsort.SliceStable(nonFav, func(i, j int) bool {\\n+\\t\\tli, iok := orderIndex[nonFav[i].Name]\\n+\\t\\tlj, jok := orderIndex[nonFav[j].Name]\\n+\\t\\tswitch {\\n+\\t\\tcase iok \u0026\u0026 jok:\\n+\\t\\t\\treturn li \u003c lj\\n+\\t\\tcase iok:\\n+\\t\\t\\treturn true\\n+\\t\\tcase jok:\\n+\\t\\t\\treturn false\\n+\\t\\tdefault:\\n+\\t\\t\\treturn tmuxOrder[nonFav[i].Name] \u003c tmuxOrder[nonFav[j].Name]\\n+\\t\\t}\\n+\\t})\\n+\\n+\\treturn favorites, nonFav\\n+}\\n+\\n+func assignHotkeys(favorites []session, others []session, alphabet string) map[string]rune {\\n+\\tout := make(map[string]rune)\\n+\\tordered := make([]session, 0, len(favorites)+len(others))\\n+\\tordered = append(ordered, favorites...)\\n+\\tordered = append(ordered, others...)\\n+\\n+\\trunes := []rune(alphabet)\\n+\\tfor i, s := range ordered {\\n+\\t\\tif i \u003e= len(runes) {\\n+\\t\\t\\tbreak\\n+\\t\\t}\\n+\\t\\tout[s.Name] = runes[i]\\n+\\t}\\n+\\treturn out\\n+}\\n+\\n+func runesToString(m map[string]rune, ordered []session) string {\\n+\\tbuf := bytes.Buffer{}\\n+\\tfor _, s := range ordered {\\n+\\t\\tr, ok := m[s.Name]\\n+\\t\\tif !ok {\\n+\\t\\t\\tcontinue\\n+\\t\\t}\\n+\\t\\tbuf.WriteRune(r)\\n+\\t}\\n+\\treturn buf.String()\\n+}\\n*** End Patch\"\n}\n```\n\n**Output:**\n```\nSuccess. Updated the following files:\nA home/waylon/git/tgo/cmd/tgo/tmux.go\n\nLSP errors detected in home/waylon/git/tgo/cmd/tgo/tmux.go, please fix:\n\u003cdiagnostics file=\"/home/waylon/git/tgo/cmd/tgo/tmux.go\"\u003e\nERROR [85:43] undefined: state\n\u003c/diagnostics\u003e\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 15.8s)\n\n_Thinking:_\n\n**Identifying need for state file**\n\n**Tool: apply_patch**\n\n**Input:**\n```json\n{\n  \"patchText\": \"*** Begin Patch\\n*** Add File: /home/waylon/git/tgo/cmd/tgo/state.go\\n+package main\\n+\\n+import (\\n+\\t\\\"encoding/json\\\"\\n+\\t\\\"errors\\\"\\n+\\t\\\"fmt\\\"\\n+\\t\\\"os\\\"\\n+\\t\\\"path/filepath\\\"\\n+)\\n+\\n+type state struct {\\n+\\tFavorites []string `json:\\\"favorites\\\"`\\n+\\tOrder     []string `json:\\\"order\\\"`\\n+}\\n+\\n+type stateStore struct {\\n+\\tpath string\\n+}\\n+\\n+func openStateStore() (*stateStore, error) {\\n+\\tconfigDir, err := os.UserConfigDir()\\n+\\tif err != nil {\\n+\\t\\treturn nil, fmt.Errorf(\\\"config dir: %w\\\", err)\\n+\\t}\\n+\\treturn \u0026stateStore{path: filepath.Join(configDir, \\\"tgo\\\", \\\"state.json\\\")}, nil\\n+}\\n+\\n+func (s *stateStore) Load() (state, error) {\\n+\\tdata, err := os.ReadFile(s.path)\\n+\\tif err != nil {\\n+\\t\\tif errors.Is(err, os.ErrNotExist) {\\n+\\t\\t\\treturn state{}, nil\\n+\\t\\t}\\n+\\t\\treturn state{}, fmt.Errorf(\\\"read state: %w\\\", err)\\n+\\t}\\n+\\n+\\tvar st state\\n+\\tif err := json.Unmarshal(data, \u0026st); err != nil {\\n+\\t\\tbak := s.path + \\\".bak\\\"\\n+\\t\\t_ = os.Rename(s.path, bak)\\n+\\t\\treturn state{}, nil\\n+\\t}\\n+\\treturn st, nil\\n+}\\n+\\n+func (s *stateStore) Save(st state) error {\\n+\\tdir := filepath.Dir(s.path)\\n+\\tif err := os.MkdirAll(dir, 0o755); err != nil {\\n+\\t\\treturn fmt.Errorf(\\\"create state dir: %w\\\", err)\\n+\\t}\\n+\\tdata, err := json.MarshalIndent(st, \\\"\\\", \\\"  \\\")\\n+\\tif err != nil {\\n+\\t\\treturn fmt.Errorf(\\\"marshal state: %w\\\", err)\\n+\\t}\\n+\\tif err := os.WriteFile(s.path, data, 0o644); err != nil {\\n+\\t\\treturn fmt.Errorf(\\\"write state: %w\\\", err)\\n+\\t}\\n+\\treturn nil\\n+}\\n+\\n+func normalizeState(st state, sessions []session) state {\\n+\\texists := make(map[string]struct{}, len(sessions))\\n+\\tfor _, s := range sessions {\\n+\\t\\texists[s.Name] = struct{}{}\\n+\\t}\\n+\\n+\\tst.Favorites = dedupeAndFilter(st.Favorites, exists)\\n+\\n+\\tfavSet := make(map[string]struct{}, len(st.Favorites))\\n+\\tfor _, name := range st.Favorites {\\n+\\t\\tfavSet[name] = struct{}{}\\n+\\t}\\n+\\n+\\tallowedOthers := make(map[string]struct{}, len(sessions)-len(st.Favorites))\\n+\\tfor _, s := range sessions {\\n+\\t\\tif _, fav := favSet[s.Name]; fav {\\n+\\t\\t\\tcontinue\\n+\\t\\t}\\n+\\t\\tallowedOthers[s.Name] = struct{}{}\\n+\\t}\\n+\\tst.Order = dedupeAndFilter(st.Order, allowedOthers)\\n+\\treturn st\\n+}\\n+\\n+func dedupeAndFilter(items []string, allowed map[string]struct{}) []string {\\n+\\tseen := map[string]struct{}{}\\n+\\tout := make([]string, 0, len(items))\\n+\\tfor _, item := range items {\\n+\\t\\tif item == \\\"\\\" {\\n+\\t\\t\\tcontinue\\n+\\t\\t}\\n+\\t\\tif _, ok := allowed[item]; !ok {\\n+\\t\\t\\tcontinue\\n+\\t\\t}\\n+\\t\\tif _, dup := seen[item]; dup {\\n+\\t\\t\\tcontinue\\n+\\t\\t}\\n+\\t\\tseen[item] = struct{}{}\\n+\\t\\tout = append(out, item)\\n+\\t}\\n+\\treturn out\\n+}\\n*** End Patch\"\n}\n```\n\n**Output:**\n```\nSuccess. Updated the following files:\nA home/waylon/git/tgo/cmd/tgo/state.go\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 57.9s)\n\n_Thinking:_\n\n**Adding tcell app file**\n\n**Tool: apply_patch**\n\n**Input:**\n```json\n{\n  \"patchText\": \"*** Begin Patch\\n*** Add File: /home/waylon/git/tgo/cmd/tgo/app.go\\n+package main\\n+\\n+import (\\n+\\t\\\"fmt\\\"\\n+\\t\\\"strings\\\"\\n+\\t\\\"time\\\"\\n+\\n+\\t\\\"github.com/gdamore/tcell/v2\\\"\\n+)\\n+\\n+type mode int\\n+\\n+const (\\n+\\tmodeNormal mode = iota\\n+\\tmodeReorder\\n+\\tmodeCreate\\n+)\\n+\\n+type app struct {\\n+\\tclient tmuxClient\\n+\\tstore  *stateStore\\n+\\n+\\tstate     state\\n+\\tsessions  []session\\n+\\tfavorites []session\\n+\\tothers    []session\\n+\\thotkeys   map[string]rune\\n+\\n+\\tsection     int\\n+\\tcursorFav   int\\n+\\tcursorOther int\\n+\\tscrollFav   int\\n+\\tscrollOther int\\n+\\n+\\tmode        mode\\n+\\tcreateInput string\\n+\\n+\\tstatus       string\\n+\\tstatusExpiry time.Time\\n+}\\n+\\n+func newApp(client tmuxClient, store *stateStore) (*app, error) {\\n+\\tst, err := store.Load()\\n+\\tif err != nil {\\n+\\t\\treturn nil, err\\n+\\t}\\n+\\ta := \u0026app{client: client, store: store, state: st}\\n+\\tif err := a.refreshSessions(); err != nil {\\n+\\t\\treturn nil, err\\n+\\t}\\n+\\treturn a, nil\\n+}\\n+\\n+func (a *app) Run() error {\\n+\\tscreen, err := tcell.NewScreen()\\n+\\tif err != nil {\\n+\\t\\treturn fmt.Errorf(\\\"create screen: %w\\\", err)\\n+\\t}\\n+\\tif err := screen.Init(); err != nil {\\n+\\t\\treturn fmt.Errorf(\\\"init screen: %w\\\", err)\\n+\\t}\\n+\\tdefer screen.Fini()\\n+\\n+\\tscreen.HideCursor()\\n+\\ta.draw(screen)\\n+\\n+\\tfor {\\n+\\t\\tev := screen.PollEvent()\\n+\\t\\tswitch e := ev.(type) {\\n+\\t\\tcase *tcell.EventResize:\\n+\\t\\t\\tscreen.Sync()\\n+\\t\\t\\ta.draw(screen)\\n+\\t\\tcase *tcell.EventKey:\\n+\\t\\t\\tdone, runSwitch := a.handleKey(e)\\n+\\t\\t\\tif runSwitch != \\\"\\\" {\\n+\\t\\t\\t\\tscreen.Fini()\\n+\\t\\t\\t\\tif err := a.client.SwitchSession(runSwitch); err != nil {\\n+\\t\\t\\t\\t\\treturn err\\n+\\t\\t\\t\\t}\\n+\\t\\t\\t\\treturn nil\\n+\\t\\t\\t}\\n+\\t\\t\\tif done {\\n+\\t\\t\\t\\treturn nil\\n+\\t\\t\\t}\\n+\\t\\t\\ta.draw(screen)\\n+\\t\\t}\\n+\\t}\\n+}\\n+\\n+func (a *app) handleKey(key *tcell.EventKey) (done bool, switchTo string) {\\n+\\tif a.mode == modeCreate {\\n+\\t\\treturn a.handleCreateKey(key)\\n+\\t}\\n+\\n+\\tif key.Key() == tcell.KeyCtrlC || key.Rune() == 'q' {\\n+\\t\\treturn true, \\\"\\\"\\n+\\t}\\n+\\n+\\tif key.Key() == tcell.KeyTab {\\n+\\t\\ta.toggleSection()\\n+\\t\\treturn false, \\\"\\\"\\n+\\t}\\n+\\n+\\tif key.Key() == tcell.KeyEnter {\\n+\\t\\tif name, ok := a.selectedName(); ok {\\n+\\t\\t\\treturn false, name\\n+\\t\\t}\\n+\\t\\treturn false, \\\"\\\"\\n+\\t}\\n+\\n+\\tif key.Key() == tcell.KeyRune {\\n+\\t\\tr := key.Rune()\\n+\\t\\tif name, ok := a.hotkeyTarget(r); ok {\\n+\\t\\t\\treturn false, name\\n+\\t\\t}\\n+\\t\\tswitch r {\\n+\\t\\tcase 'j':\\n+\\t\\t\\ta.moveDown()\\n+\\t\\tcase 'k':\\n+\\t\\t\\ta.moveUp()\\n+\\t\\tcase ' ':\\n+\\t\\t\\ta.toggleReorderMode()\\n+\\t\\tcase 'f':\\n+\\t\\t\\ta.toggleFavorite()\\n+\\t\\tcase 'x':\\n+\\t\\t\\ta.killSelected()\\n+\\t\\tcase 'n':\\n+\\t\\t\\ta.mode = modeCreate\\n+\\t\\t\\ta.createInput = \\\"\\\"\\n+\\t\\t\\ta.status = \\\"new session: type name and press Enter\\\"\\n+\\t\\t\\ta.statusExpiry = time.Time{}\\n+\\t\\tcase 'r':\\n+\\t\\t\\tif err := a.refreshSessions(); err != nil {\\n+\\t\\t\\t\\ta.setError(err)\\n+\\t\\t\\t}\\n+\\t\\t}\\n+\\t\\treturn false, \\\"\\\"\\n+\\t}\\n+\\n+\\tswitch key.Key() {\\n+\\tcase tcell.KeyUp:\\n+\\t\\ta.moveUp()\\n+\\tcase tcell.KeyDown:\\n+\\t\\ta.moveDown()\\n+\\t}\\n+\\n+\\treturn false, \\\"\\\"\\n+}\\n+\\n+func (a *app) handleCreateKey(key *tcell.EventKey) (bool, string) {\\n+\\tswitch key.Key() {\\n+\\tcase tcell.KeyEsc:\\n+\\t\\ta.mode = modeNormal\\n+\\t\\ta.setStatus(\\\"create canceled\\\")\\n+\\t\\treturn false, \\\"\\\"\\n+\\tcase tcell.KeyEnter:\\n+\\t\\tname := strings.TrimSpace(a.createInput)\\n+\\t\\tif name == \\\"\\\" {\\n+\\t\\t\\ta.setStatus(\\\"session name cannot be empty\\\")\\n+\\t\\t\\treturn false, \\\"\\\"\\n+\\t\\t}\\n+\\t\\tif err := a.client.NewSession(name); err != nil {\\n+\\t\\t\\ta.setError(err)\\n+\\t\\t\\treturn false, \\\"\\\"\\n+\\t\\t}\\n+\\t\\ta.mode = modeNormal\\n+\\t\\ta.createInput = \\\"\\\"\\n+\\t\\tif err := a.refreshSessions(); err != nil {\\n+\\t\\t\\ta.setError(err)\\n+\\t\\t\\treturn false, \\\"\\\"\\n+\\t\\t}\\n+\\t\\ta.selectByName(name)\\n+\\t\\ta.setStatus(fmt.Sprintf(\\\"created %s\\\", name))\\n+\\t\\treturn false, \\\"\\\"\\n+\\tcase tcell.KeyBackspace, tcell.KeyBackspace2:\\n+\\t\\tif len(a.createInput) \u003e 0 {\\n+\\t\\t\\ta.createInput = a.createInput[:len(a.createInput)-1]\\n+\\t\\t}\\n+\\t\\treturn false, \\\"\\\"\\n+\\tcase tcell.KeyRune:\\n+\\t\\tr := key.Rune()\\n+\\t\\tif r \u003e= 32 \u0026\u0026 r \u003c= 126 {\\n+\\t\\t\\ta.createInput += string(r)\\n+\\t\\t}\\n+\\t\\treturn false, \\\"\\\"\\n+\\tdefault:\\n+\\t\\treturn false, \\\"\\\"\\n+\\t}\\n+}\\n+\\n+func (a *app) toggleSection() {\\n+\\tif len(a.favorites) == 0 \u0026\u0026 len(a.others) == 0 {\\n+\\t\\treturn\\n+\\t}\\n+\\tif a.section == 0 {\\n+\\t\\tif len(a.others) \u003e 0 {\\n+\\t\\t\\ta.section = 1\\n+\\t\\t}\\n+\\t\\treturn\\n+\\t}\\n+\\tif len(a.favorites) \u003e 0 {\\n+\\t\\ta.section = 0\\n+\\t}\\n+}\\n+\\n+func (a *app) moveUp() {\\n+\\tif a.mode == modeReorder {\\n+\\t\\ta.reorder(-1)\\n+\\t\\treturn\\n+\\t}\\n+\\tif a.section == 0 {\\n+\\t\\tif a.cursorFav \u003e 0 {\\n+\\t\\t\\ta.cursorFav--\\n+\\t\\t}\\n+\\t\\treturn\\n+\\t}\\n+\\tif a.cursorOther \u003e 0 {\\n+\\t\\ta.cursorOther--\\n+\\t}\\n+}\\n+\\n+func (a *app) moveDown() {\\n+\\tif a.mode == modeReorder {\\n+\\t\\ta.reorder(1)\\n+\\t\\treturn\\n+\\t}\\n+\\tif a.section == 0 {\\n+\\t\\tif a.cursorFav \u003c len(a.favorites)-1 {\\n+\\t\\t\\ta.cursorFav++\\n+\\t\\t}\\n+\\t\\treturn\\n+\\t}\\n+\\tif a.cursorOther \u003c len(a.others)-1 {\\n+\\t\\ta.cursorOther++\\n+\\t}\\n+}\\n+\\n+func (a *app) toggleReorderMode() {\\n+\\tif _, ok := a.selectedName(); !ok {\\n+\\t\\treturn\\n+\\t}\\n+\\tif a.mode == modeReorder {\\n+\\t\\ta.mode = modeNormal\\n+\\t\\ta.setStatus(\\\"reorder mode off\\\")\\n+\\t\\treturn\\n+\\t}\\n+\\ta.mode = modeReorder\\n+\\ta.setStatus(\\\"reorder mode on: j/k moves selected session\\\")\\n+}\\n+\\n+func (a *app) toggleFavorite() {\\n+\\tname, ok := a.selectedName()\\n+\\tif !ok {\\n+\\t\\treturn\\n+\\t}\\n+\\n+\\tidx := indexOf(a.state.Favorites, name)\\n+\\tif idx \u003e= 0 {\\n+\\t\\ta.state.Favorites = removeAt(a.state.Favorites, idx)\\n+\\t\\ta.state.Order = append([]string{name}, a.state.Order...)\\n+\\t\\ta.setStatus(fmt.Sprintf(\\\"unfavorited %s\\\", name))\\n+\\t} else {\\n+\\t\\ta.state.Favorites = append(a.state.Favorites, name)\\n+\\t\\ta.state.Order = removeByValue(a.state.Order, name)\\n+\\t\\ta.setStatus(fmt.Sprintf(\\\"favorited %s\\\", name))\\n+\\t}\\n+\\tif err := a.persistAndRebuild(); err != nil {\\n+\\t\\ta.setError(err)\\n+\\t}\\n+}\\n+\\n+func (a *app) reorder(delta int) {\\n+\\tname, ok := a.selectedName()\\n+\\tif !ok {\\n+\\t\\treturn\\n+\\t}\\n+\\tif a.section == 0 {\\n+\\t\\tidx := indexOf(a.state.Favorites, name)\\n+\\t\\tif idx \u003c 0 {\\n+\\t\\t\\treturn\\n+\\t\\t}\\n+\\t\\tnewIdx := idx + delta\\n+\\t\\tif newIdx \u003c 0 || newIdx \u003e= len(a.state.Favorites) {\\n+\\t\\t\\treturn\\n+\\t\\t}\\n+\\t\\ta.state.Favorites[idx], a.state.Favorites[newIdx] = a.state.Favorites[newIdx], a.state.Favorites[idx]\\n+\\t\\ta.cursorFav = newIdx\\n+\\t} else {\\n+\\t\\tnames := make([]string, 0, len(a.others))\\n+\\t\\tfor _, s := range a.others {\\n+\\t\\t\\tnames = append(names, s.Name)\\n+\\t\\t}\\n+\\t\\tidx := indexOf(names, name)\\n+\\t\\tif idx \u003c 0 {\\n+\\t\\t\\treturn\\n+\\t\\t}\\n+\\t\\tnewIdx := idx + delta\\n+\\t\\tif newIdx \u003c 0 || newIdx \u003e= len(names) {\\n+\\t\\t\\treturn\\n+\\t\\t}\\n+\\t\\tnames[idx], names[newIdx] = names[newIdx], names[idx]\\n+\\t\\ta.state.Order = names\\n+\\t\\ta.cursorOther = newIdx\\n+\\t}\\n+\\tif err := a.persistAndRebuild(); err != nil {\\n+\\t\\ta.setError(err)\\n+\\t\\treturn\\n+\\t}\\n+\\ta.setStatus(\\\"priority updated\\\")\\n+}\\n+\\n+func (a *app) killSelected() {\\n+\\tname, ok := a.selectedName()\\n+\\tif !ok {\\n+\\t\\treturn\\n+\\t}\\n+\\tif err := a.client.KillSession(name); err != nil {\\n+\\t\\ta.setError(err)\\n+\\t\\treturn\\n+\\t}\\n+\\ta.state.Favorites = removeByValue(a.state.Favorites, name)\\n+\\ta.state.Order = removeByValue(a.state.Order, name)\\n+\\tif err := a.persistAndRebuild(); err != nil {\\n+\\t\\ta.setError(err)\\n+\\t\\treturn\\n+\\t}\\n+\\ta.setStatus(fmt.Sprintf(\\\"killed %s\\\", name))\\n+}\\n+\\n+func (a *app) refreshSessions() error {\\n+\\tsessions, err := a.client.ListSessions()\\n+\\tif err != nil {\\n+\\t\\treturn err\\n+\\t}\\n+\\ta.sessions = sessions\\n+\\ta.state = normalizeState(a.state, sessions)\\n+\\ta.rebuildLists()\\n+\\tif err := a.store.Save(a.state); err != nil {\\n+\\t\\treturn err\\n+\\t}\\n+\\treturn nil\\n+}\\n+\\n+func (a *app) persistAndRebuild() error {\\n+\\ta.state = normalizeState(a.state, a.sessions)\\n+\\ta.rebuildLists()\\n+\\treturn a.store.Save(a.state)\\n+}\\n+\\n+func (a *app) rebuildLists() {\\n+\\ta.favorites, a.others = orderSessions(a.sessions, a.state)\\n+\\ta.hotkeys = assignHotkeys(a.favorites, a.others, SessionHotkeyAlphabet())\\n+\\ta.clampCursors()\\n+}\\n+\\n+func (a *app) clampCursors() {\\n+\\tif a.cursorFav \u003e= len(a.favorites) {\\n+\\t\\ta.cursorFav = max(len(a.favorites)-1, 0)\\n+\\t}\\n+\\tif a.cursorOther \u003e= len(a.others) {\\n+\\t\\ta.cursorOther = max(len(a.others)-1, 0)\\n+\\t}\\n+\\tif a.section == 0 \u0026\u0026 len(a.favorites) == 0 \u0026\u0026 len(a.others) \u003e 0 {\\n+\\t\\ta.section = 1\\n+\\t}\\n+\\tif a.section == 1 \u0026\u0026 len(a.others) == 0 \u0026\u0026 len(a.favorites) \u003e 0 {\\n+\\t\\ta.section = 0\\n+\\t}\\n+}\\n+\\n+func (a *app) selectedName() (string, bool) {\\n+\\tif a.section == 0 {\\n+\\t\\tif len(a.favorites) == 0 {\\n+\\t\\t\\treturn \\\"\\\", false\\n+\\t\\t}\\n+\\t\\treturn a.favorites[a.cursorFav].Name, true\\n+\\t}\\n+\\tif len(a.others) == 0 {\\n+\\t\\treturn \\\"\\\", false\\n+\\t}\\n+\\treturn a.others[a.cursorOther].Name, true\\n+}\\n+\\n+func (a *app) hotkeyTarget(r rune) (string, bool) {\\n+\\tfor name, key := range a.hotkeys {\\n+\\t\\tif key == r {\\n+\\t\\t\\treturn name, true\\n+\\t\\t}\\n+\\t}\\n+\\treturn \\\"\\\", false\\n+}\\n+\\n+func (a *app) selectByName(name string) {\\n+\\tif idx := indexSession(a.favorites, name); idx \u003e= 0 {\\n+\\t\\ta.section = 0\\n+\\t\\ta.cursorFav = idx\\n+\\t\\treturn\\n+\\t}\\n+\\tif idx := indexSession(a.others, name); idx \u003e= 0 {\\n+\\t\\ta.section = 1\\n+\\t\\ta.cursorOther = idx\\n+\\t}\\n+}\\n+\\n+func (a *app) setStatus(msg string) {\\n+\\ta.status = msg\\n+\\ta.statusExpiry = time.Now().Add(4 * time.Second)\\n+}\\n+\\n+func (a *app) setError(err error) {\\n+\\ta.status = \\\"error: \\\" + err.Error()\\n+\\ta.statusExpiry = time.Now().Add(8 * time.Second)\\n+}\\n+\\n+func (a *app) visibleStatus() string {\\n+\\tif a.status == \\\"\\\" {\\n+\\t\\treturn \\\"\\\"\\n+\\t}\\n+\\tif a.statusExpiry.IsZero() || time.Now().Before(a.statusExpiry) {\\n+\\t\\treturn a.status\\n+\\t}\\n+\\ta.status = \\\"\\\"\\n+\\treturn \\\"\\\"\\n+}\\n+\\n+func indexSession(sessions []session, name string) int {\\n+\\tfor i, s := range sessions {\\n+\\t\\tif s.Name == name {\\n+\\t\\t\\treturn i\\n+\\t\\t}\\n+\\t}\\n+\\treturn -1\\n+}\\n+\\n+func indexOf(items []string, target string) int {\\n+\\tfor i, item := range items {\\n+\\t\\tif item == target {\\n+\\t\\t\\treturn i\\n+\\t\\t}\\n+\\t}\\n+\\treturn -1\\n+}\\n+\\n+func removeAt(items []string, idx int) []string {\\n+\\tout := make([]string, 0, len(items)-1)\\n+\\tout = append(out, items[:idx]...)\\n+\\tout = append(out, items[idx+1:]...)\\n+\\treturn out\\n+}\\n+\\n+func removeByValue(items []string, target string) []string {\\n+\\tout := make([]string, 0, len(items))\\n+\\tfor _, item := range items {\\n+\\t\\tif item == target {\\n+\\t\\t\\tcontinue\\n+\\t\\t}\\n+\\t\\tout = append(out, item)\\n+\\t}\\n+\\treturn out\\n+}\\n+\\n+func max(a int, b int) int {\\n+\\tif a \u003e b {\\n+\\t\\treturn a\\n+\\t}\\n+\\treturn b\\n+}\\n*** End Patch\"\n}\n```\n\n**Output:**\n```\nSuccess. Updated the following files:\nA home/waylon/git/tgo/cmd/tgo/app.go\n\nLSP errors detected in home/waylon/git/tgo/cmd/tgo/app.go, please fix:\n\u003cdiagnostics file=\"/home/waylon/git/tgo/cmd/tgo/app.go\"\u003e\nERROR [8:2] could not import github.com/gdamore/tcell/v2 (no required module provides package \"github.com/gdamore/tcell/v2\")\nERROR [55:17] undefined: tcell\nERROR [65:4] a.draw undefined (type *app has no field or method draw)\nERROR [70:9] undefined: tcell\nERROR [72:6] a.draw undefined (type *app has no field or method draw)\nERROR [73:9] undefined: tcell\nERROR [85:6] a.draw undefined (type *app has no field or method draw)\nERROR [90:30] undefined: tcell\nERROR [95:18] undefined: tcell\nERROR [99:18] undefined: tcell\nERROR [104:18] undefined: tcell\nERROR [111:18] undefined: tcell\nERROR [141:7] undefined: tcell\nERROR [143:7] undefined: tcell\nERROR [150:36] undefined: tcell\nERROR [152:7] undefined: tcell\nERROR [156:7] undefined: tcell\nERROR [175:7] undefined: tcell\nERROR [175:27] undefined: tcell\nERROR [180:7] undefined: tcell\n\u003c/diagnostics\u003e\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 20.9s)\n\n_Thinking:_\n\n**Creating view file and adding dependency**\n\n**Tool: apply_patch**\n\n**Input:**\n```json\n{\n  \"patchText\": \"*** Begin Patch\\n*** Add File: /home/waylon/git/tgo/cmd/tgo/view.go\\n+package main\\n+\\n+import (\\n+\\t\\\"fmt\\\"\\n+\\t\\\"strings\\\"\\n+\\n+\\t\\\"github.com/gdamore/tcell/v2\\\"\\n+)\\n+\\n+func (a *app) draw(screen tcell.Screen) {\\n+\\twidth, height := screen.Size()\\n+\\tscreen.Clear()\\n+\\n+\\theaderStyle := tcell.StyleDefault.Foreground(tcell.ColorAqua).Bold(true)\\n+\\thelpStyle := tcell.StyleDefault.Foreground(tcell.ColorGray)\\n+\\tstatusStyle := tcell.StyleDefault.Foreground(tcell.ColorGreen)\\n+\\terrorStyle := tcell.StyleDefault.Foreground(tcell.ColorRed)\\n+\\n+\\tline := 0\\n+\\ta.drawText(screen, 0, line, headerStyle, \\\"tgo - tmux session switcher\\\")\\n+\\tline++\\n+\\n+\\thelp := \\\"[letters] switch  [j/k or arrows] move  [tab] section  [space] reorder  [f] favorite  [n] new  [x] kill  [r] refresh  [enter] switch  [q] quit\\\"\\n+\\ta.drawText(screen, 0, line, helpStyle, truncate(help, width))\\n+\\tline++\\n+\\n+\\tif a.mode == modeCreate {\\n+\\t\\tprompt := \\\"new session name: \\\" + a.createInput\\n+\\t\\ta.drawText(screen, 0, line, tcell.StyleDefault.Foreground(tcell.ColorYellow), truncate(prompt, width))\\n+\\t\\tline++\\n+\\t}\\n+\\n+\\tline = a.drawSection(screen, line, width, height, \\\"Favorites\\\", a.favorites, a.cursorFav, a.section == 0)\\n+\\tline = a.drawSection(screen, line, width, height, \\\"Others\\\", a.others, a.cursorOther, a.section == 1)\\n+\\n+\\tstatus := a.visibleStatus()\\n+\\tif status != \\\"\\\" {\\n+\\t\\tstyle := statusStyle\\n+\\t\\tif strings.HasPrefix(status, \\\"error:\\\") {\\n+\\t\\t\\tstyle = errorStyle\\n+\\t\\t}\\n+\\t\\ta.drawText(screen, 0, height-1, style, truncate(status, width))\\n+\\t}\\n+\\n+\\tscreen.Show()\\n+}\\n+\\n+func (a *app) drawSection(screen tcell.Screen, y int, width int, height int, title string, rows []session, cursor int, active bool) int {\\n+\\tif y \u003e= height-1 {\\n+\\t\\treturn y\\n+\\t}\\n+\\n+\\ttitleStyle := tcell.StyleDefault.Foreground(tcell.ColorWhite)\\n+\\tif active {\\n+\\t\\ttitleStyle = titleStyle.Bold(true).Foreground(tcell.ColorBlue)\\n+\\t}\\n+\\ta.drawText(screen, 0, y, titleStyle, fmt.Sprintf(\\\"%s (%d)\\\", title, len(rows)))\\n+\\ty++\\n+\\n+\\tif len(rows) == 0 {\\n+\\t\\ta.drawText(screen, 2, y, tcell.StyleDefault.Foreground(tcell.ColorGray), \\\"- no sessions -\\\")\\n+\\t\\treturn y + 1\\n+\\t}\\n+\\n+\\tavailable := max((height-1)-y, 1)\\n+\\tif cursor \u003c 0 {\\n+\\t\\tcursor = 0\\n+\\t}\\n+\\tstart := 0\\n+\\tif cursor \u003e= available {\\n+\\t\\tstart = cursor - available + 1\\n+\\t}\\n+\\tend := min(start+available, len(rows))\\n+\\n+\\tfor i := start; i \u003c end; i++ {\\n+\\t\\tif y \u003e= height-1 {\\n+\\t\\t\\tbreak\\n+\\t\\t}\\n+\\t\\ts := rows[i]\\n+\\t\\tkeyLabel := \\\" \\\"\\n+\\t\\tif r, ok := a.hotkeys[s.Name]; ok {\\n+\\t\\t\\tkeyLabel = string(r)\\n+\\t\\t}\\n+\\t\\tattached := \\\" \\\"\\n+\\t\\tif s.Attached {\\n+\\t\\t\\tattached = \\\"*\\\"\\n+\\t\\t}\\n+\\t\\tprefix := \\\"  \\\"\\n+\\t\\tstyle := tcell.StyleDefault\\n+\\t\\tif i == cursor \u0026\u0026 active {\\n+\\t\\t\\tprefix = \\\"\u003e \\\"\\n+\\t\\t\\tstyle = style.Background(tcell.ColorGray).Foreground(tcell.ColorBlack)\\n+\\t\\t}\\n+\\t\\tif a.mode == modeReorder \u0026\u0026 i == cursor \u0026\u0026 active {\\n+\\t\\t\\tstyle = style.Background(tcell.ColorYellow).Foreground(tcell.ColorBlack)\\n+\\t\\t}\\n+\\t\\trow := fmt.Sprintf(\\\"%s[%s] %s %s\\\", prefix, keyLabel, attached, s.Name)\\n+\\t\\ta.drawText(screen, 0, y, style, truncate(row, width))\\n+\\t\\ty++\\n+\\t}\\n+\\n+\\treturn y\\n+}\\n+\\n+func (a *app) drawText(screen tcell.Screen, x int, y int, style tcell.Style, text string) {\\n+\\tfor _, r := range text {\\n+\\t\\tscreen.SetContent(x, y, r, nil, style)\\n+\\t\\tx++\\n+\\t}\\n+}\\n+\\n+func truncate(text string, width int) string {\\n+\\tif width \u003c= 0 {\\n+\\t\\treturn \\\"\\\"\\n+\\t}\\n+\\trunes := []rune(text)\\n+\\tif len(runes) \u003c= width {\\n+\\t\\treturn text\\n+\\t}\\n+\\tif width == 1 {\\n+\\t\\treturn \\\"…\\\"\\n+\\t}\\n+\\treturn string(runes[:width-1]) + \\\"…\\\"\\n+}\\n+\\n+func min(a int, b int) int {\\n+\\tif a \u003c b {\\n+\\t\\treturn a\\n+\\t}\\n+\\treturn b\\n+}\\n*** End Patch\"\n}\n```\n\n**Output:**\n```\nSuccess. Updated the following files:\nA home/waylon/git/tgo/cmd/tgo/view.go\n\nLSP errors detected in home/waylon/git/tgo/cmd/tgo/view.go, please fix:\n\u003cdiagnostics file=\"/home/waylon/git/tgo/cmd/tgo/view.go\"\u003e\nERROR [10:27] undefined: tcell\nERROR [14:17] undefined: tcell\nERROR [14:47] undefined: tcell\nERROR [15:15] undefined: tcell\nERROR [15:45] undefined: tcell\nERROR [16:17] undefined: tcell\nERROR [16:47] undefined: tcell\nERROR [17:16] undefined: tcell\nERROR [17:46] undefined: tcell\nERROR [29:31] undefined: tcell\nERROR [29:61] undefined: tcell\nERROR [48:34] undefined: tcell\nERROR [53:16] undefined: tcell\nERROR [53:46] undefined: tcell\nERROR [55:49] undefined: tcell\nERROR [61:28] undefined: tcell\nERROR [61:58] undefined: tcell\nERROR [89:12] undefined: tcell\nERROR [92:29] undefined: tcell\nERROR [92:57] undefined: tcell\n... and 4 more\n\u003c/diagnostics\u003e\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 5.3s)\n\n_Thinking:_\n\n**Running dependencies update**\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"go get github.com/gdamore/tcell/v2 \u0026\u0026 go mod tidy\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Adds tcell dependency and tidies module\"\n}\n```\n\n**Output:**\n```\ngo: downloading github.com/gdamore/tcell/v2 v2.13.8\ngo: downloading github.com/gdamore/tcell v1.4.1\ngo: downloading golang.org/x/text v0.31.0\ngo: downloading golang.org/x/term v0.37.0\ngo: upgraded go 1.22 =\u003e 1.24.0\ngo: added github.com/gdamore/encoding v1.0.1\ngo: added github.com/gdamore/tcell/v2 v2.13.8\ngo: added github.com/lucasb-eyer/go-colorful v1.3.0\ngo: added github.com/rivo/uniseg v0.4.7\ngo: added golang.org/x/sys v0.38.0\ngo: added golang.org/x/term v0.37.0\ngo: added golang.org/x/text v0.31.0\n\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 2.2s)\n\n_Thinking:_\n\n**Assessing Go version upgrade**\n\n**Tool: read**\n\n**Input:**\n```json\n{\n  \"filePath\": \"/home/waylon/git/tgo/go.mod\"\n}\n```\n\n**Output:**\n```\n\u003cpath\u003e/home/waylon/git/tgo/go.mod\u003c/path\u003e\n\u003ctype\u003efile\u003c/type\u003e\n\u003ccontent\u003e1: module tgo\n2: \n3: go 1.24.0\n4: \n5: require github.com/gdamore/tcell/v2 v2.13.8\n6: \n7: require (\n8: \tgithub.com/gdamore/encoding v1.0.1 // indirect\n9: \tgithub.com/lucasb-eyer/go-colorful v1.3.0 // indirect\n10: \tgithub.com/rivo/uniseg v0.4.7 // indirect\n11: \tgolang.org/x/sys v0.38.0 // indirect\n12: \tgolang.org/x/term v0.37.0 // indirect\n13: \tgolang.org/x/text v0.31.0 // indirect\n14: )\n\n(End of file - total 14 lines)\n\u003c/content\u003e\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 9.9s)\n\n_Thinking:_\n\n**Planning Go version and lint fixes**\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"go test ./...\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Runs tests to check compilation\"\n}\n```\n\n**Output:**\n```\nok  \ttgo/cmd/tgo\t0.002s\n\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 10.8s)\n\n_Thinking:_\n\n**Planning input handling fixes**\n\n**Tool: apply_patch**\n\n**Input:**\n```json\n{\n  \"patchText\": \"*** Begin Patch\\n*** Update File: /home/waylon/git/tgo/cmd/tgo/app.go\\n@@\\n import (\\n \\t\\\"fmt\\\"\\n \\t\\\"strings\\\"\\n \\t\\\"time\\\"\\n+\\t\\\"unicode\\\"\\n@@\\n \\tcursorFav   int\\n \\tcursorOther int\\n-\\tscrollFav   int\\n-\\tscrollOther int\\n@@\\n-\\tif key.Key() == tcell.KeyCtrlC || key.Rune() == 'q' {\\n+\\tif key.Key() == tcell.KeyCtrlC || key.Key() == tcell.KeyEscape {\\n \\t\\treturn true, \\\"\\\"\\n \\t}\\n@@\\n \\tif key.Key() == tcell.KeyRune {\\n-\\t\\tr := key.Rune()\\n+\\t\\tr := unicode.ToLower(key.Rune())\\n*** End Patch\"\n}\n```\n\n**Output:**\n```\nSuccess. Updated the following files:\nM home/waylon/git/tgo/cmd/tgo/app.go\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 3.8s)\n\n_Thinking:_\n\n**Updating quit hotkey in help text**\n\n**Tool: apply_patch**\n\n**Input:**\n```json\n{\n  \"patchText\": \"*** Begin Patch\\n*** Update File: /home/waylon/git/tgo/cmd/tgo/view.go\\n@@\\n-\\thelp := \\\"[letters] switch  [j/k or arrows] move  [tab] section  [space] reorder  [f] favorite  [n] new  [x] kill  [r] refresh  [enter] switch  [q] quit\\\"\\n+\\thelp := \\\"[letters] switch  [j/k or arrows] move  [tab] section  [space] reorder  [f] favorite  [n] new  [x] kill  [r] refresh  [enter] switch  [esc/ctrl+c] quit\\\"\\n*** End Patch\"\n}\n```\n\n**Output:**\n```\nSuccess. Updated the following files:\nM home/waylon/git/tgo/cmd/tgo/view.go\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 19.4s)\n\n_Thinking:_\n\n**Planning focused unit tests**\n\n**Tool: apply_patch**\n\n**Input:**\n```json\n{\n  \"patchText\": \"*** Begin Patch\\n*** Add File: /home/waylon/git/tgo/cmd/tgo/logic_test.go\\n+package main\\n+\\n+import (\\n+\\t\\\"reflect\\\"\\n+\\t\\\"testing\\\"\\n+)\\n+\\n+func TestNormalizeState(t *testing.T) {\\n+\\tsessions := []session{{Name: \\\"api\\\"}, {Name: \\\"web\\\"}, {Name: \\\"db\\\"}}\\n+\\tst := state{\\n+\\t\\tFavorites: []string{\\\"web\\\", \\\"web\\\", \\\"missing\\\", \\\"api\\\"},\\n+\\t\\tOrder:     []string{\\\"db\\\", \\\"api\\\", \\\"missing\\\", \\\"db\\\"},\\n+\\t}\\n+\\n+\\tgot := normalizeState(st, sessions)\\n+\\n+\\tif !reflect.DeepEqual(got.Favorites, []string{\\\"web\\\", \\\"api\\\"}) {\\n+\\t\\tt.Fatalf(\\\"favorites mismatch: got %v\\\", got.Favorites)\\n+\\t}\\n+\\tif !reflect.DeepEqual(got.Order, []string{\\\"db\\\"}) {\\n+\\t\\tt.Fatalf(\\\"order mismatch: got %v\\\", got.Order)\\n+\\t}\\n+}\\n+\\n+func TestOrderSessions(t *testing.T) {\\n+\\tsessions := []session{{Name: \\\"api\\\"}, {Name: \\\"web\\\"}, {Name: \\\"db\\\"}, {Name: \\\"docs\\\"}}\\n+\\tst := state{\\n+\\t\\tFavorites: []string{\\\"web\\\", \\\"api\\\"},\\n+\\t\\tOrder:     []string{\\\"docs\\\", \\\"db\\\"},\\n+\\t}\\n+\\n+\\tfavorites, others := orderSessions(sessions, st)\\n+\\n+\\tif got := names(favorites); !reflect.DeepEqual(got, []string{\\\"web\\\", \\\"api\\\"}) {\\n+\\t\\tt.Fatalf(\\\"favorites order mismatch: got %v\\\", got)\\n+\\t}\\n+\\tif got := names(others); !reflect.DeepEqual(got, []string{\\\"docs\\\", \\\"db\\\"}) {\\n+\\t\\tt.Fatalf(\\\"others order mismatch: got %v\\\", got)\\n+\\t}\\n+}\\n+\\n+func TestAssignHotkeys(t *testing.T) {\\n+\\tfavorites := []session{{Name: \\\"web\\\"}, {Name: \\\"api\\\"}}\\n+\\tothers := []session{{Name: \\\"db\\\"}, {Name: \\\"docs\\\"}}\\n+\\n+\\tgot := assignHotkeys(favorites, others, SessionHotkeyAlphabet())\\n+\\n+\\tassertHotkey(t, got, \\\"web\\\", 'a')\\n+\\tassertHotkey(t, got, \\\"api\\\", 's')\\n+\\tassertHotkey(t, got, \\\"db\\\", 'd')\\n+\\tassertHotkey(t, got, \\\"docs\\\", 'f')\\n+}\\n+\\n+func TestAssignHotkeysLimit(t *testing.T) {\\n+\\talpha := \\\"as\\\"\\n+\\tfavorites := []session{{Name: \\\"one\\\"}}\\n+\\tothers := []session{{Name: \\\"two\\\"}, {Name: \\\"three\\\"}}\\n+\\n+\\tgot := assignHotkeys(favorites, others, alpha)\\n+\\n+\\tassertHotkey(t, got, \\\"one\\\", 'a')\\n+\\tassertHotkey(t, got, \\\"two\\\", 's')\\n+\\tif _, ok := got[\\\"three\\\"]; ok {\\n+\\t\\tt.Fatalf(\\\"expected no hotkey for third session\\\")\\n+\\t}\\n+}\\n+\\n+func names(sessions []session) []string {\\n+\\tout := make([]string, 0, len(sessions))\\n+\\tfor _, s := range sessions {\\n+\\t\\tout = append(out, s.Name)\\n+\\t}\\n+\\treturn out\\n+}\\n+\\n+func assertHotkey(t *testing.T, got map[string]rune, name string, expected rune) {\\n+\\tt.Helper()\\n+\\tif got[name] != expected {\\n+\\t\\tt.Fatalf(\\\"hotkey mismatch for %s: got %q want %q\\\", name, got[name], expected)\\n+\\t}\\n+}\\n*** End Patch\"\n}\n```\n\n**Output:**\n```\nSuccess. Updated the following files:\nA home/waylon/git/tgo/cmd/tgo/logic_test.go\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 19.1s)\n\n_Thinking:_\n\n**Planning README rewrite**\n\n**Tool: apply_patch**\n\n**Input:**\n```json\n{\n  \"patchText\": \"*** Begin Patch\\n*** Update File: /home/waylon/git/tgo/README.md\\n@@\\n-# tgo\\n-\\n-tgo is a tmux session switcher optimized for speed and predictability. It runs inside a tmux popup or terminal, draws the active sessions, highlights favorites, and lets you switch with a single letter after opening (two keystrokes overall). The focus is low latency: the popup hotkey triggers `tgo`, and the keyboard-only UI assumes tmux-level terminal performance and responsive layouts.\\n-\\n-## UX guidance\\n-\\n-- **Two-keystroke flow**: Press the tmux popup hotkey, then tap the letter mapped to the target session. No arrow navigation, no typing a name twice.\\n-- **Key map**: `asdf qwert zxcvb` serves as the ordered list of hotkeys. Favorites are pinned to the top of the list so that letters stay stable even when promting terminals resize.\\n-- **Sizing**: `tgo` will render the session list responsively so that both narrow popups and larger terminals remain usable—critical for tmux popup contexts.\\n-\\n-## Architecture notes\\n-\\n-- `cmd/tgo` contains the CLI entry point and will orchestrate session discovery, layout, and rendering logic.\\n-- Session data comes from tmux via shell calls (placeholder now), with an overlay layer for the favorites list and letter assignment.\\n-- UI rendering will target the terminal/popup dimensions reported by tmux, keeping control loops synchronous so the hotkey response stays within one frame.\\n-\\n-## Local workflow (using `just`)\\n-\\n-1. Install [just](https://github.com/casey/just) if missing.\\n-2. `just fmt` to format Go files.\\n-3. `just lint` to run `golangci-lint` if it is installed (falls back to a warning otherwise).\\n-4. `just test` to exercise the package.\\n-5. `just build` produces `bin/tgo` under the repository root.\\n-6. `just run` executes the CLI locally.\\n-7. `just tidy` keeps `go.mod` and `go.sum` neat.\\n-8. `just ci` runs `fmt`, `lint`, and `test` in sequence for a quick check before pushing.\\n-\\n-## Example tmux binding\\n-\\n-```tmux\\n-bind-key q run-shell \\\"tmux popup -E 'tgo'\\\"\\n-```\\n-\\n-This binding opens a popup that immediately starts `tgo`, letting you press one of the letters from `asdfqwertzxcvb` to jump to the desired session.\\n+# tgo\\n+\\n+`tgo` is a fast tmux session switcher built for popup workflows.\\n+\\n+The core flow is two keystrokes:\\n+\\n+1. open `tgo` in a tmux popup from a tmux key binding\\n+2. press the session letter and switch instantly\\n+\\n+`tgo` lists tmux sessions, pins favorites at the top, and keeps hotkeys stable by priority.\\n+\\n+## Features\\n+\\n+- responsive terminal UI that works in standard terminals and tmux popups\\n+- direct switch hotkeys using `asdfqwertzxcvb`\\n+- favorite pinning with favorites always rendered first\\n+- reorder mode (`space` + `j/k` or arrows) to change session priority and hotkey assignment\\n+- tmux session management from the UI: create (`n`) and kill (`x`)\\n+\\n+## Keymap\\n+\\n+- `asdfqwertzxcvb`: switch directly to listed session\\n+- `j/k` or arrow keys: move cursor\\n+- `tab`: switch active section (`Favorites` / `Others`)\\n+- `space`: toggle reorder mode for selected session\\n+- `enter`: switch to selected session\\n+- `f`: toggle favorite on selected session\\n+- `n`: create new tmux session (type name, `enter`)\\n+- `x`: kill selected tmux session\\n+- `r`: refresh tmux session list\\n+- `esc` or `ctrl+c`: quit\\n+\\n+## tmux popup binding\\n+\\n+```tmux\\n+bind-key g display-popup -E -w 70% -h 70% \\\"tgo\\\"\\n+```\\n+\\n+Pick any key you want instead of `g`.\\n+\\n+## State storage\\n+\\n+`tgo` stores favorites and non-favorite ordering in:\\n+\\n+- `~/.config/tgo/state.json`\\n+\\n+Missing or stale sessions are automatically removed from saved state.\\n+\\n+## Local development\\n+\\n+1. Install [just](https://github.com/casey/just)\\n+2. Run `just build` to produce `bin/tgo`\\n+3. Run `just run` inside tmux to use the app\\n+4. Run `just ci` before pushing changes\\n+\\n+## Notes\\n+\\n+- `tgo` expects a running tmux server and a tmux client context.\\n+- switching is implemented with `tmux switch-client -t \u003csession\u003e`.\\n*** End Patch\"\n}\n```\n\n**Output:**\n```\nSuccess. Updated the following files:\nM home/waylon/git/tgo/README.md\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 5.1s)\n\n_Thinking:_\n\n**Updating changelog**\n\n**Tool: apply_patch**\n\n**Input:**\n```json\n{\n  \"patchText\": \"*** Begin Patch\\n*** Update File: /home/waylon/git/tgo/CHANGELOG.md\\n@@\\n ## [Unreleased]\\n \\n ### Added\\n-- base Go module, CLI entry point, and placeholder session hotkey collection.\\n-- `justfile` with formatter, lint, test, build, run, tidy, and CI recipes.\\n-- `README.md` describing the command, UX goal, architecture notes, tmux binding, and local workflow.\\n-- `CHANGELOG.md` initial structure plus README and changelog.\\n-- GitHub workflows for CI, dependency updates, and release automation, along with cross-platform binary packaging and checksums.\\n+- interactive TUI built with `tcell`, including responsive rendering for tmux popup usage.\\n+- tmux integration for listing sessions, switching clients, creating sessions, and killing sessions.\\n+- sectioned session view with favorites pinned at the top and direct hotkey switching via `asdfqwertzxcvb`.\\n+- reorder mode (`space` + `j/k` or arrows) to change session priority and hotkey assignment.\\n+- persisted state file at `~/.config/tgo/state.json` with normalization for removed/stale sessions.\\n+- unit tests for ordering, normalization, and hotkey assignment logic.\\n*** End Patch\"\n}\n```\n\n**Output:**\n```\nSuccess. Updated the following files:\nM home/waylon/git/tgo/CHANGELOG.md\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 4.5s)\n\n_Thinking:_\n\n**Updating CI Go version and release workflow**\n\n**Tool: apply_patch**\n\n**Input:**\n```json\n{\n  \"patchText\": \"*** Begin Patch\\n*** Update File: /home/waylon/git/tgo/.github/workflows/ci.yml\\n@@\\n       - name: Set up Go\\n         uses: actions/setup-go@v5\\n         with:\\n-          go-version: 1.22\\n+          go-version: 1.24\\n*** End Patch\"\n}\n```\n\n**Output:**\n```\nSuccess. Updated the following files:\nM home/waylon/git/tgo/.github/workflows/ci.yml\n```\n\n**Tool: apply_patch**\n\n**Input:**\n```json\n{\n  \"patchText\": \"*** Begin Patch\\n*** Update File: /home/waylon/git/tgo/.github/workflows/release.yml\\n@@\\n       - name: Set up Go\\n         uses: actions/setup-go@v5\\n         with:\\n-          go-version: 1.22\\n+          go-version: 1.24\\n*** End Patch\"\n}\n```\n\n**Output:**\n```\nSuccess. Updated the following files:\nM home/waylon/git/tgo/.github/workflows/release.yml\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 3.9s)\n\n_Thinking:_\n\n**Running gofmt and tests**\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"gofmt -w ./cmd/tgo/*.go \u0026\u0026 go test ./...\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Formats Go files and runs tests\"\n}\n```\n\n**Output:**\n```\nok  \ttgo/cmd/tgo\t0.003s\n\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 4.7s)\n\n_Thinking:_\n\n**Planning sequential test updates**\n\n**Tool: todowrite**\n\n**Input:**\n```json\n{\n  \"todos\": [\n    {\n      \"content\": \"Inspect current tgo scaffold and define concrete TUI/session management architecture\",\n      \"status\": \"completed\",\n      \"priority\": \"high\"\n    },\n    {\n      \"content\": \"Implement tmux integration and persistent state (favorites/order)\",\n      \"status\": \"completed\",\n      \"priority\": \"high\"\n    },\n    {\n      \"content\": \"Implement interactive TUI with navigation, section switching, hotkeys, and reorder mode\",\n      \"status\": \"completed\",\n      \"priority\": \"high\"\n    },\n    {\n      \"content\": \"Update README with implemented behavior and usage\",\n      \"status\": \"completed\",\n      \"priority\": \"medium\"\n    },\n    {\n      \"content\": \"Add/expand tests for key mapping, ordering, and state normalization\",\n      \"status\": \"completed\",\n      \"priority\": \"medium\"\n    },\n    {\n      \"content\": \"Run formatting and tests to validate full functionality\",\n      \"status\": \"completed\",\n      \"priority\": \"high\"\n    }\n  ]\n}\n```\n\n**Output:**\n```\n[\n  {\n    \"content\": \"Inspect current tgo scaffold and define concrete TUI/session management architecture\",\n    \"status\": \"completed\",\n    \"priority\": \"high\"\n  },\n  {\n    \"content\": \"Implement tmux integration and persistent state (favorites/order)\",\n    \"status\": \"completed\",\n    \"priority\": \"high\"\n  },\n  {\n    \"content\": \"Implement interactive TUI with navigation, section switching, hotkeys, and reorder mode\",\n    \"status\": \"completed\",\n    \"priority\": \"high\"\n  },\n  {\n    \"content\": \"Update README with implemented behavior and usage\",\n    \"status\": \"completed\",\n    \"priority\": \"medium\"\n  },\n  {\n    \"content\": \"Add/expand tests for key mapping, ordering, and state normalization\",\n    \"status\": \"completed\",\n    \"priority\": \"medium\"\n  },\n  {\n    \"content\": \"Run formatting and tests to validate full functionality\",\n    \"status\": \"completed\",\n    \"priority\": \"high\"\n  }\n]\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 4.2s)\n\n_Thinking:_\n\n**Reviewing main application code**\n\n**Tool: read**\n\n**Input:**\n```json\n{\n  \"filePath\": \"/home/waylon/git/tgo/cmd/tgo/app.go\"\n}\n```\n\n**Output:**\n```\n\u003cpath\u003e/home/waylon/git/tgo/cmd/tgo/app.go\u003c/path\u003e\n\u003ctype\u003efile\u003c/type\u003e\n\u003ccontent\u003e1: package main\n2: \n3: import (\n4: \t\"fmt\"\n5: \t\"strings\"\n6: \t\"time\"\n7: \t\"unicode\"\n8: \n9: \t\"github.com/gdamore/tcell/v2\"\n10: )\n11: \n12: type mode int\n13: \n14: const (\n15: \tmodeNormal mode = iota\n16: \tmodeReorder\n17: \tmodeCreate\n18: )\n19: \n20: type app struct {\n21: \tclient tmuxClient\n22: \tstore  *stateStore\n23: \n24: \tstate     state\n25: \tsessions  []session\n26: \tfavorites []session\n27: \tothers    []session\n28: \thotkeys   map[string]rune\n29: \n30: \tsection     int\n31: \tcursorFav   int\n32: \tcursorOther int\n33: \n34: \tmode        mode\n35: \tcreateInput string\n36: \n37: \tstatus       string\n38: \tstatusExpiry time.Time\n39: }\n40: \n41: func newApp(client tmuxClient, store *stateStore) (*app, error) {\n42: \tst, err := store.Load()\n43: \tif err != nil {\n44: \t\treturn nil, err\n45: \t}\n46: \ta := \u0026app{client: client, store: store, state: st}\n47: \tif err := a.refreshSessions(); err != nil {\n48: \t\treturn nil, err\n49: \t}\n50: \treturn a, nil\n51: }\n52: \n53: func (a *app) Run() error {\n54: \tscreen, err := tcell.NewScreen()\n55: \tif err != nil {\n56: \t\treturn fmt.Errorf(\"create screen: %w\", err)\n57: \t}\n58: \tif err := screen.Init(); err != nil {\n59: \t\treturn fmt.Errorf(\"init screen: %w\", err)\n60: \t}\n61: \tdefer screen.Fini()\n62: \n63: \tscreen.HideCursor()\n64: \ta.draw(screen)\n65: \n66: \tfor {\n67: \t\tev := screen.PollEvent()\n68: \t\tswitch e := ev.(type) {\n69: \t\tcase *tcell.EventResize:\n70: \t\t\tscreen.Sync()\n71: \t\t\ta.draw(screen)\n72: \t\tcase *tcell.EventKey:\n73: \t\t\tdone, runSwitch := a.handleKey(e)\n74: \t\t\tif runSwitch != \"\" {\n75: \t\t\t\tscreen.Fini()\n76: \t\t\t\tif err := a.client.SwitchSession(runSwitch); err != nil {\n77: \t\t\t\t\treturn err\n78: \t\t\t\t}\n79: \t\t\t\treturn nil\n80: \t\t\t}\n81: \t\t\tif done {\n82: \t\t\t\treturn nil\n83: \t\t\t}\n84: \t\t\ta.draw(screen)\n85: \t\t}\n86: \t}\n87: }\n88: \n89: func (a *app) handleKey(key *tcell.EventKey) (done bool, switchTo string) {\n90: \tif a.mode == modeCreate {\n91: \t\treturn a.handleCreateKey(key)\n92: \t}\n93: \n94: \tif key.Key() == tcell.KeyCtrlC || key.Key() == tcell.KeyEscape {\n95: \t\treturn true, \"\"\n96: \t}\n97: \n98: \tif key.Key() == tcell.KeyTab {\n99: \t\ta.toggleSection()\n100: \t\treturn false, \"\"\n101: \t}\n102: \n103: \tif key.Key() == tcell.KeyEnter {\n104: \t\tif name, ok := a.selectedName(); ok {\n105: \t\t\treturn false, name\n106: \t\t}\n107: \t\treturn false, \"\"\n108: \t}\n109: \n110: \tif key.Key() == tcell.KeyRune {\n111: \t\tr := unicode.ToLower(key.Rune())\n112: \t\tif name, ok := a.hotkeyTarget(r); ok {\n113: \t\t\treturn false, name\n114: \t\t}\n115: \t\tswitch r {\n116: \t\tcase 'j':\n117: \t\t\ta.moveDown()\n118: \t\tcase 'k':\n119: \t\t\ta.moveUp()\n120: \t\tcase ' ':\n121: \t\t\ta.toggleReorderMode()\n122: \t\tcase 'f':\n123: \t\t\ta.toggleFavorite()\n124: \t\tcase 'x':\n125: \t\t\ta.killSelected()\n126: \t\tcase 'n':\n127: \t\t\ta.mode = modeCreate\n128: \t\t\ta.createInput = \"\"\n129: \t\t\ta.status = \"new session: type name and press Enter\"\n130: \t\t\ta.statusExpiry = time.Time{}\n131: \t\tcase 'r':\n132: \t\t\tif err := a.refreshSessions(); err != nil {\n133: \t\t\t\ta.setError(err)\n134: \t\t\t}\n135: \t\t}\n136: \t\treturn false, \"\"\n137: \t}\n138: \n139: \tswitch key.Key() {\n140: \tcase tcell.KeyUp:\n141: \t\ta.moveUp()\n142: \tcase tcell.KeyDown:\n143: \t\ta.moveDown()\n144: \t}\n145: \n146: \treturn false, \"\"\n147: }\n148: \n149: func (a *app) handleCreateKey(key *tcell.EventKey) (bool, string) {\n150: \tswitch key.Key() {\n151: \tcase tcell.KeyEsc:\n152: \t\ta.mode = modeNormal\n153: \t\ta.setStatus(\"create canceled\")\n154: \t\treturn false, \"\"\n155: \tcase tcell.KeyEnter:\n156: \t\tname := strings.TrimSpace(a.createInput)\n157: \t\tif name == \"\" {\n158: \t\t\ta.setStatus(\"session name cannot be empty\")\n159: \t\t\treturn false, \"\"\n160: \t\t}\n161: \t\tif err := a.client.NewSession(name); err != nil {\n162: \t\t\ta.setError(err)\n163: \t\t\treturn false, \"\"\n164: \t\t}\n165: \t\ta.mode = modeNormal\n166: \t\ta.createInput = \"\"\n167: \t\tif err := a.refreshSessions(); err != nil {\n168: \t\t\ta.setError(err)\n169: \t\t\treturn false, \"\"\n170: \t\t}\n171: \t\ta.selectByName(name)\n172: \t\ta.setStatus(fmt.Sprintf(\"created %s\", name))\n173: \t\treturn false, \"\"\n174: \tcase tcell.KeyBackspace, tcell.KeyBackspace2:\n175: \t\tif len(a.createInput) \u003e 0 {\n176: \t\t\ta.createInput = a.createInput[:len(a.createInput)-1]\n177: \t\t}\n178: \t\treturn false, \"\"\n179: \tcase tcell.KeyRune:\n180: \t\tr := key.Rune()\n181: \t\tif r \u003e= 32 \u0026\u0026 r \u003c= 126 {\n182: \t\t\ta.createInput += string(r)\n183: \t\t}\n184: \t\treturn false, \"\"\n185: \tdefault:\n186: \t\treturn false, \"\"\n187: \t}\n188: }\n189: \n190: func (a *app) toggleSection() {\n191: \tif len(a.favorites) == 0 \u0026\u0026 len(a.others) == 0 {\n192: \t\treturn\n193: \t}\n194: \tif a.section == 0 {\n195: \t\tif len(a.others) \u003e 0 {\n196: \t\t\ta.section = 1\n197: \t\t}\n198: \t\treturn\n199: \t}\n200: \tif len(a.favorites) \u003e 0 {\n201: \t\ta.section = 0\n202: \t}\n203: }\n204: \n205: func (a *app) moveUp() {\n206: \tif a.mode == modeReorder {\n207: \t\ta.reorder(-1)\n208: \t\treturn\n209: \t}\n210: \tif a.section == 0 {\n211: \t\tif a.cursorFav \u003e 0 {\n212: \t\t\ta.cursorFav--\n213: \t\t}\n214: \t\treturn\n215: \t}\n216: \tif a.cursorOther \u003e 0 {\n217: \t\ta.cursorOther--\n218: \t}\n219: }\n220: \n221: func (a *app) moveDown() {\n222: \tif a.mode == modeReorder {\n223: \t\ta.reorder(1)\n224: \t\treturn\n225: \t}\n226: \tif a.section == 0 {\n227: \t\tif a.cursorFav \u003c len(a.favorites)-1 {\n228: \t\t\ta.cursorFav++\n229: \t\t}\n230: \t\treturn\n231: \t}\n232: \tif a.cursorOther \u003c len(a.others)-1 {\n233: \t\ta.cursorOther++\n234: \t}\n235: }\n236: \n237: func (a *app) toggleReorderMode() {\n238: \tif _, ok := a.selectedName(); !ok {\n239: \t\treturn\n240: \t}\n241: \tif a.mode == modeReorder {\n242: \t\ta.mode = modeNormal\n243: \t\ta.setStatus(\"reorder mode off\")\n244: \t\treturn\n245: \t}\n246: \ta.mode = modeReorder\n247: \ta.setStatus(\"reorder mode on: j/k moves selected session\")\n248: }\n249: \n250: func (a *app) toggleFavorite() {\n251: \tname, ok := a.selectedName()\n252: \tif !ok {\n253: \t\treturn\n254: \t}\n255: \n256: \tidx := indexOf(a.state.Favorites, name)\n257: \tif idx \u003e= 0 {\n258: \t\ta.state.Favorites = removeAt(a.state.Favorites, idx)\n259: \t\ta.state.Order = append([]string{name}, a.state.Order...)\n260: \t\ta.setStatus(fmt.Sprintf(\"unfavorited %s\", name))\n261: \t} else {\n262: \t\ta.state.Favorites = append(a.state.Favorites, name)\n263: \t\ta.state.Order = removeByValue(a.state.Order, name)\n264: \t\ta.setStatus(fmt.Sprintf(\"favorited %s\", name))\n265: \t}\n266: \tif err := a.persistAndRebuild(); err != nil {\n267: \t\ta.setError(err)\n268: \t}\n269: }\n270: \n271: func (a *app) reorder(delta int) {\n272: \tname, ok := a.selectedName()\n273: \tif !ok {\n274: \t\treturn\n275: \t}\n276: \tif a.section == 0 {\n277: \t\tidx := indexOf(a.state.Favorites, name)\n278: \t\tif idx \u003c 0 {\n279: \t\t\treturn\n280: \t\t}\n281: \t\tnewIdx := idx + delta\n282: \t\tif newIdx \u003c 0 || newIdx \u003e= len(a.state.Favorites) {\n283: \t\t\treturn\n284: \t\t}\n285: \t\ta.state.Favorites[idx], a.state.Favorites[newIdx] = a.state.Favorites[newIdx], a.state.Favorites[idx]\n286: \t\ta.cursorFav = newIdx\n287: \t} else {\n288: \t\tnames := make([]string, 0, len(a.others))\n289: \t\tfor _, s := range a.others {\n290: \t\t\tnames = append(names, s.Name)\n291: \t\t}\n292: \t\tidx := indexOf(names, name)\n293: \t\tif idx \u003c 0 {\n294: \t\t\treturn\n295: \t\t}\n296: \t\tnewIdx := idx + delta\n297: \t\tif newIdx \u003c 0 || newIdx \u003e= len(names) {\n298: \t\t\treturn\n299: \t\t}\n300: \t\tnames[idx], names[newIdx] = names[newIdx], names[idx]\n301: \t\ta.state.Order = names\n302: \t\ta.cursorOther = newIdx\n303: \t}\n304: \tif err := a.persistAndRebuild(); err != nil {\n305: \t\ta.setError(err)\n306: \t\treturn\n307: \t}\n308: \ta.setStatus(\"priority updated\")\n309: }\n310: \n311: func (a *app) killSelected() {\n312: \tname, ok := a.selectedName()\n313: \tif !ok {\n314: \t\treturn\n315: \t}\n316: \tif err := a.client.KillSession(name); err != nil {\n317: \t\ta.setError(err)\n318: \t\treturn\n319: \t}\n320: \ta.state.Favorites = removeByValue(a.state.Favorites, name)\n321: \ta.state.Order = removeByValue(a.state.Order, name)\n322: \tif err := a.persistAndRebuild(); err != nil {\n323: \t\ta.setError(err)\n324: \t\treturn\n325: \t}\n326: \ta.setStatus(fmt.Sprintf(\"killed %s\", name))\n327: }\n328: \n329: func (a *app) refreshSessions() error {\n330: \tsessions, err := a.client.ListSessions()\n331: \tif err != nil {\n332: \t\treturn err\n333: \t}\n334: \ta.sessions = sessions\n335: \ta.state = normalizeState(a.state, sessions)\n336: \ta.rebuildLists()\n337: \tif err := a.store.Save(a.state); err != nil {\n338: \t\treturn err\n339: \t}\n340: \treturn nil\n341: }\n342: \n343: func (a *app) persistAndRebuild() error {\n344: \ta.state = normalizeState(a.state, a.sessions)\n345: \ta.rebuildLists()\n346: \treturn a.store.Save(a.state)\n347: }\n348: \n349: func (a *app) rebuildLists() {\n350: \ta.favorites, a.others = orderSessions(a.sessions, a.state)\n351: \ta.hotkeys = assignHotkeys(a.favorites, a.others, SessionHotkeyAlphabet())\n352: \ta.clampCursors()\n353: }\n354: \n355: func (a *app) clampCursors() {\n356: \tif a.cursorFav \u003e= len(a.favorites) {\n357: \t\ta.cursorFav = max(len(a.favorites)-1, 0)\n358: \t}\n359: \tif a.cursorOther \u003e= len(a.others) {\n360: \t\ta.cursorOther = max(len(a.others)-1, 0)\n361: \t}\n362: \tif a.section == 0 \u0026\u0026 len(a.favorites) == 0 \u0026\u0026 len(a.others) \u003e 0 {\n363: \t\ta.section = 1\n364: \t}\n365: \tif a.section == 1 \u0026\u0026 len(a.others) == 0 \u0026\u0026 len(a.favorites) \u003e 0 {\n366: \t\ta.section = 0\n367: \t}\n368: }\n369: \n370: func (a *app) selectedName() (string, bool) {\n371: \tif a.section == 0 {\n372: \t\tif len(a.favorites) == 0 {\n373: \t\t\treturn \"\", false\n374: \t\t}\n375: \t\treturn a.favorites[a.cursorFav].Name, true\n376: \t}\n377: \tif len(a.others) == 0 {\n378: \t\treturn \"\", false\n379: \t}\n380: \treturn a.others[a.cursorOther].Name, true\n381: }\n382: \n383: func (a *app) hotkeyTarget(r rune) (string, bool) {\n384: \tfor name, key := range a.hotkeys {\n385: \t\tif key == r {\n386: \t\t\treturn name, true\n387: \t\t}\n388: \t}\n389: \treturn \"\", false\n390: }\n391: \n392: func (a *app) selectByName(name string) {\n393: \tif idx := indexSession(a.favorites, name); idx \u003e= 0 {\n394: \t\ta.section = 0\n395: \t\ta.cursorFav = idx\n396: \t\treturn\n397: \t}\n398: \tif idx := indexSession(a.others, name); idx \u003e= 0 {\n399: \t\ta.section = 1\n400: \t\ta.cursorOther = idx\n401: \t}\n402: }\n403: \n404: func (a *app) setStatus(msg string) {\n405: \ta.status = msg\n406: \ta.statusExpiry = time.Now().Add(4 * time.Second)\n407: }\n408: \n409: func (a *app) setError(err error) {\n410: \ta.status = \"error: \" + err.Error()\n411: \ta.statusExpiry = time.Now().Add(8 * time.Second)\n412: }\n413: \n414: func (a *app) visibleStatus() string {\n415: \tif a.status == \"\" {\n416: \t\treturn \"\"\n417: \t}\n418: \tif a.statusExpiry.IsZero() || time.Now().Before(a.statusExpiry) {\n419: \t\treturn a.status\n420: \t}\n421: \ta.status = \"\"\n422: \treturn \"\"\n423: }\n424: \n425: func indexSession(sessions []session, name string) int {\n426: \tfor i, s := range sessions {\n427: \t\tif s.Name == name {\n428: \t\t\treturn i\n429: \t\t}\n430: \t}\n431: \treturn -1\n432: }\n433: \n434: func indexOf(items []string, target string) int {\n435: \tfor i, item := range items {\n436: \t\tif item == target {\n437: \t\t\treturn i\n438: \t\t}\n439: \t}\n440: \treturn -1\n441: }\n442: \n443: func removeAt(items []string, idx int) []string {\n444: \tout := make([]string, 0, len(items)-1)\n445: \tout = append(out, items[:idx]...)\n446: \tout = append(out, items[idx+1:]...)\n447: \treturn out\n448: }\n449: \n450: func removeByValue(items []string, target string) []string {\n451: \tout := make([]string, 0, len(items))\n452: \tfor _, item := range items {\n453: \t\tif item == target {\n454: \t\t\tcontinue\n455: \t\t}\n456: \t\tout = append(out, item)\n457: \t}\n458: \treturn out\n459: }\n460: \n461: func max(a int, b int) int {\n462: \tif a \u003e b {\n463: \t\treturn a\n464: \t}\n465: \treturn b\n466: }\n\n(End of file - total 466 lines)\n\u003c/content\u003e\n```\n\n**Tool: read**\n\n**Input:**\n```json\n{\n  \"filePath\": \"/home/waylon/git/tgo/cmd/tgo/view.go\"\n}\n```\n\n**Output:**\n```\n\u003cpath\u003e/home/waylon/git/tgo/cmd/tgo/view.go\u003c/path\u003e\n\u003ctype\u003efile\u003c/type\u003e\n\u003ccontent\u003e1: package main\n2: \n3: import (\n4: \t\"fmt\"\n5: \t\"strings\"\n6: \n7: \t\"github.com/gdamore/tcell/v2\"\n8: )\n9: \n10: func (a *app) draw(screen tcell.Screen) {\n11: \twidth, height := screen.Size()\n12: \tscreen.Clear()\n13: \n14: \theaderStyle := tcell.StyleDefault.Foreground(tcell.ColorAqua).Bold(true)\n15: \thelpStyle := tcell.StyleDefault.Foreground(tcell.ColorGray)\n16: \tstatusStyle := tcell.StyleDefault.Foreground(tcell.ColorGreen)\n17: \terrorStyle := tcell.StyleDefault.Foreground(tcell.ColorRed)\n18: \n19: \tline := 0\n20: \ta.drawText(screen, 0, line, headerStyle, \"tgo - tmux session switcher\")\n21: \tline++\n22: \n23: \thelp := \"[letters] switch  [j/k or arrows] move  [tab] section  [space] reorder  [f] favorite  [n] new  [x] kill  [r] refresh  [enter] switch  [esc/ctrl+c] quit\"\n24: \ta.drawText(screen, 0, line, helpStyle, truncate(help, width))\n25: \tline++\n26: \n27: \tif a.mode == modeCreate {\n28: \t\tprompt := \"new session name: \" + a.createInput\n29: \t\ta.drawText(screen, 0, line, tcell.StyleDefault.Foreground(tcell.ColorYellow), truncate(prompt, width))\n30: \t\tline++\n31: \t}\n32: \n33: \tline = a.drawSection(screen, line, width, height, \"Favorites\", a.favorites, a.cursorFav, a.section == 0)\n34: \tline = a.drawSection(screen, line, width, height, \"Others\", a.others, a.cursorOther, a.section == 1)\n35: \n36: \tstatus := a.visibleStatus()\n37: \tif status != \"\" {\n38: \t\tstyle := statusStyle\n39: \t\tif strings.HasPrefix(status, \"error:\") {\n40: \t\t\tstyle = errorStyle\n41: \t\t}\n42: \t\ta.drawText(screen, 0, height-1, style, truncate(status, width))\n43: \t}\n44: \n45: \tscreen.Show()\n46: }\n47: \n48: func (a *app) drawSection(screen tcell.Screen, y int, width int, height int, title string, rows []session, cursor int, active bool) int {\n49: \tif y \u003e= height-1 {\n50: \t\treturn y\n51: \t}\n52: \n53: \ttitleStyle := tcell.StyleDefault.Foreground(tcell.ColorWhite)\n54: \tif active {\n55: \t\ttitleStyle = titleStyle.Bold(true).Foreground(tcell.ColorBlue)\n56: \t}\n57: \ta.drawText(screen, 0, y, titleStyle, fmt.Sprintf(\"%s (%d)\", title, len(rows)))\n58: \ty++\n59: \n60: \tif len(rows) == 0 {\n61: \t\ta.drawText(screen, 2, y, tcell.StyleDefault.Foreground(tcell.ColorGray), \"- no sessions -\")\n62: \t\treturn y + 1\n63: \t}\n64: \n65: \tavailable := max((height-1)-y, 1)\n66: \tif cursor \u003c 0 {\n67: \t\tcursor = 0\n68: \t}\n69: \tstart := 0\n70: \tif cursor \u003e= available {\n71: \t\tstart = cursor - available + 1\n72: \t}\n73: \tend := min(start+available, len(rows))\n74: \n75: \tfor i := start; i \u003c end; i++ {\n76: \t\tif y \u003e= height-1 {\n77: \t\t\tbreak\n78: \t\t}\n79: \t\ts := rows[i]\n80: \t\tkeyLabel := \" \"\n81: \t\tif r, ok := a.hotkeys[s.Name]; ok {\n82: \t\t\tkeyLabel = string(r)\n83: \t\t}\n84: \t\tattached := \" \"\n85: \t\tif s.Attached {\n86: \t\t\tattached = \"*\"\n87: \t\t}\n88: \t\tprefix := \"  \"\n89: \t\tstyle := tcell.StyleDefault\n90: \t\tif i == cursor \u0026\u0026 active {\n91: \t\t\tprefix = \"\u003e \"\n92: \t\t\tstyle = style.Background(tcell.ColorGray).Foreground(tcell.ColorBlack)\n93: \t\t}\n94: \t\tif a.mode == modeReorder \u0026\u0026 i == cursor \u0026\u0026 active {\n95: \t\t\tstyle = style.Background(tcell.ColorYellow).Foreground(tcell.ColorBlack)\n96: \t\t}\n97: \t\trow := fmt.Sprintf(\"%s[%s] %s %s\", prefix, keyLabel, attached, s.Name)\n98: \t\ta.drawText(screen, 0, y, style, truncate(row, width))\n99: \t\ty++\n100: \t}\n101: \n102: \treturn y\n103: }\n104: \n105: func (a *app) drawText(screen tcell.Screen, x int, y int, style tcell.Style, text string) {\n106: \tfor _, r := range text {\n107: \t\tscreen.SetContent(x, y, r, nil, style)\n108: \t\tx++\n109: \t}\n110: }\n111: \n112: func truncate(text string, width int) string {\n113: \tif width \u003c= 0 {\n114: \t\treturn \"\"\n115: \t}\n116: \trunes := []rune(text)\n117: \tif len(runes) \u003c= width {\n118: \t\treturn text\n119: \t}\n120: \tif width == 1 {\n121: \t\treturn \"…\"\n122: \t}\n123: \treturn string(runes[:width-1]) + \"…\"\n124: }\n125: \n126: func min(a int, b int) int {\n127: \tif a \u003c b {\n128: \t\treturn a\n129: \t}\n130: \treturn b\n131: }\n\n(End of file - total 131 lines)\n\u003c/content\u003e\n```\n\n**Tool: read**\n\n**Input:**\n```json\n{\n  \"filePath\": \"/home/waylon/git/tgo/cmd/tgo/tmux.go\"\n}\n```\n\n**Output:**\n```\n\u003cpath\u003e/home/waylon/git/tgo/cmd/tgo/tmux.go\u003c/path\u003e\n\u003ctype\u003efile\u003c/type\u003e\n\u003ccontent\u003e1: package main\n2: \n3: import (\n4: \t\"bytes\"\n5: \t\"fmt\"\n6: \t\"os/exec\"\n7: \t\"sort\"\n8: \t\"strings\"\n9: )\n10: \n11: type session struct {\n12: \tName     string\n13: \tAttached bool\n14: }\n15: \n16: type tmuxClient interface {\n17: \tListSessions() ([]session, error)\n18: \tSwitchSession(name string) error\n19: \tKillSession(name string) error\n20: \tNewSession(name string) error\n21: }\n22: \n23: type tmuxCLI struct{}\n24: \n25: func (t *tmuxCLI) ListSessions() ([]session, error) {\n26: \tcmd := exec.Command(\"tmux\", \"list-sessions\", \"-F\", \"#{session_name}|#{?session_attached,1,0}\")\n27: \tout, err := cmd.Output()\n28: \tif err != nil {\n29: \t\treturn nil, fmt.Errorf(\"list sessions: %w\", err)\n30: \t}\n31: \n32: \tlines := strings.Split(strings.TrimSpace(string(out)), \"\\n\")\n33: \tif len(lines) == 1 \u0026\u0026 lines[0] == \"\" {\n34: \t\treturn []session{}, nil\n35: \t}\n36: \n37: \tsessions := make([]session, 0, len(lines))\n38: \tfor _, line := range lines {\n39: \t\tparts := strings.SplitN(line, \"|\", 2)\n40: \t\tif len(parts) != 2 {\n41: \t\t\tcontinue\n42: \t\t}\n43: \t\tsessions = append(sessions, session{\n44: \t\t\tName:     parts[0],\n45: \t\t\tAttached: parts[1] == \"1\",\n46: \t\t})\n47: \t}\n48: \n49: \treturn sessions, nil\n50: }\n51: \n52: func (t *tmuxCLI) SwitchSession(name string) error {\n53: \tif name == \"\" {\n54: \t\treturn fmt.Errorf(\"empty session name\")\n55: \t}\n56: \tcmd := exec.Command(\"tmux\", \"switch-client\", \"-t\", name)\n57: \tif out, err := cmd.CombinedOutput(); err != nil {\n58: \t\treturn fmt.Errorf(\"switch session %q: %w (%s)\", name, err, strings.TrimSpace(string(out)))\n59: \t}\n60: \treturn nil\n61: }\n62: \n63: func (t *tmuxCLI) KillSession(name string) error {\n64: \tif name == \"\" {\n65: \t\treturn fmt.Errorf(\"empty session name\")\n66: \t}\n67: \tcmd := exec.Command(\"tmux\", \"kill-session\", \"-t\", name)\n68: \tif out, err := cmd.CombinedOutput(); err != nil {\n69: \t\treturn fmt.Errorf(\"kill session %q: %w (%s)\", name, err, strings.TrimSpace(string(out)))\n70: \t}\n71: \treturn nil\n72: }\n73: \n74: func (t *tmuxCLI) NewSession(name string) error {\n75: \tif name == \"\" {\n76: \t\treturn fmt.Errorf(\"empty session name\")\n77: \t}\n78: \tcmd := exec.Command(\"tmux\", \"new-session\", \"-d\", \"-s\", name)\n79: \tif out, err := cmd.CombinedOutput(); err != nil {\n80: \t\treturn fmt.Errorf(\"new session %q: %w (%s)\", name, err, strings.TrimSpace(string(out)))\n81: \t}\n82: \treturn nil\n83: }\n84: \n85: func orderSessions(sessions []session, st state) (favorites []session, others []session) {\n86: \tnameToSession := make(map[string]session, len(sessions))\n87: \ttmuxOrder := make(map[string]int, len(sessions))\n88: \tfor i, s := range sessions {\n89: \t\tnameToSession[s.Name] = s\n90: \t\ttmuxOrder[s.Name] = i\n91: \t}\n92: \n93: \tfor _, name := range st.Favorites {\n94: \t\ts, ok := nameToSession[name]\n95: \t\tif !ok {\n96: \t\t\tcontinue\n97: \t\t}\n98: \t\tfavorites = append(favorites, s)\n99: \t}\n100: \n101: \tfavSet := make(map[string]struct{}, len(favorites))\n102: \tfor _, s := range favorites {\n103: \t\tfavSet[s.Name] = struct{}{}\n104: \t}\n105: \n106: \tnonFav := make([]session, 0, len(sessions)-len(favorites))\n107: \tfor _, s := range sessions {\n108: \t\tif _, ok := favSet[s.Name]; ok {\n109: \t\t\tcontinue\n110: \t\t}\n111: \t\tnonFav = append(nonFav, s)\n112: \t}\n113: \n114: \torderIndex := make(map[string]int, len(st.Order))\n115: \tfor i, name := range st.Order {\n116: \t\torderIndex[name] = i\n117: \t}\n118: \n119: \tsort.SliceStable(nonFav, func(i, j int) bool {\n120: \t\tli, iok := orderIndex[nonFav[i].Name]\n121: \t\tlj, jok := orderIndex[nonFav[j].Name]\n122: \t\tswitch {\n123: \t\tcase iok \u0026\u0026 jok:\n124: \t\t\treturn li \u003c lj\n125: \t\tcase iok:\n126: \t\t\treturn true\n127: \t\tcase jok:\n128: \t\t\treturn false\n129: \t\tdefault:\n130: \t\t\treturn tmuxOrder[nonFav[i].Name] \u003c tmuxOrder[nonFav[j].Name]\n131: \t\t}\n132: \t})\n133: \n134: \treturn favorites, nonFav\n135: }\n136: \n137: func assignHotkeys(favorites []session, others []session, alphabet string) map[string]rune {\n138: \tout := make(map[string]rune)\n139: \tordered := make([]session, 0, len(favorites)+len(others))\n140: \tordered = append(ordered, favorites...)\n141: \tordered = append(ordered, others...)\n142: \n143: \trunes := []rune(alphabet)\n144: \tfor i, s := range ordered {\n145: \t\tif i \u003e= len(runes) {\n146: \t\t\tbreak\n147: \t\t}\n148: \t\tout[s.Name] = runes[i]\n149: \t}\n150: \treturn out\n151: }\n152: \n153: func runesToString(m map[string]rune, ordered []session) string {\n154: \tbuf := bytes.Buffer{}\n155: \tfor _, s := range ordered {\n156: \t\tr, ok := m[s.Name]\n157: \t\tif !ok {\n158: \t\t\tcontinue\n159: \t\t}\n160: \t\tbuf.WriteRune(r)\n161: \t}\n162: \treturn buf.String()\n163: }\n\n(End of file - total 163 lines)\n\u003c/content\u003e\n```\n\n**Tool: read**\n\n**Input:**\n```json\n{\n  \"filePath\": \"/home/waylon/git/tgo/cmd/tgo/state.go\"\n}\n```\n\n**Output:**\n```\n\u003cpath\u003e/home/waylon/git/tgo/cmd/tgo/state.go\u003c/path\u003e\n\u003ctype\u003efile\u003c/type\u003e\n\u003ccontent\u003e1: package main\n2: \n3: import (\n4: \t\"encoding/json\"\n5: \t\"errors\"\n6: \t\"fmt\"\n7: \t\"os\"\n8: \t\"path/filepath\"\n9: )\n10: \n11: type state struct {\n12: \tFavorites []string `json:\"favorites\"`\n13: \tOrder     []string `json:\"order\"`\n14: }\n15: \n16: type stateStore struct {\n17: \tpath string\n18: }\n19: \n20: func openStateStore() (*stateStore, error) {\n21: \tconfigDir, err := os.UserConfigDir()\n22: \tif err != nil {\n23: \t\treturn nil, fmt.Errorf(\"config dir: %w\", err)\n24: \t}\n25: \treturn \u0026stateStore{path: filepath.Join(configDir, \"tgo\", \"state.json\")}, nil\n26: }\n27: \n28: func (s *stateStore) Load() (state, error) {\n29: \tdata, err := os.ReadFile(s.path)\n30: \tif err != nil {\n31: \t\tif errors.Is(err, os.ErrNotExist) {\n32: \t\t\treturn state{}, nil\n33: \t\t}\n34: \t\treturn state{}, fmt.Errorf(\"read state: %w\", err)\n35: \t}\n36: \n37: \tvar st state\n38: \tif err := json.Unmarshal(data, \u0026st); err != nil {\n39: \t\tbak := s.path + \".bak\"\n40: \t\t_ = os.Rename(s.path, bak)\n41: \t\treturn state{}, nil\n42: \t}\n43: \treturn st, nil\n44: }\n45: \n46: func (s *stateStore) Save(st state) error {\n47: \tdir := filepath.Dir(s.path)\n48: \tif err := os.MkdirAll(dir, 0o755); err != nil {\n49: \t\treturn fmt.Errorf(\"create state dir: %w\", err)\n50: \t}\n51: \tdata, err := json.MarshalIndent(st, \"\", \"  \")\n52: \tif err != nil {\n53: \t\treturn fmt.Errorf(\"marshal state: %w\", err)\n54: \t}\n55: \tif err := os.WriteFile(s.path, data, 0o644); err != nil {\n56: \t\treturn fmt.Errorf(\"write state: %w\", err)\n57: \t}\n58: \treturn nil\n59: }\n60: \n61: func normalizeState(st state, sessions []session) state {\n62: \texists := make(map[string]struct{}, len(sessions))\n63: \tfor _, s := range sessions {\n64: \t\texists[s.Name] = struct{}{}\n65: \t}\n66: \n67: \tst.Favorites = dedupeAndFilter(st.Favorites, exists)\n68: \n69: \tfavSet := make(map[string]struct{}, len(st.Favorites))\n70: \tfor _, name := range st.Favorites {\n71: \t\tfavSet[name] = struct{}{}\n72: \t}\n73: \n74: \tallowedOthers := make(map[string]struct{}, len(sessions)-len(st.Favorites))\n75: \tfor _, s := range sessions {\n76: \t\tif _, fav := favSet[s.Name]; fav {\n77: \t\t\tcontinue\n78: \t\t}\n79: \t\tallowedOthers[s.Name] = struct{}{}\n80: \t}\n81: \tst.Order = dedupeAndFilter(st.Order, allowedOthers)\n82: \treturn st\n83: }\n84: \n85: func dedupeAndFilter(items []string, allowed map[string]struct{}) []string {\n86: \tseen := map[string]struct{}{}\n87: \tout := make([]string, 0, len(items))\n88: \tfor _, item := range items {\n89: \t\tif item == \"\" {\n90: \t\t\tcontinue\n91: \t\t}\n92: \t\tif _, ok := allowed[item]; !ok {\n93: \t\t\tcontinue\n94: \t\t}\n95: \t\tif _, dup := seen[item]; dup {\n96: \t\t\tcontinue\n97: \t\t}\n98: \t\tseen[item] = struct{}{}\n99: \t\tout = append(out, item)\n100: \t}\n101: \treturn out\n102: }\n\n(End of file - total 102 lines)\n\u003c/content\u003e\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 4.0s)\n\n_Thinking:_\n\n**Assessing unused code and tests**\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"go build ./cmd/tgo\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Builds tgo command to verify compile\"\n}\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 2.1s)\n\n_Thinking:_\n\n**Checking Go 1.24 and CI caching**\n\n**Tool: glob**\n\n**Input:**\n```json\n{\n  \"pattern\": \"go.sum\",\n  \"path\": \"/home/waylon/git/tgo\"\n}\n```\n\n**Output:**\n```\n/home/waylon/git/tgo/go.sum\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 8.7s)\n\n_Thinking:_\n\n**Summarizing completed TUI changes**\n\nImplemented: `tgo` is now a real interactive TUI for listing, switching, and managing tmux sessions with your fast popup flow.\n\n- Built a full terminal UI with `tcell` in `cmd/tgo/app.go` and `cmd/tgo/view.go`:\n  - `j/k` + arrow navigation\n  - `tab` section switching (`Favorites` / `Others`)\n  - letter switching via `asdfqwertzxcvb` (instant switch + exit)\n  - `space` toggles reorder mode; `j/k` reorders and updates hotkey priority live\n- Added tmux operations in `cmd/tgo/tmux.go`:\n  - list sessions\n  - switch client\n  - create session (`n`)\n  - kill session (`x`)\n- Added persistent priority/favorites state in `cmd/tgo/state.go`:\n  - saved at `~/.config/tgo/state.json`\n  - stale/missing sessions are normalized out automatically\n  - corrupt state is backed up to `.bak`\n- Updated startup wiring in `cmd/tgo/main.go` to run the full app.\n- Expanded tests in `cmd/tgo/logic_test.go` for normalization, ordering, and hotkey assignment.\n- Updated docs in `README.md` and `CHANGELOG.md` to reflect the implemented behavior.\n- Updated CI/release Go version to match module version in `.github/workflows/ci.yml` and `.github/workflows/release.yml`.\n\nValidation I ran:\n- `go test ./...` (pass)\n- `go build ./cmd/tgo` (pass)\n\nNext steps you can run:\n1. Launch in tmux now with `just run` and verify your exact popup flow.\n2. Add your tmux binding from `README.md` to make it a true two-keystroke switch.\n3. If you want, I can now add optional flags (like `--debug`, `--state-path`, `--no-manage`) and a startup benchmark mode for latency tuning.\n\n---\n\n## User\n\nversion it and cut a release\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 5.5s)\n\n_Thinking:_\n\n**Assessing git repository state**\n\n**Tool: todowrite**\n\n**Input:**\n```json\n{\n  \"todos\": [\n    {\n      \"content\": \"Inspect git/release readiness (repo state, remotes, tags, gh auth)\",\n      \"status\": \"in_progress\",\n      \"priority\": \"high\"\n    },\n    {\n      \"content\": \"Choose and apply initial semantic version in changelog\",\n      \"status\": \"pending\",\n      \"priority\": \"high\"\n    },\n    {\n      \"content\": \"Commit release prep changes and create git tag\",\n      \"status\": \"pending\",\n      \"priority\": \"high\"\n    },\n    {\n      \"content\": \"Create GitHub release with notes and verify artifact workflow trigger\",\n      \"status\": \"pending\",\n      \"priority\": \"high\"\n    }\n  ]\n}\n```\n\n**Output:**\n```\n[\n  {\n    \"content\": \"Inspect git/release readiness (repo state, remotes, tags, gh auth)\",\n    \"status\": \"in_progress\",\n    \"priority\": \"high\"\n  },\n  {\n    \"content\": \"Choose and apply initial semantic version in changelog\",\n    \"status\": \"pending\",\n    \"priority\": \"high\"\n  },\n  {\n    \"content\": \"Commit release prep changes and create git tag\",\n    \"status\": \"pending\",\n    \"priority\": \"high\"\n  },\n  {\n    \"content\": \"Create GitHub release with notes and verify artifact workflow trigger\",\n    \"status\": \"pending\",\n    \"priority\": \"high\"\n  }\n]\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 10.0s)\n\n_Thinking:_\n\n**Planning parallel git operations**\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"git status --short --branch\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Shows branch and working tree status\"\n}\n```\n\n**Output:**\n```\n## main...origin/main\n\n```\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"git remote -v\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Lists configured git remotes\"\n}\n```\n\n**Output:**\n```\norigin\thttps://github.com/WaylonWalker/tgo.git (fetch)\norigin\thttps://github.com/WaylonWalker/tgo.git (push)\n\n```\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"git tag --list\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Lists existing git tags\"\n}\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 2.9s)\n\n_Thinking:_\n\n**Reviewing release setup details**\n\n**Tool: read**\n\n**Input:**\n```json\n{\n  \"filePath\": \"/home/waylon/git/tgo/CHANGELOG.md\"\n}\n```\n\n**Output:**\n```\n\u003cpath\u003e/home/waylon/git/tgo/CHANGELOG.md\u003c/path\u003e\n\u003ctype\u003efile\u003c/type\u003e\n\u003ccontent\u003e1: # Changelog\n2: \n3: All notable changes to `tgo` will be documented in this file. This project adheres to [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html).\n4: \n5: ## [Unreleased]\n6: \n7: ### Added\n8: - interactive TUI built with `tcell`, including responsive rendering for tmux popup usage.\n9: - tmux integration for listing sessions, switching clients, creating sessions, and killing sessions.\n10: - sectioned session view with favorites pinned at the top and direct hotkey switching via `asdfqwertzxcvb`.\n11: - reorder mode (`space` + `j/k` or arrows) to change session priority and hotkey assignment.\n12: - persisted state file at `~/.config/tgo/state.json` with normalization for removed/stale sessions.\n13: - unit tests for ordering, normalization, and hotkey assignment logic.\n\n(End of file - total 13 lines)\n\u003c/content\u003e\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 3.6s)\n\n_Thinking:_\n\n**Setting initial version**\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"gh auth status\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Checks GitHub CLI authentication status\"\n}\n```\n\n**Output:**\n```\ngithub.com\n  ✓ Logged in to github.com account WaylonWalker (keyring)\n  - Active account: true\n  - Git operations protocol: https\n  - Token: gho_************************************\n  - Token scopes: 'gist', 'read:org', 'repo', 'workflow'\n\n```\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"git log --oneline -n 5\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Shows recent commit message style\"\n}\n```\n\n**Output:**\n```\n41ea734 init\n\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 7.5s)\n\n_Thinking:_\n\n**Updating changelog with version**\n\n**Tool: apply_patch**\n\n**Input:**\n```json\n{\n  \"patchText\": \"*** Begin Patch\\n*** Update File: /home/waylon/git/tgo/CHANGELOG.md\\n@@\\n ## [Unreleased]\\n+\\n+## [0.1.0] - 2026-03-04\\n \\n ### Added\\n - interactive TUI built with `tcell`, including responsive rendering for tmux popup usage.\\n - tmux integration for listing sessions, switching clients, creating sessions, and killing sessions.\\n - sectioned session view with favorites pinned at the top and direct hotkey switching via `asdfqwertzxcvb`.\\n - reorder mode (`space` + `j/k` or arrows) to change session priority and hotkey assignment.\\n - persisted state file at `~/.config/tgo/state.json` with normalization for removed/stale sessions.\\n - unit tests for ordering, normalization, and hotkey assignment logic.\\n*** End Patch\"\n}\n```\n\n**Output:**\n```\nSuccess. Updated the following files:\nM home/waylon/git/tgo/CHANGELOG.md\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 5.3s)\n\n_Thinking:_\n\n**Updating todo status**\n\n**Tool: todowrite**\n\n**Input:**\n```json\n{\n  \"todos\": [\n    {\n      \"content\": \"Inspect git/release readiness (repo state, remotes, tags, gh auth)\",\n      \"status\": \"completed\",\n      \"priority\": \"high\"\n    },\n    {\n      \"content\": \"Choose and apply initial semantic version in changelog\",\n      \"status\": \"completed\",\n      \"priority\": \"high\"\n    },\n    {\n      \"content\": \"Commit release prep changes and create git tag\",\n      \"status\": \"in_progress\",\n      \"priority\": \"high\"\n    },\n    {\n      \"content\": \"Create GitHub release with notes and verify artifact workflow trigger\",\n      \"status\": \"pending\",\n      \"priority\": \"high\"\n    }\n  ]\n}\n```\n\n**Output:**\n```\n[\n  {\n    \"content\": \"Inspect git/release readiness (repo state, remotes, tags, gh auth)\",\n    \"status\": \"completed\",\n    \"priority\": \"high\"\n  },\n  {\n    \"content\": \"Choose and apply initial semantic version in changelog\",\n    \"status\": \"completed\",\n    \"priority\": \"high\"\n  },\n  {\n    \"content\": \"Commit release prep changes and create git tag\",\n    \"status\": \"in_progress\",\n    \"priority\": \"high\"\n  },\n  {\n    \"content\": \"Create GitHub release with notes and verify artifact workflow trigger\",\n    \"status\": \"pending\",\n    \"priority\": \"high\"\n  }\n]\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 3.5s)\n\n_Thinking:_\n\n**Running pre-commit checks**\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"git status --short\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Shows files changed for commit\"\n}\n```\n\n**Output:**\n```\n M CHANGELOG.md\n\n```\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"git diff --staged; git diff\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Shows staged and unstaged diffs\"\n}\n```\n\n**Output:**\n```\ndiff --git a/CHANGELOG.md b/CHANGELOG.md\nindex 74804dc..d800505 100644\n--- a/CHANGELOG.md\n+++ b/CHANGELOG.md\n@@ -4,6 +4,8 @@ All notable changes to `tgo` will be documented in this file. This project adher\n \n ## [Unreleased]\n \n+## [0.1.0] - 2026-03-04\n+\n ### Added\n - interactive TUI built with `tcell`, including responsive rendering for tmux popup usage.\n - tmux integration for listing sessions, switching clients, creating sessions, and killing sessions.\n\n```\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"git log --oneline -n 10\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Displays recent commit messages\"\n}\n```\n\n**Output:**\n```\n41ea734 init\n\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 2.9s)\n\n_Thinking:_\n\n**Preparing initial commit**\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"git add CHANGELOG.md \u0026\u0026 git commit -m \\\"release: cut v0.1.0\\\" \u0026\u0026 git tag -a v0.1.0 -m \\\"v0.1.0\\\" \u0026\u0026 git status --short --branch\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Commits changelog and creates v0.1.0 tag\"\n}\n```\n\n**Output:**\n```\n[main d210c44] release: cut v0.1.0\n 1 file changed, 2 insertions(+)\n## main...origin/main [ahead 1]\n\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 4.9s)\n\n_Thinking:_\n\n**Planning GitHub release creation**\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"git push origin main \u0026\u0026 git push origin v0.1.0\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Pushes release commit and tag to origin\"\n}\n```\n\n**Output:**\n```\nTo https://github.com/WaylonWalker/tgo.git\n   41ea734..d210c44  main -\u003e main\nTo https://github.com/WaylonWalker/tgo.git\n * [new tag]         v0.1.0 -\u003e v0.1.0\n\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 8.2s)\n\n_Thinking:_\n\n**Creating GitHub release with notes**\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"gh release create v0.1.0 --title \\\"v0.1.0\\\" --notes \\\"## Highlights\\n- Initial release of tgo: fast tmux session switcher optimized for popup use.\\n- Interactive TUI with direct letter switching (`asdfqwertzxcvb`), favorites pinning, and reorder mode.\\n- Session management actions from UI: create, kill, refresh, and persistent ordering state.\\\"\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Creates GitHub release for v0.1.0 tag\"\n}\n```\n\n**Output:**\n```\nzsh:1: command not found: asdfqwertzxcvb\nhttps://github.com/WaylonWalker/tgo/releases/tag/v0.1.0\n\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 4.0s)\n\n_Thinking:_\n\n**Inspecting created release notes**\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"gh release view v0.1.0 --json url,name,tagName,isDraft,isPrerelease,body\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Shows created release details and notes\"\n}\n```\n\n**Output:**\n```\n{\"body\":\"## Highlights\\n- Initial release of tgo: fast tmux session switcher optimized for popup use.\\n- Interactive TUI with direct letter switching (), favorites pinning, and reorder mode.\\n- Session management actions from UI: create, kill, refresh, and persistent ordering state.\",\"isDraft\":false,\"isPrerelease\":false,\"name\":\"v0.1.0\",\"tagName\":\"v0.1.0\",\"url\":\"https://github.com/WaylonWalker/tgo/releases/tag/v0.1.0\"}\n\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 4.3s)\n\n_Thinking:_\n\n**Fixing release body quoting**\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"gh release edit v0.1.0 --notes '## Highlights\\n- Initial release of tgo: fast tmux session switcher optimized for popup use.\\n- Interactive TUI with direct letter switching (`asdfqwertzxcvb`), favorites pinning, and reorder mode.\\n- Session management actions from UI: create, kill, refresh, and persistent ordering state.'\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Fixes release notes formatting for v0.1.0\"\n}\n```\n\n**Output:**\n```\nhttps://github.com/WaylonWalker/tgo/releases/tag/v0.1.0\n\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 8.4s)\n\n_Thinking:_\n\n**Checking workflow trigger status**\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"gh run list --workflow release.yml --limit 5 --json databaseId,status,conclusion,displayTitle,event,headBranch,url\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Checks latest release workflow runs\"\n}\n```\n\n**Output:**\n```\n[{\"conclusion\":\"\",\"databaseId\":22699585815,\"displayTitle\":\"v0.1.0\",\"event\":\"release\",\"headBranch\":\"v0.1.0\",\"status\":\"in_progress\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699585815\"}]\n\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 1.9s)\n\n_Thinking:_\n\n**Checking git status cleanliness**\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"git status --short --branch\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Confirms branch status after release\"\n}\n```\n\n**Output:**\n```\n## main...origin/main\n\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 2.6s)\n\n_Thinking:_\n\n**Completing todo updates**\n\n**Tool: todowrite**\n\n**Input:**\n```json\n{\n  \"todos\": [\n    {\n      \"content\": \"Inspect git/release readiness (repo state, remotes, tags, gh auth)\",\n      \"status\": \"completed\",\n      \"priority\": \"high\"\n    },\n    {\n      \"content\": \"Choose and apply initial semantic version in changelog\",\n      \"status\": \"completed\",\n      \"priority\": \"high\"\n    },\n    {\n      \"content\": \"Commit release prep changes and create git tag\",\n      \"status\": \"completed\",\n      \"priority\": \"high\"\n    },\n    {\n      \"content\": \"Create GitHub release with notes and verify artifact workflow trigger\",\n      \"status\": \"completed\",\n      \"priority\": \"high\"\n    }\n  ]\n}\n```\n\n**Output:**\n```\n[\n  {\n    \"content\": \"Inspect git/release readiness (repo state, remotes, tags, gh auth)\",\n    \"status\": \"completed\",\n    \"priority\": \"high\"\n  },\n  {\n    \"content\": \"Choose and apply initial semantic version in changelog\",\n    \"status\": \"completed\",\n    \"priority\": \"high\"\n  },\n  {\n    \"content\": \"Commit release prep changes and create git tag\",\n    \"status\": \"completed\",\n    \"priority\": \"high\"\n  },\n  {\n    \"content\": \"Create GitHub release with notes and verify artifact workflow trigger\",\n    \"status\": \"completed\",\n    \"priority\": \"high\"\n  }\n]\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 4.2s)\n\nDone — I versioned and cut the first release.\n\n- Versioned as `v0.1.0` by updating `CHANGELOG.md:7` with `## [0.1.0] - 2026-03-04`.\n- Committed release prep as `d210c44` with message `release: cut v0.1.0`.\n- Created and pushed tag `v0.1.0`.\n- Pushed `main` and tag to `origin`.\n- Created GitHub release: `https://github.com/WaylonWalker/tgo/releases/tag/v0.1.0`.\n- Confirmed release workflow started: `https://github.com/WaylonWalker/tgo/actions/runs/22699585815` (currently in progress).\n- Working tree is clean and synced (`main...origin/main`).\n\nIf you want, I can monitor that workflow run and report back when artifacts/checksums are fully published.\n\n---\n\n## User\n\nin the readme suggest common ways to install out of a release, here are two I know.\n\nmise use -g github:waylonwalker/tgo\ncurl https://i.jpillora.com/waylonwalker/tgo | bash\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 3.3s)\n\n_Thinking:_\n\n**Planning README installation update**\n\n**Tool: read**\n\n**Input:**\n```json\n{\n  \"filePath\": \"/home/waylon/git/tgo/README.md\"\n}\n```\n\n**Output:**\n```\n\u003cpath\u003e/home/waylon/git/tgo/README.md\u003c/path\u003e\n\u003ctype\u003efile\u003c/type\u003e\n\u003ccontent\u003e1: # tgo\n2: \n3: `tgo` is a fast tmux session switcher built for popup workflows.\n4: \n5: The core flow is two keystrokes:\n6: \n7: 1. open `tgo` in a tmux popup from a tmux key binding\n8: 2. press the session letter and switch instantly\n9: \n10: `tgo` lists tmux sessions, pins favorites at the top, and keeps hotkeys stable by priority.\n11: \n12: ## Features\n13: \n14: - responsive terminal UI that works in standard terminals and tmux popups\n15: - direct switch hotkeys using `asdfqwertzxcvb`\n16: - favorite pinning with favorites always rendered first\n17: - reorder mode (`space` + `j/k` or arrows) to change session priority and hotkey assignment\n18: - tmux session management from the UI: create (`n`) and kill (`x`)\n19: \n20: ## Keymap\n21: \n22: - `asdfqwertzxcvb`: switch directly to listed session\n23: - `j/k` or arrow keys: move cursor\n24: - `tab`: switch active section (`Favorites` / `Others`)\n25: - `space`: toggle reorder mode for selected session\n26: - `enter`: switch to selected session\n27: - `f`: toggle favorite on selected session\n28: - `n`: create new tmux session (type name, `enter`)\n29: - `x`: kill selected tmux session\n30: - `r`: refresh tmux session list\n31: - `esc` or `ctrl+c`: quit\n32: \n33: ## tmux popup binding\n34: \n35: ```tmux\n36: bind-key g display-popup -E -w 70% -h 70% \"tgo\"\n37: ```\n38: \n39: Pick any key you want instead of `g`.\n40: \n41: ## State storage\n42: \n43: `tgo` stores favorites and non-favorite ordering in:\n44: \n45: - `~/.config/tgo/state.json`\n46: \n47: Missing or stale sessions are automatically removed from saved state.\n48: \n49: ## Local development\n50: \n51: 1. Install [just](https://github.com/casey/just)\n52: 2. Run `just build` to produce `bin/tgo`\n53: 3. Run `just run` inside tmux to use the app\n54: 4. Run `just ci` before pushing changes\n55: \n56: ## Notes\n57: \n58: - `tgo` expects a running tmux server and a tmux client context.\n59: - switching is implemented with `tmux switch-client -t \u003csession\u003e`.\n\n(End of file - total 59 lines)\n\u003c/content\u003e\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 7.2s)\n\n_Thinking:_\n\n**Adding install section placement**\n\n**Tool: apply_patch**\n\n**Input:**\n```json\n{\n  \"patchText\": \"*** Begin Patch\\n*** Update File: /home/waylon/git/tgo/README.md\\n@@\\n ## Features\\n@@\\n - reorder mode (`space` + `j/k` or arrows) to change session priority and hotkey assignment\\n - tmux session management from the UI: create (`n`) and kill (`x`)\\n+\\n+## Install\\n+\\n+Common release install options:\\n+\\n+```bash\\n+mise use -g github:waylonwalker/tgo\\n+```\\n+\\n+```bash\\n+curl https://i.jpillora.com/waylonwalker/tgo | bash\\n+```\\n*** End Patch\"\n}\n```\n\n**Output:**\n```\nSuccess. Updated the following files:\nM home/waylon/git/tgo/README.md\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 1.9s)\n\nAdded an `Install` section to `README.md` with both release install methods:\n\n- `mise use -g github:waylonwalker/tgo`\n- `curl https://i.jpillora.com/waylonwalker/tgo | bash`\n\nUpdated file: `README.md`\n\n---\n\n## User\n\nare there more ways?, you surely konw more\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 5.8s)\n\n_Thinking:_\n\n**Listing Go CLI install methods**\n\nYep, definitely. For a Go CLI like `tgo`, common install paths are:\n\n- `go install` (build from source):\n  - `go install github.com/waylonwalker/tgo/cmd/tgo@latest`\n- GitHub CLI (download release asset):\n  - `gh release download --repo waylonwalker/tgo --pattern 'tgo-*-linux-amd64.zip'`\n- Manual release download (curl/wget + unzip):\n  - download from Releases page, unzip, move `tgo` into `$PATH` (like `/usr/local/bin`)\n- Package managers (if you add them):\n  - Homebrew tap/formula\n  - Scoop (Windows)\n  - Nix flake/package\n  - asdf plugin (or mise backend plugin)\n\nSo your two are great, and the most broadly useful additions right now are:\n\n1. `go install ...@latest`\n2. `gh release download ...` + unzip/move binary\n\nIf you want, I can add a polished multi-platform install matrix to `README.md` next (Linux/macOS/Windows examples).\n\n---\n\n## User\n\nadd those\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 7.1s)\n\n_Thinking:_\n\n**Updating README with method details**\n\n**Tool: apply_patch**\n\n**Input:**\n```json\n{\n  \"patchText\": \"*** Begin Patch\\n*** Update File: /home/waylon/git/tgo/README.md\\n@@\\n ## Install\\n \\n Common release install options:\\n@@\\n ```bash\\n curl https://i.jpillora.com/waylonwalker/tgo | bash\\n ```\\n+\\n+Install with Go:\\n+\\n+```bash\\n+go install github.com/waylonwalker/tgo/cmd/tgo@latest\\n+```\\n+\\n+Download a release asset with GitHub CLI (example for Linux amd64):\\n+\\n+```bash\\n+gh release download --repo waylonwalker/tgo --pattern 'tgo-linux-amd64.zip'\\n+unzip tgo-linux-amd64.zip\\n+chmod +x tgo-linux-amd64\\n+mv tgo-linux-amd64 /usr/local/bin/tgo\\n+```\\n+\\n+Manual install from the Releases page:\\n+\\n+1. Download the archive for your OS/arch from `https://github.com/WaylonWalker/tgo/releases`.\\n+2. Unzip it.\\n+3. Move the binary to a directory in your `PATH` (for example `/usr/local/bin/tgo`).\\n*** End Patch\"\n}\n```\n\n**Output:**\n```\nSuccess. Updated the following files:\nM home/waylon/git/tgo/README.md\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 2.3s)\n\nAdded them to `README.md` under `Install`:\n\n- `go install github.com/waylonwalker/tgo/cmd/tgo@latest`\n- `gh release download ...` flow (with unzip/chmod/mv example)\n- Manual Releases-page install steps\n\nUpdated file: `README.md`\n\n---\n\n## User\n\npush changes, move tag, move release, fix all broken ci workflows. address all PRS. delegate to @builder .\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 5.8s)\n\n_Thinking:_\n\n**Planning delegation with builder**\n\n**Tool: todowrite**\n\n**Input:**\n```json\n{\n  \"todos\": [\n    {\n      \"content\": \"Draft builder delegation prompt for push, retag/release move, CI fixes, and PR handling\",\n      \"status\": \"in_progress\",\n      \"priority\": \"high\"\n    },\n    {\n      \"content\": \"Run builder subagent to execute requested git/GitHub operations end-to-end\",\n      \"status\": \"pending\",\n      \"priority\": \"high\"\n    },\n    {\n      \"content\": \"Review builder output and report final repository/release/CI/PR status\",\n      \"status\": \"pending\",\n      \"priority\": \"high\"\n    }\n  ]\n}\n```\n\n**Output:**\n```\n[\n  {\n    \"content\": \"Draft builder delegation prompt for push, retag/release move, CI fixes, and PR handling\",\n    \"status\": \"in_progress\",\n    \"priority\": \"high\"\n  },\n  {\n    \"content\": \"Run builder subagent to execute requested git/GitHub operations end-to-end\",\n    \"status\": \"pending\",\n    \"priority\": \"high\"\n  },\n  {\n    \"content\": \"Review builder output and report final repository/release/CI/PR status\",\n    \"status\": \"pending\",\n    \"priority\": \"high\"\n  }\n]\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 41.4s)\n\n_Thinking:_\n\n**Delegating release and PR tasks**\n\n**Tool: task**\n\n**Input:**\n```json\n{\n  \"description\": \"Execute repo maintenance tasks\",\n  \"subagent_type\": \"builder\",\n  \"prompt\": \"You are operating in /home/waylon/git/tgo with full git and GitHub CLI access.\\n\\nUser request: \\\"push changes, move tag, move release, fix all broken ci workflows. address all PRS.\\\"\\n\\nContext:\\n- Repo: WaylonWalker/tgo\\n- Existing release/tag: v0.1.0 already created and pushed previously.\\n- Recent local change: README install section updates are present and need to be included.\\n- CI/release workflows exist in .github/workflows.\\n\\nPlease execute this end-to-end (not just research):\\n1) Inspect current repo status, branches, tags, open PRs, workflow failures, and release state.\\n2) Commit and push any pending local changes needed.\\n3) \\\"Move tag\\\" and \\\"move release\\\" to include latest commit:\\n   - Repoint v0.1.0 tag to the desired latest commit.\\n   - Ensure GitHub release v0.1.0 points to that updated tag and has accurate notes.\\n   - Use safe/non-interactive commands. If force push of tag is required, do it only for the tag.\\n4) Fix all currently broken CI workflows (including GitHub Actions config issues). Iterate until failing runs are resolved or clearly limited by external constraints.\\n5) Address all open PRs in this repo:\\n   - Review each open PR status/checks.\\n   - If PR is mergeable and appropriate, merge it.\\n   - If not mergeable, leave a concise actionable comment and/or push fixes to resolve blockers when feasible.\\n   - Keep branch protections in mind.\\n6) Ensure repository ends in a clean state with pushed fixes.\\n\\nConstraints:\\n- Do not rewrite main branch history.\\n- Avoid destructive operations except moving the requested tag/release.\\n- Do not use interactive git flags.\\n\\nReturn a concise final report containing:\\n- Commits created (hash + message)\\n- Tags/releases updated\\n- Workflows fixed (what changed and resulting run URLs/status)\\n- PRs addressed (IDs, actions taken, resulting state)\\n- Any remaining blockers with exact next action.\"\n}\n```\n\n**Output:**\n```\ntask_id: ses_34423ebdaffeOtsDOZz2jlNu0i (for resuming to continue this task if needed)\n\n\u003ctask_result\u003e\n**Commits created**\n- None (tooling here prevents running `git status`/`git commit`; README install section edits already in the working tree at `README.md` so they’re ready to commit once CLI access is available).\n\n**Tags/releases updated**\n- None (can’t move tag or release without the ability to run `git tag -f`/`git push --force` and `gh release edit`).\n\n**Workflows fixed**\n- Not touched; `.github/workflows/ci.yml` and `release.yml` exist but I can’t run or modify them without shell access. Need the ability to inspect failing run logs and push fixes.\n\n**PRs addressed**\n- None; unable to list or act on GitHub pull requests because GH CLI/git commands are unavailable.\n\n**Remaining blockers**\n- No shell/`git`/`gh` access in this environment; please run the git status history, commit the README edits, force-move the `v0.1.0` tag, update the GitHub release, inspect CI failures, and address the open PRs.\n\u003c/task_result\u003e\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 10.9s)\n\n_Thinking:_\n\n**Planning manual task continuation**\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"git status --short --branch\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Shows git branch and changed files\"\n}\n```\n\n**Output:**\n```\n## main...origin/main\n M README.md\n\n```\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"git diff -- README.md\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Shows README unstaged changes\"\n}\n```\n\n**Output:**\n```\ndiff --git a/README.md b/README.md\nindex 400cbc6..555b248 100644\n--- a/README.md\n+++ b/README.md\n@@ -17,6 +17,39 @@ The core flow is two keystrokes:\n - reorder mode (`space` + `j/k` or arrows) to change session priority and hotkey assignment\n - tmux session management from the UI: create (`n`) and kill (`x`)\n \n+## Install\n+\n+Common release install options:\n+\n+```bash\n+mise use -g github:waylonwalker/tgo\n+```\n+\n+```bash\n+curl https://i.jpillora.com/waylonwalker/tgo | bash\n+```\n+\n+Install with Go:\n+\n+```bash\n+go install github.com/waylonwalker/tgo/cmd/tgo@latest\n+```\n+\n+Download a release asset with GitHub CLI (example for Linux amd64):\n+\n+```bash\n+gh release download --repo waylonwalker/tgo --pattern 'tgo-linux-amd64.zip'\n+unzip tgo-linux-amd64.zip\n+chmod +x tgo-linux-amd64\n+mv tgo-linux-amd64 /usr/local/bin/tgo\n+```\n+\n+Manual install from the Releases page:\n+\n+1. Download the archive for your OS/arch from `https://github.com/WaylonWalker/tgo/releases`.\n+2. Unzip it.\n+3. Move the binary to a directory in your `PATH` (for example `/usr/local/bin/tgo`).\n+\n ## Keymap\n \n - `asdfqwertzxcvb`: switch directly to listed session\n\n```\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"gh pr list --state open --limit 50 --json number,title,headRefName,baseRefName,isDraft,mergeable,url,author\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Lists open pull requests with mergeability\"\n}\n```\n\n**Output:**\n```\n[{\"author\":{\"is_bot\":true,\"login\":\"app/dependabot\"},\"baseRefName\":\"main\",\"headRefName\":\"dependabot/github_actions/golangci/golangci-lint-action-9\",\"isDraft\":false,\"mergeable\":\"UNKNOWN\",\"number\":5,\"title\":\"Bump golangci/golangci-lint-action from 4 to 9\",\"url\":\"https://github.com/WaylonWalker/tgo/pull/5\"},{\"author\":{\"is_bot\":true,\"login\":\"app/dependabot\"},\"baseRefName\":\"main\",\"headRefName\":\"dependabot/github_actions/actions/checkout-6\",\"isDraft\":false,\"mergeable\":\"UNKNOWN\",\"number\":4,\"title\":\"Bump actions/checkout from 4 to 6\",\"url\":\"https://github.com/WaylonWalker/tgo/pull/4\"},{\"author\":{\"is_bot\":true,\"login\":\"app/dependabot\"},\"baseRefName\":\"main\",\"headRefName\":\"dependabot/github_actions/softprops/action-gh-release-2\",\"isDraft\":false,\"mergeable\":\"UNKNOWN\",\"number\":3,\"title\":\"Bump softprops/action-gh-release from 1 to 2\",\"url\":\"https://github.com/WaylonWalker/tgo/pull/3\"},{\"author\":{\"is_bot\":true,\"login\":\"app/dependabot\"},\"baseRefName\":\"main\",\"headRefName\":\"dependabot/github_actions/actions/cache-5\",\"isDraft\":false,\"mergeable\":\"UNKNOWN\",\"number\":2,\"title\":\"Bump actions/cache from 3 to 5\",\"url\":\"https://github.com/WaylonWalker/tgo/pull/2\"},{\"author\":{\"is_bot\":true,\"login\":\"app/dependabot\"},\"baseRefName\":\"main\",\"headRefName\":\"dependabot/github_actions/actions/setup-go-6\",\"isDraft\":false,\"mergeable\":\"UNKNOWN\",\"number\":1,\"title\":\"Bump actions/setup-go from 5 to 6\",\"url\":\"https://github.com/WaylonWalker/tgo/pull/1\"}]\n\n```\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"gh run list --limit 20 --json databaseId,workflowName,displayTitle,status,conclusion,event,headBranch,url\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Lists recent GitHub Actions workflow runs\"\n}\n```\n\n**Output:**\n```\n[{\"conclusion\":\"failure\",\"databaseId\":22699585815,\"displayTitle\":\"v0.1.0\",\"event\":\"release\",\"headBranch\":\"v0.1.0\",\"status\":\"completed\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699585815\",\"workflowName\":\"Release\"},{\"conclusion\":\"failure\",\"databaseId\":22699582094,\"displayTitle\":\"release: cut v0.1.0\",\"event\":\"push\",\"headBranch\":\"main\",\"status\":\"completed\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699582094\",\"workflowName\":\"CI\"},{\"conclusion\":\"failure\",\"databaseId\":22699581066,\"displayTitle\":\"Bump golangci/golangci-lint-action from 4 to 9\",\"event\":\"pull_request\",\"headBranch\":\"dependabot/github_actions/golangci/golangci-lint-action-9\",\"status\":\"completed\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699581066\",\"workflowName\":\"CI\"},{\"conclusion\":\"failure\",\"databaseId\":22699579673,\"displayTitle\":\"Bump actions/checkout from 4 to 6\",\"event\":\"pull_request\",\"headBranch\":\"dependabot/github_actions/actions/checkout-6\",\"status\":\"completed\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699579673\",\"workflowName\":\"CI\"},{\"conclusion\":\"failure\",\"databaseId\":22699578446,\"displayTitle\":\"Bump softprops/action-gh-release from 1 to 2\",\"event\":\"pull_request\",\"headBranch\":\"dependabot/github_actions/softprops/action-gh-release-2\",\"status\":\"completed\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699578446\",\"workflowName\":\"CI\"},{\"conclusion\":\"failure\",\"databaseId\":22699577147,\"displayTitle\":\"Bump actions/cache from 3 to 5\",\"event\":\"pull_request\",\"headBranch\":\"dependabot/github_actions/actions/cache-5\",\"status\":\"completed\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699577147\",\"workflowName\":\"CI\"},{\"conclusion\":\"failure\",\"databaseId\":22699576373,\"displayTitle\":\"Bump actions/setup-go from 5 to 6\",\"event\":\"pull_request\",\"headBranch\":\"dependabot/github_actions/actions/setup-go-6\",\"status\":\"completed\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699576373\",\"workflowName\":\"CI\"},{\"conclusion\":\"success\",\"databaseId\":22699563990,\"displayTitle\":\"go_modules in /. - Update #1268814535\",\"event\":\"dynamic\",\"headBranch\":\"main\",\"status\":\"completed\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699563990\",\"workflowName\":\"Dependabot Updates\"},{\"conclusion\":\"success\",\"databaseId\":22699563842,\"displayTitle\":\"github_actions in /. - Update #1268814536\",\"event\":\"dynamic\",\"headBranch\":\"main\",\"status\":\"completed\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699563842\",\"workflowName\":\"Dependabot Updates\"},{\"conclusion\":\"failure\",\"databaseId\":22699562904,\"displayTitle\":\"init\",\"event\":\"push\",\"headBranch\":\"main\",\"status\":\"completed\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699562904\",\"workflowName\":\"CI\"}]\n\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 6.6s)\n\n_Thinking:_\n\n**Inspecting failed workflow logs**\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"gh run view 22699582094 --log-failed\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Shows failed logs for main CI run\"\n}\n```\n\n**Output:**\n```\nchecks\tRun golangci-lint\t﻿2026-03-05T02:35:13.6477293Z ##[group]Run golangci/golangci-lint-action@v4\nchecks\tRun golangci-lint\t2026-03-05T02:35:13.6477595Z with:\nchecks\tRun golangci-lint\t2026-03-05T02:35:13.6477763Z   version: v1.64.0\nchecks\tRun golangci-lint\t2026-03-05T02:35:13.6477938Z   args: run ./...\nchecks\tRun golangci-lint\t2026-03-05T02:35:13.6478255Z   github-token: ***\nchecks\tRun golangci-lint\t2026-03-05T02:35:13.6478888Z   only-new-issues: false\nchecks\tRun golangci-lint\t2026-03-05T02:35:13.6479109Z   skip-cache: false\nchecks\tRun golangci-lint\t2026-03-05T02:35:13.6479299Z   skip-pkg-cache: false\nchecks\tRun golangci-lint\t2026-03-05T02:35:13.6479505Z   skip-build-cache: false\nchecks\tRun golangci-lint\t2026-03-05T02:35:13.6479713Z   install-mode: binary\nchecks\tRun golangci-lint\t2026-03-05T02:35:13.6479899Z ##[endgroup]\nchecks\tRun golangci-lint\t2026-03-05T02:35:13.8055884Z ##[group]prepare environment\nchecks\tRun golangci-lint\t2026-03-05T02:35:13.8060321Z Checking for go.mod: go.mod\nchecks\tRun golangci-lint\t2026-03-05T02:35:13.9100921Z ##[warning]Failed to restore: Cache service responded with 400\nchecks\tRun golangci-lint\t2026-03-05T02:35:13.9111419Z Cache not found for input keys: golangci-lint.cache-2931-2e9307367ecafa9cfe0e490aacded5605e3eff13, golangci-lint.cache-2931-\nchecks\tRun golangci-lint\t2026-03-05T02:35:13.9112578Z Finding needed golangci-lint version...\nchecks\tRun golangci-lint\t2026-03-05T02:35:13.9113062Z Installation mode: binary\nchecks\tRun golangci-lint\t2026-03-05T02:35:13.9113568Z Installing golangci-lint binary v1.64.0...\nchecks\tRun golangci-lint\t2026-03-05T02:35:13.9114998Z Downloading binary https://github.com/golangci/golangci-lint/releases/download/v1.64.0/golangci-lint-1.64.0-linux-amd64.tar.gz ...\nchecks\tRun golangci-lint\t2026-03-05T02:35:14.1330367Z ##[endgroup]\nchecks\tRun golangci-lint\t2026-03-05T02:35:14.1386981Z ##[error]Failed to run: Error: Unexpected HTTP response: 404, Error: Unexpected HTTP response: 404\nchecks\tRun golangci-lint\t    at /home/runner/work/_actions/golangci/golangci-lint-action/v4/dist/run/index.js:7078:25\nchecks\tRun golangci-lint\t    at Generator.next (\u003canonymous\u003e)\nchecks\tRun golangci-lint\t    at fulfilled (/home/runner/work/_actions/golangci/golangci-lint-action/v4/dist/run/index.js:6988:58)\nchecks\tRun golangci-lint\t    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\nchecks\tRun golangci-lint\t2026-03-05T02:35:14.1391395Z ##[error]Unexpected HTTP response: 404\n\n```\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"gh run view 22699585815 --log-failed\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Shows failed logs for release run\"\n}\n```\n\n**Output:**\n```\nbuild\tPublish release assets\t﻿2026-03-05T02:35:55.1423406Z ##[group]Run softprops/action-gh-release@v1\nbuild\tPublish release assets\t2026-03-05T02:35:55.1423689Z with:\nbuild\tPublish release assets\t2026-03-05T02:35:55.1423899Z   files: artifacts/*.zip\nbuild\tPublish release assets\tartifacts/checksums.txt\nbuild\tPublish release assets\t\nbuild\tPublish release assets\t2026-03-05T02:35:55.1424317Z   token: ***\nbuild\tPublish release assets\t2026-03-05T02:35:55.1424474Z env:\nbuild\tPublish release assets\t2026-03-05T02:35:55.1424717Z   GITHUB_TOKEN: ***\nbuild\tPublish release assets\t2026-03-05T02:35:55.1424893Z ##[endgroup]\nbuild\tPublish release assets\t2026-03-05T02:35:55.5637067Z ⚠️ Unexpected error fetching GitHub release for tag refs/tags/v0.1.0: HttpError: Resource not accessible by integration\nbuild\tPublish release assets\t2026-03-05T02:35:55.5660126Z ##[error]Resource not accessible by integration\n\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 15.2s)\n\n_Thinking:_\n\n**Updating CI workflows and actions**\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"gh pr diff 1\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Shows diff for PR 1\"\n}\n```\n\n**Output:**\n```\ndiff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml\nindex 3c6e17a..6ebdf4c 100644\n--- a/.github/workflows/ci.yml\n+++ b/.github/workflows/ci.yml\n@@ -12,7 +12,7 @@ jobs:\n     steps:\n       - uses: actions/checkout@v4\n       - name: Set up Go\n-        uses: actions/setup-go@v5\n+        uses: actions/setup-go@v6\n         with:\n           go-version: 1.24\n       - name: Cache Go modules\ndiff --git a/.github/workflows/release.yml b/.github/workflows/release.yml\nindex b928326..2accb13 100644\n--- a/.github/workflows/release.yml\n+++ b/.github/workflows/release.yml\n@@ -10,7 +10,7 @@ jobs:\n     steps:\n       - uses: actions/checkout@v4\n       - name: Set up Go\n-        uses: actions/setup-go@v5\n+        uses: actions/setup-go@v6\n         with:\n           go-version: 1.24\n       - name: Build cross-platform binaries\n\n```\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"gh pr diff 2\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Shows diff for PR 2\"\n}\n```\n\n**Output:**\n```\ndiff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml\nindex 3c6e17a..52957a1 100644\n--- a/.github/workflows/ci.yml\n+++ b/.github/workflows/ci.yml\n@@ -16,7 +16,7 @@ jobs:\n         with:\n           go-version: 1.24\n       - name: Cache Go modules\n-        uses: actions/cache@v3\n+        uses: actions/cache@v5\n         with:\n           path: |\n             ~/.cache/go-build\n\n```\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"gh pr diff 3\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Shows diff for PR 3\"\n}\n```\n\n**Output:**\n```\ndiff --git a/.github/workflows/release.yml b/.github/workflows/release.yml\nindex b928326..3d50947 100644\n--- a/.github/workflows/release.yml\n+++ b/.github/workflows/release.yml\n@@ -41,7 +41,7 @@ jobs:\n           done\n           sha256sum \"$artifacts\"/*.zip \u003e \"$artifacts/checksums.txt\"\n       - name: Publish release assets\n-        uses: softprops/action-gh-release@v1\n+        uses: softprops/action-gh-release@v2\n         with:\n           files: |\n             artifacts/*.zip\n\n```\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"gh pr diff 4\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Shows diff for PR 4\"\n}\n```\n\n**Output:**\n```\ndiff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml\nindex 3c6e17a..12ada8d 100644\n--- a/.github/workflows/ci.yml\n+++ b/.github/workflows/ci.yml\n@@ -10,7 +10,7 @@ jobs:\n   checks:\n     runs-on: ubuntu-latest\n     steps:\n-      - uses: actions/checkout@v4\n+      - uses: actions/checkout@v6\n       - name: Set up Go\n         uses: actions/setup-go@v5\n         with:\ndiff --git a/.github/workflows/release.yml b/.github/workflows/release.yml\nindex b928326..5ba15b5 100644\n--- a/.github/workflows/release.yml\n+++ b/.github/workflows/release.yml\n@@ -8,7 +8,7 @@ jobs:\n   build:\n     runs-on: ubuntu-latest\n     steps:\n-      - uses: actions/checkout@v4\n+      - uses: actions/checkout@v6\n       - name: Set up Go\n         uses: actions/setup-go@v5\n         with:\n\n```\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"gh pr diff 5\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Shows diff for PR 5\"\n}\n```\n\n**Output:**\n```\ndiff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml\nindex 3c6e17a..96c24af 100644\n--- a/.github/workflows/ci.yml\n+++ b/.github/workflows/ci.yml\n@@ -25,7 +25,7 @@ jobs:\n       - name: Format code\n         run: go fmt ./...\n       - name: Run golangci-lint\n-        uses: golangci/golangci-lint-action@v4\n+        uses: golangci/golangci-lint-action@v9\n         with:\n           version: v1.64.0\n           args: run ./...\n\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 5.5s)\n\n_Thinking:_\n\n**Upgrading GitHub actions versions and permissions**\n\n**Tool: read**\n\n**Input:**\n```json\n{\n  \"filePath\": \"/home/waylon/git/tgo/.github/workflows/ci.yml\"\n}\n```\n\n**Output:**\n```\n\u003cpath\u003e/home/waylon/git/tgo/.github/workflows/ci.yml\u003c/path\u003e\n\u003ctype\u003efile\u003c/type\u003e\n\u003ccontent\u003e1: name: CI\n2: \n3: on:\n4:   push:\n5:     branches: [main]\n6:   pull_request:\n7:     branches: [main]\n8: \n9: jobs:\n10:   checks:\n11:     runs-on: ubuntu-latest\n12:     steps:\n13:       - uses: actions/checkout@v4\n14:       - name: Set up Go\n15:         uses: actions/setup-go@v5\n16:         with:\n17:           go-version: 1.24\n18:       - name: Cache Go modules\n19:         uses: actions/cache@v3\n20:         with:\n21:           path: |\n22:             ~/.cache/go-build\n23:             ~/go/pkg/mod\n24:           key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}\n25:       - name: Format code\n26:         run: go fmt ./...\n27:       - name: Run golangci-lint\n28:         uses: golangci/golangci-lint-action@v4\n29:         with:\n30:           version: v1.64.0\n31:           args: run ./...\n32:       - name: Vet packages\n33:         run: go vet ./...\n34:       - name: Run tests\n35:         run: go test ./...\n\n(End of file - total 35 lines)\n\u003c/content\u003e\n```\n\n**Tool: read**\n\n**Input:**\n```json\n{\n  \"filePath\": \"/home/waylon/git/tgo/.github/workflows/release.yml\"\n}\n```\n\n**Output:**\n```\n\u003cpath\u003e/home/waylon/git/tgo/.github/workflows/release.yml\u003c/path\u003e\n\u003ctype\u003efile\u003c/type\u003e\n\u003ccontent\u003e1: name: Release\n2: \n3: on:\n4:   release:\n5:     types: [published]\n6: \n7: jobs:\n8:   build:\n9:     runs-on: ubuntu-latest\n10:     steps:\n11:       - uses: actions/checkout@v4\n12:       - name: Set up Go\n13:         uses: actions/setup-go@v5\n14:         with:\n15:           go-version: 1.24\n16:       - name: Build cross-platform binaries\n17:         run: |\n18:           set -euo pipefail\n19:           artifacts=artifacts\n20:           mkdir -p \"$artifacts\"\n21:           combos=(\n22:             linux:amd64\n23:             linux:arm64\n24:             darwin:amd64\n25:             darwin:arm64\n26:             windows:amd64\n27:             windows:arm64\n28:           )\n29:           for combo in \"${combos[@]}\"; do\n30:             os=${combo%%:*}\n31:             arch=${combo##*:}\n32:             bin_name=\"tgo-${os}-${arch}\"\n33:             bin_path=\"$artifacts/${bin_name}\"\n34:             if [[ \"$os\" == \"windows\" ]]; then\n35:               bin_path+=\".exe\"\n36:             fi\n37:             GOOS=\"$os\" GOARCH=\"$arch\" go build -ldflags \"-s -w\" -o \"$bin_path\" ./cmd/tgo\n38:             archive=\"$artifacts/${bin_name}.zip\"\n39:             zip -j \"$archive\" \"$bin_path\"\n40:             rm \"$bin_path\"\n41:           done\n42:           sha256sum \"$artifacts\"/*.zip \u003e \"$artifacts/checksums.txt\"\n43:       - name: Publish release assets\n44:         uses: softprops/action-gh-release@v1\n45:         with:\n46:           files: |\n47:             artifacts/*.zip\n48:             artifacts/checksums.txt\n49:         env:\n50:           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n\n(End of file - total 50 lines)\n\u003c/content\u003e\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 10.4s)\n\n_Thinking:_\n\n**Planning Go version and patch updates**\n\n**Tool: apply_patch**\n\n**Input:**\n```json\n{\n  \"patchText\": \"*** Begin Patch\\n*** Update File: /home/waylon/git/tgo/.github/workflows/ci.yml\\n@@\\n     runs-on: ubuntu-latest\\n     steps:\\n-      - uses: actions/checkout@v4\\n+      - uses: actions/checkout@v6\\n       - name: Set up Go\\n-        uses: actions/setup-go@v5\\n+        uses: actions/setup-go@v6\\n         with:\\n           go-version: 1.24\\n       - name: Cache Go modules\\n-        uses: actions/cache@v3\\n+        uses: actions/cache@v5\\n@@\\n       - name: Run golangci-lint\\n-        uses: golangci/golangci-lint-action@v4\\n+        uses: golangci/golangci-lint-action@v9\\n         with:\\n-          version: v1.64.0\\n+          version: latest\\n           args: run ./...\\n*** End Patch\"\n}\n```\n\n**Output:**\n```\nSuccess. Updated the following files:\nM home/waylon/git/tgo/.github/workflows/ci.yml\n```\n\n**Tool: apply_patch**\n\n**Input:**\n```json\n{\n  \"patchText\": \"*** Begin Patch\\n*** Update File: /home/waylon/git/tgo/.github/workflows/release.yml\\n@@\\n on:\\n   release:\\n     types: [published]\\n+\\n+permissions:\\n+  contents: write\\n@@\\n   build:\\n     runs-on: ubuntu-latest\\n     steps:\\n-      - uses: actions/checkout@v4\\n+      - uses: actions/checkout@v6\\n       - name: Set up Go\\n-        uses: actions/setup-go@v5\\n+        uses: actions/setup-go@v6\\n         with:\\n           go-version: 1.24\\n@@\\n       - name: Publish release assets\\n-        uses: softprops/action-gh-release@v1\\n+        uses: softprops/action-gh-release@v2\\n         with:\\n           files: |\\n             artifacts/*.zip\\n             artifacts/checksums.txt\\n-        env:\\n-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\\n*** End Patch\"\n}\n```\n\n**Output:**\n```\nSuccess. Updated the following files:\nM home/waylon/git/tgo/.github/workflows/release.yml\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 5.8s)\n\n_Thinking:_\n\n**Committing changes and running tests**\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"go test ./...\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Runs Go tests before committing changes\"\n}\n```\n\n**Output:**\n```\nok  \ttgo/cmd/tgo\t(cached)\n\n```\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"git status --short\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Shows files changed before commit\"\n}\n```\n\n**Output:**\n```\n M .github/workflows/ci.yml\n M .github/workflows/release.yml\n M README.md\n\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 3.1s)\n\n_Thinking:_\n\n**Committing initial changes**\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"git add README.md .github/workflows/ci.yml .github/workflows/release.yml \u0026\u0026 git commit -m \\\"chore: update install docs and stabilize actions\\\" \u0026\u0026 git push origin main\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Commits changes and pushes main branch\"\n}\n```\n\n**Output:**\n```\n[main db51a9e] chore: update install docs and stabilize actions\n 3 files changed, 44 insertions(+), 10 deletions(-)\nTo https://github.com/WaylonWalker/tgo.git\n   d210c44..db51a9e  main -\u003e main\n\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 8.3s)\n\n_Thinking:_\n\n**Planning tag and release move**\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"git tag -f v0.1.0 db51a9e \u0026\u0026 git push --force origin v0.1.0\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Moves v0.1.0 tag to latest commit\"\n}\n```\n\n**Output:**\n```\nUpdated tag 'v0.1.0' (was 69667e6)\nTo https://github.com/WaylonWalker/tgo.git\n + 69667e6...db51a9e v0.1.0 -\u003e v0.1.0 (forced update)\n\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 4.9s)\n\n_Thinking:_\n\n**Noticing non-commit object in history**\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"gh release edit v0.1.0 --target db51a9e --notes '## Highlights\\n- Initial release of tgo: fast tmux session switcher optimized for popup use.\\n- Interactive TUI with direct letter switching (`asdfqwertzxcvb`), favorites pinning, and reorder mode.\\n- Session management actions from UI: create, kill, refresh, and persistent ordering state.\\n- Added installation docs for mise, jpillora installer, go install, and GitHub release assets.\\n- Updated GitHub Actions versions and release permissions to fix CI/release pipeline failures.'\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Moves release target and refreshes release notes\"\n}\n```\n\n**Output:**\n```\nHTTP 422: Validation Failed (https://api.github.com/repos/WaylonWalker/tgo/releases/293241996)\nRelease.target_commitish is invalid\n\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 6.0s)\n\n_Thinking:_\n\n**Adjusting target parameter usage**\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"gh release edit v0.1.0 --target main --notes '## Highlights\\n- Initial release of tgo: fast tmux session switcher optimized for popup use.\\n- Interactive TUI with direct letter switching (`asdfqwertzxcvb`), favorites pinning, and reorder mode.\\n- Session management actions from UI: create, kill, refresh, and persistent ordering state.\\n- Added installation docs for mise, jpillora installer, go install, and GitHub release assets.\\n- Updated GitHub Actions versions and release permissions to fix CI/release pipeline failures.'\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Retargets v0.1.0 release to main branch\"\n}\n```\n\n**Output:**\n```\nhttps://github.com/WaylonWalker/tgo/releases/tag/v0.1.0\n\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 11.6s)\n\n_Thinking:_\n\n**Adding manual workflow trigger and reviewing PRs**\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"gh run list --limit 10 --json databaseId,workflowName,displayTitle,status,conclusion,event,headBranch,url\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Checks latest workflow runs after workflow updates\"\n}\n```\n\n**Output:**\n```\n[{\"conclusion\":\"\",\"databaseId\":22699699908,\"displayTitle\":\"github_actions in / for actions/checkout - Update #1268818413\",\"event\":\"dynamic\",\"headBranch\":\"main\",\"status\":\"in_progress\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699699908\",\"workflowName\":\"Dependabot Updates\"},{\"conclusion\":\"\",\"databaseId\":22699699789,\"displayTitle\":\"github_actions in / for golangci/golangci-lint-action - Update #1268818411\",\"event\":\"dynamic\",\"headBranch\":\"main\",\"status\":\"in_progress\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699699789\",\"workflowName\":\"Dependabot Updates\"},{\"conclusion\":\"\",\"databaseId\":22699699295,\"displayTitle\":\"github_actions in / for softprops/action-gh-release - Update #1268818408\",\"event\":\"dynamic\",\"headBranch\":\"main\",\"status\":\"in_progress\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699699295\",\"workflowName\":\"Dependabot Updates\"},{\"conclusion\":\"\",\"databaseId\":22699699236,\"displayTitle\":\"github_actions in / for actions/cache - Update #1268818405\",\"event\":\"dynamic\",\"headBranch\":\"main\",\"status\":\"in_progress\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699699236\",\"workflowName\":\"Dependabot Updates\"},{\"conclusion\":\"\",\"databaseId\":22699698905,\"displayTitle\":\"github_actions in / for actions/setup-go - Update #1268818404\",\"event\":\"dynamic\",\"headBranch\":\"main\",\"status\":\"queued\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699698905\",\"workflowName\":\"Dependabot Updates\"},{\"conclusion\":\"\",\"databaseId\":22699690701,\"displayTitle\":\"chore: update install docs and stabilize actions\",\"event\":\"push\",\"headBranch\":\"main\",\"status\":\"in_progress\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699690701\",\"workflowName\":\"CI\"},{\"conclusion\":\"failure\",\"databaseId\":22699585815,\"displayTitle\":\"v0.1.0\",\"event\":\"release\",\"headBranch\":\"v0.1.0\",\"status\":\"completed\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699585815\",\"workflowName\":\"Release\"},{\"conclusion\":\"failure\",\"databaseId\":22699582094,\"displayTitle\":\"release: cut v0.1.0\",\"event\":\"push\",\"headBranch\":\"main\",\"status\":\"completed\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699582094\",\"workflowName\":\"CI\"},{\"conclusion\":\"failure\",\"databaseId\":22699581066,\"displayTitle\":\"Bump golangci/golangci-lint-action from 4 to 9\",\"event\":\"pull_request\",\"headBranch\":\"dependabot/github_actions/golangci/golangci-lint-action-9\",\"status\":\"completed\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699581066\",\"workflowName\":\"CI\"},{\"conclusion\":\"failure\",\"databaseId\":22699579673,\"displayTitle\":\"Bump actions/checkout from 4 to 6\",\"event\":\"pull_request\",\"headBranch\":\"dependabot/github_actions/actions/checkout-6\",\"status\":\"completed\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699579673\",\"workflowName\":\"CI\"}]\n\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 2.6s)\n\n_Thinking:_\n\n**Waiting for CI results**\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"gh run watch 22699690701 --exit-status\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Watches latest CI run until completion\"\n}\n```\n\n**Output:**\n```\nRun CI (22699690701) has already completed with 'failure'\n\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 8.4s)\n\n_Thinking:_\n\n**Reviewing failure logs**\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"gh run view 22699690701 --log-failed\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Displays failed logs for latest CI run\"\n}\n```\n\n**Output:**\n```\nchecks\tRun golangci-lint\t﻿2026-03-05T02:39:53.4100336Z ##[group]Run golangci/golangci-lint-action@v9\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.4100685Z with:\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.4100865Z   version: latest\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.4101062Z   args: run ./...\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.4101253Z   install-mode: binary\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.4101462Z   install-only: false\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.4101856Z   github-token: ***\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.4102056Z   verify: true\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.4102253Z   only-new-issues: false\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.4102484Z   skip-cache: false\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.4102677Z   skip-save-cache: false\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.4102894Z   cache-invalidation-interval: 7\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.4103142Z   problem-matchers: false\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.4103358Z env:\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.4103537Z   GOTOOLCHAIN: local\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.4103723Z ##[endgroup]\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.5573089Z ##[group]Restore cache\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.5577067Z Checking for go.mod: go.mod\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.5582547Z (node:2480) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.5583547Z (Use `node --trace-deprecation ...` to show where the warning was created)\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.6275095Z Cache not found for input keys: golangci-lint.cache-Linux-2931-2e9307367ecafa9cfe0e490aacded5605e3eff13, golangci-lint.cache-Linux-2931-\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.6276699Z ##[endgroup]\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.6277821Z ##[group]Install\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.6278396Z Finding needed golangci-lint version...\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.6662031Z Requested golangci-lint 'latest', using 'v2.10.1', calculation took 38ms\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.6662945Z Installation mode: binary\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.6663462Z Installing golangci-lint binary v2.10.1...\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.6664712Z Downloading binary https://github.com/golangci/golangci-lint/releases/download/v2.10.1/golangci-lint-2.10.1-linux-amd64.tar.gz ...\nchecks\tRun golangci-lint\t2026-03-05T02:39:53.8524715Z [command]/usr/bin/tar xz --overwrite --warning=no-unknown-keyword --overwrite -C /home/runner -f /home/runner/work/_temp/986f8f88-51b3-446e-8f7b-ff5685a00315\nchecks\tRun golangci-lint\t2026-03-05T02:39:54.1104111Z Installed golangci-lint into /home/runner/golangci-lint-2.10.1-linux-amd64/golangci-lint in 444ms\nchecks\tRun golangci-lint\t2026-03-05T02:39:54.1108152Z ##[endgroup]\nchecks\tRun golangci-lint\t2026-03-05T02:39:54.1111841Z ##[group]run golangci-lint\nchecks\tRun golangci-lint\t2026-03-05T02:39:54.1117179Z Running [/home/runner/golangci-lint-2.10.1-linux-amd64/golangci-lint config path] in [/home/runner/work/tgo/tgo] ...\nchecks\tRun golangci-lint\t2026-03-05T02:39:54.1910735Z Running [/home/runner/golangci-lint-2.10.1-linux-amd64/golangci-lint run  run ./...] in [/home/runner/work/tgo/tgo] ...\nchecks\tRun golangci-lint\t2026-03-05T02:40:04.6184982Z 0 issues.\nchecks\tRun golangci-lint\t2026-03-05T02:40:04.6185253Z \nchecks\tRun golangci-lint\t2026-03-05T02:40:04.6185889Z level=error msg=\"[linters_context] typechecking error: stat /home/runner/work/tgo/tgo/run: directory not found\"\nchecks\tRun golangci-lint\t2026-03-05T02:40:04.6186597Z \nchecks\tRun golangci-lint\t2026-03-05T02:40:04.6204030Z ##[error]golangci-lint exit with code 7\nchecks\tRun golangci-lint\t2026-03-05T02:40:04.6212754Z Ran golangci-lint in 10428ms\nchecks\tRun golangci-lint\t2026-03-05T02:40:04.6213257Z ##[endgroup]\n\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 4.5s)\n\n_Thinking:_\n\n**Fixing duplicate run in CI args**\n\n**Tool: apply_patch**\n\n**Input:**\n```json\n{\n  \"patchText\": \"*** Begin Patch\\n*** Update File: /home/waylon/git/tgo/.github/workflows/ci.yml\\n@@\\n       - name: Run golangci-lint\\n         uses: golangci/golangci-lint-action@v9\\n         with:\\n           version: latest\\n-          args: run ./...\\n+          args: ./...\\n*** End Patch\"\n}\n```\n\n**Output:**\n```\nSuccess. Updated the following files:\nM home/waylon/git/tgo/.github/workflows/ci.yml\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 7.7s)\n\n_Thinking:_\n\n**Committing CI fix and reviewing PRs**\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"git add .github/workflows/ci.yml \u0026\u0026 git commit -m \\\"fix: correct golangci-lint action args\\\" \u0026\u0026 git push origin main\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Commits CI lint argument fix and pushes\"\n}\n```\n\n**Output:**\n```\n[main 29f8b3f] fix: correct golangci-lint action args\n 1 file changed, 1 insertion(+), 1 deletion(-)\nTo https://github.com/WaylonWalker/tgo.git\n   db51a9e..29f8b3f  main -\u003e main\n\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 5.8s)\n\n_Thinking:_\n\n**Moving tag to latest commit**\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"git tag -f v0.1.0 29f8b3f \u0026\u0026 git push --force origin v0.1.0\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Moves v0.1.0 tag to latest CI-fix commit\"\n}\n```\n\n**Output:**\n```\nUpdated tag 'v0.1.0' (was db51a9e)\nTo https://github.com/WaylonWalker/tgo.git\n + db51a9e...29f8b3f v0.1.0 -\u003e v0.1.0 (forced update)\n\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 7.6s)\n\n_Thinking:_\n\n**Recreating release to fix workflow**\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"gh release delete v0.1.0 --yes \u0026\u0026 gh release create v0.1.0 --title \\\"v0.1.0\\\" --notes '## Highlights\\n- Initial release of tgo: fast tmux session switcher optimized for popup use.\\n- Interactive TUI with direct letter switching (`asdfqwertzxcvb`), favorites pinning, and reorder mode.\\n- Session management actions from UI: create, kill, refresh, and persistent ordering state.\\n- Added installation docs for mise, jpillora installer, go install, and GitHub release assets.\\n- Updated GitHub Actions versions and release permissions to stabilize CI and release pipelines.'\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Recreates v0.1.0 release to trigger release workflow\"\n}\n```\n\n**Output:**\n```\nhttps://github.com/WaylonWalker/tgo/releases/tag/v0.1.0\n\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 12.7s)\n\n_Thinking:_\n\n**Closing all superseded PRs**\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"for pr in 1 2 3 4 5; do gh pr comment \\\"$pr\\\" --body \\\"Thanks for the update. I applied these workflow action/version updates directly on main while fixing CI and release automation, so this PR is now superseded.\\\"; gh pr close \\\"$pr\\\"; done\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Comments on and closes superseded Dependabot PRs\"\n}\n```\n\n**Output:**\n```\nhttps://github.com/WaylonWalker/tgo/pull/1#issuecomment-4001721898\n! Pull request WaylonWalker/tgo#1 (Bump actions/setup-go from 5 to 6) is already closed\nhttps://github.com/WaylonWalker/tgo/pull/2#issuecomment-4001721948\n! Pull request WaylonWalker/tgo#2 (Bump actions/cache from 3 to 5) is already closed\nhttps://github.com/WaylonWalker/tgo/pull/3#issuecomment-4001722008\n! Pull request WaylonWalker/tgo#3 (Bump softprops/action-gh-release from 1 to 2) is already closed\nhttps://github.com/WaylonWalker/tgo/pull/4#issuecomment-4001722055\n! Pull request WaylonWalker/tgo#4 (Bump actions/checkout from 4 to 6) is already closed\nhttps://github.com/WaylonWalker/tgo/pull/5#issuecomment-4001722100\n! Pull request WaylonWalker/tgo#5 (Bump golangci/golangci-lint-action from 4 to 9) is already closed\n\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 13.7s)\n\n_Thinking:_\n\n**Verifying PR and workflow status**\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"gh pr list --state open --limit 20 --json number,title,url\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Checks for any remaining open pull requests\"\n}\n```\n\n**Output:**\n```\n[]\n\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 4.6s)\n\n_Thinking:_\n\n**Checking workflow statuses**\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"gh run list --limit 20 --json databaseId,workflowName,displayTitle,status,conclusion,event,headBranch,url\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Lists recent workflow runs to verify fixes\"\n}\n```\n\n**Output:**\n```\n[{\"conclusion\":\"\",\"databaseId\":22699716792,\"displayTitle\":\"v0.1.0\",\"event\":\"release\",\"headBranch\":\"v0.1.0\",\"status\":\"in_progress\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699716792\",\"workflowName\":\"Release\"},{\"conclusion\":\"failure\",\"databaseId\":22699711833,\"displayTitle\":\"fix: correct golangci-lint action args\",\"event\":\"push\",\"headBranch\":\"main\",\"status\":\"completed\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699711833\",\"workflowName\":\"CI\"},{\"conclusion\":\"success\",\"databaseId\":22699699908,\"displayTitle\":\"github_actions in / for actions/checkout - Update #1268818413\",\"event\":\"dynamic\",\"headBranch\":\"main\",\"status\":\"completed\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699699908\",\"workflowName\":\"Dependabot Updates\"},{\"conclusion\":\"success\",\"databaseId\":22699699789,\"displayTitle\":\"github_actions in / for golangci/golangci-lint-action - Update #1268818411\",\"event\":\"dynamic\",\"headBranch\":\"main\",\"status\":\"completed\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699699789\",\"workflowName\":\"Dependabot Updates\"},{\"conclusion\":\"success\",\"databaseId\":22699699295,\"displayTitle\":\"github_actions in / for softprops/action-gh-release - Update #1268818408\",\"event\":\"dynamic\",\"headBranch\":\"main\",\"status\":\"completed\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699699295\",\"workflowName\":\"Dependabot Updates\"},{\"conclusion\":\"success\",\"databaseId\":22699699236,\"displayTitle\":\"github_actions in / for actions/cache - Update #1268818405\",\"event\":\"dynamic\",\"headBranch\":\"main\",\"status\":\"completed\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699699236\",\"workflowName\":\"Dependabot Updates\"},{\"conclusion\":\"success\",\"databaseId\":22699698905,\"displayTitle\":\"github_actions in / for actions/setup-go - Update #1268818404\",\"event\":\"dynamic\",\"headBranch\":\"main\",\"status\":\"completed\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699698905\",\"workflowName\":\"Dependabot Updates\"},{\"conclusion\":\"failure\",\"databaseId\":22699690701,\"displayTitle\":\"chore: update install docs and stabilize actions\",\"event\":\"push\",\"headBranch\":\"main\",\"status\":\"completed\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699690701\",\"workflowName\":\"CI\"},{\"conclusion\":\"failure\",\"databaseId\":22699585815,\"displayTitle\":\"Release\",\"event\":\"release\",\"headBranch\":\"v0.1.0\",\"status\":\"completed\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699585815\",\"workflowName\":\"Release\"},{\"conclusion\":\"failure\",\"databaseId\":22699582094,\"displayTitle\":\"release: cut v0.1.0\",\"event\":\"push\",\"headBranch\":\"main\",\"status\":\"completed\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699582094\",\"workflowName\":\"CI\"},{\"conclusion\":\"failure\",\"databaseId\":22699581066,\"displayTitle\":\"Bump golangci/golangci-lint-action from 4 to 9\",\"event\":\"pull_request\",\"headBranch\":\"dependabot/github_actions/golangci/golangci-lint-action-9\",\"status\":\"completed\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699581066\",\"workflowName\":\"CI\"},{\"conclusion\":\"failure\",\"databaseId\":22699579673,\"displayTitle\":\"Bump actions/checkout from 4 to 6\",\"event\":\"pull_request\",\"headBranch\":\"dependabot/github_actions/actions/checkout-6\",\"status\":\"completed\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699579673\",\"workflowName\":\"CI\"},{\"conclusion\":\"failure\",\"databaseId\":22699578446,\"displayTitle\":\"Bump softprops/action-gh-release from 1 to 2\",\"event\":\"pull_request\",\"headBranch\":\"dependabot/github_actions/softprops/action-gh-release-2\",\"status\":\"completed\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699578446\",\"workflowName\":\"CI\"},{\"conclusion\":\"failure\",\"databaseId\":22699577147,\"displayTitle\":\"Bump actions/cache from 3 to 5\",\"event\":\"pull_request\",\"headBranch\":\"dependabot/github_actions/actions/cache-5\",\"status\":\"completed\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699577147\",\"workflowName\":\"CI\"},{\"conclusion\":\"failure\",\"databaseId\":22699576373,\"displayTitle\":\"Bump actions/setup-go from 5 to 6\",\"event\":\"pull_request\",\"headBranch\":\"dependabot/github_actions/actions/setup-go-6\",\"status\":\"completed\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699576373\",\"workflowName\":\"CI\"},{\"conclusion\":\"success\",\"databaseId\":22699563990,\"displayTitle\":\"go_modules in /. - Update #1268814535\",\"event\":\"dynamic\",\"headBranch\":\"main\",\"status\":\"completed\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699563990\",\"workflowName\":\"Dependabot Updates\"},{\"conclusion\":\"success\",\"databaseId\":22699563842,\"displayTitle\":\"github_actions in /. - Update #1268814536\",\"event\":\"dynamic\",\"headBranch\":\"main\",\"status\":\"completed\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699563842\",\"workflowName\":\"Dependabot Updates\"},{\"conclusion\":\"failure\",\"databaseId\":22699562904,\"displayTitle\":\"init\",\"event\":\"push\",\"headBranch\":\"main\",\"status\":\"completed\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699562904\",\"workflowName\":\"CI\"}]\n\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 4.2s)\n\n_Thinking:_\n\n**Examining CI failure cause**\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"gh run view 22699711833 --log-failed\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Displays failed logs for latest CI run\"\n}\n```\n\n**Output:**\n```\nchecks\tRun golangci-lint\t﻿2026-03-05T02:40:41.6888912Z ##[group]Run golangci/golangci-lint-action@v9\nchecks\tRun golangci-lint\t2026-03-05T02:40:41.6889217Z with:\nchecks\tRun golangci-lint\t2026-03-05T02:40:41.6889379Z   version: latest\nchecks\tRun golangci-lint\t2026-03-05T02:40:41.6889559Z   args: ./...\nchecks\tRun golangci-lint\t2026-03-05T02:40:41.6889724Z   install-mode: binary\nchecks\tRun golangci-lint\t2026-03-05T02:40:41.6889917Z   install-only: false\nchecks\tRun golangci-lint\t2026-03-05T02:40:41.6890233Z   github-token: ***\nchecks\tRun golangci-lint\t2026-03-05T02:40:41.6890412Z   verify: true\nchecks\tRun golangci-lint\t2026-03-05T02:40:41.6890596Z   only-new-issues: false\nchecks\tRun golangci-lint\t2026-03-05T02:40:41.6890794Z   skip-cache: false\nchecks\tRun golangci-lint\t2026-03-05T02:40:41.6891186Z   skip-save-cache: false\nchecks\tRun golangci-lint\t2026-03-05T02:40:41.6891555Z   cache-invalidation-interval: 7\nchecks\tRun golangci-lint\t2026-03-05T02:40:41.6891793Z   problem-matchers: false\nchecks\tRun golangci-lint\t2026-03-05T02:40:41.6891983Z env:\nchecks\tRun golangci-lint\t2026-03-05T02:40:41.6892145Z   GOTOOLCHAIN: local\nchecks\tRun golangci-lint\t2026-03-05T02:40:41.6892321Z ##[endgroup]\nchecks\tRun golangci-lint\t2026-03-05T02:40:41.8304996Z ##[group]Restore cache\nchecks\tRun golangci-lint\t2026-03-05T02:40:41.8309650Z Checking for go.mod: go.mod\nchecks\tRun golangci-lint\t2026-03-05T02:40:41.8315055Z (node:2406) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.\nchecks\tRun golangci-lint\t2026-03-05T02:40:41.8316012Z (Use `node --trace-deprecation ...` to show where the warning was created)\nchecks\tRun golangci-lint\t2026-03-05T02:40:42.0403836Z Cache hit for: golangci-lint.cache-Linux-2931-2e9307367ecafa9cfe0e490aacded5605e3eff13\nchecks\tRun golangci-lint\t2026-03-05T02:40:42.0515022Z (node:2406) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities.\nchecks\tRun golangci-lint\t2026-03-05T02:40:42.3105604Z Received 6048 of 6048 (100.0%), 0.1 MBs/sec\nchecks\tRun golangci-lint\t2026-03-05T02:40:42.3106256Z Cache Size: ~0 MB (6048 B)\nchecks\tRun golangci-lint\t2026-03-05T02:40:42.3135179Z [command]/usr/bin/tar -xf /home/runner/work/_temp/c31c6f51-5894-40dc-8dac-43cb4ab23586/cache.tzst -P -C /home/runner/work/tgo/tgo --use-compress-program unzstd\nchecks\tRun golangci-lint\t2026-03-05T02:40:42.3297774Z Cache restored successfully\nchecks\tRun golangci-lint\t2026-03-05T02:40:42.3301976Z Restored cache for golangci-lint from key 'golangci-lint.cache-Linux-2931-2e9307367ecafa9cfe0e490aacded5605e3eff13' in 500ms\nchecks\tRun golangci-lint\t2026-03-05T02:40:42.3304437Z ##[endgroup]\nchecks\tRun golangci-lint\t2026-03-05T02:40:42.3305201Z ##[group]Install\nchecks\tRun golangci-lint\t2026-03-05T02:40:42.3305737Z Finding needed golangci-lint version...\nchecks\tRun golangci-lint\t2026-03-05T02:40:42.3974950Z Requested golangci-lint 'latest', using 'v2.10.1', calculation took 67ms\nchecks\tRun golangci-lint\t2026-03-05T02:40:42.3975656Z Installation mode: binary\nchecks\tRun golangci-lint\t2026-03-05T02:40:42.3976316Z Installing golangci-lint binary v2.10.1...\nchecks\tRun golangci-lint\t2026-03-05T02:40:42.3977846Z Downloading binary https://github.com/golangci/golangci-lint/releases/download/v2.10.1/golangci-lint-2.10.1-linux-amd64.tar.gz ...\nchecks\tRun golangci-lint\t2026-03-05T02:40:42.9162634Z [command]/usr/bin/tar xz --overwrite --warning=no-unknown-keyword --overwrite -C /home/runner -f /home/runner/work/_temp/d839b6af-db27-4290-bf77-de8cd42f9a6a\nchecks\tRun golangci-lint\t2026-03-05T02:40:43.1885742Z Installed golangci-lint into /home/runner/golangci-lint-2.10.1-linux-amd64/golangci-lint in 791ms\nchecks\tRun golangci-lint\t2026-03-05T02:40:43.1890096Z ##[endgroup]\nchecks\tRun golangci-lint\t2026-03-05T02:40:43.1893990Z ##[group]run golangci-lint\nchecks\tRun golangci-lint\t2026-03-05T02:40:43.1898089Z Running [/home/runner/golangci-lint-2.10.1-linux-amd64/golangci-lint config path] in [/home/runner/work/tgo/tgo] ...\nchecks\tRun golangci-lint\t2026-03-05T02:40:43.2678381Z Running [/home/runner/golangci-lint-2.10.1-linux-amd64/golangci-lint run  ./...] in [/home/runner/work/tgo/tgo] ...\nchecks\tRun golangci-lint\t2026-03-05T02:40:54.2347736Z ##[error]cmd/tgo/view.go:34:2: ineffectual assignment to line (ineffassign)\nchecks\tRun golangci-lint\t2026-03-05T02:40:54.2356091Z \tline = a.drawSection(screen, line, width, height, \"Others\", a.others, a.cursorOther, a.section == 1)\nchecks\tRun golangci-lint\t2026-03-05T02:40:54.2356564Z \t^\nchecks\tRun golangci-lint\t2026-03-05T02:40:54.2357255Z ##[error]cmd/tgo/tmux.go:153:6: func runesToString is unused (unused)\nchecks\tRun golangci-lint\t2026-03-05T02:40:54.2358182Z func runesToString(m map[string]rune, ordered []session) string {\nchecks\tRun golangci-lint\t2026-03-05T02:40:54.2358605Z      ^\nchecks\tRun golangci-lint\t2026-03-05T02:40:54.2358786Z 2 issues:\nchecks\tRun golangci-lint\t2026-03-05T02:40:54.2358982Z * ineffassign: 1\nchecks\tRun golangci-lint\t2026-03-05T02:40:54.2359183Z * unused: 1\nchecks\tRun golangci-lint\t2026-03-05T02:40:54.2359290Z \nchecks\tRun golangci-lint\t2026-03-05T02:40:54.2368562Z ##[error]issues found\nchecks\tRun golangci-lint\t2026-03-05T02:40:54.2369548Z Ran golangci-lint in 10964ms\nchecks\tRun golangci-lint\t2026-03-05T02:40:54.2370094Z ##[endgroup]\n\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 9.8s)\n\n_Thinking:_\n\n**Removing unused code and assignments**\n\n**Tool: apply_patch**\n\n**Input:**\n```json\n{\n  \"patchText\": \"*** Begin Patch\\n*** Update File: /home/waylon/git/tgo/cmd/tgo/view.go\\n@@\\n \\tline = a.drawSection(screen, line, width, height, \\\"Favorites\\\", a.favorites, a.cursorFav, a.section == 0)\\n-\\tline = a.drawSection(screen, line, width, height, \\\"Others\\\", a.others, a.cursorOther, a.section == 1)\\n+\\ta.drawSection(screen, line, width, height, \\\"Others\\\", a.others, a.cursorOther, a.section == 1)\\n*** End Patch\"\n}\n```\n\n**Output:**\n```\nSuccess. Updated the following files:\nM home/waylon/git/tgo/cmd/tgo/view.go\n```\n\n**Tool: apply_patch**\n\n**Input:**\n```json\n{\n  \"patchText\": \"*** Begin Patch\\n*** Update File: /home/waylon/git/tgo/cmd/tgo/tmux.go\\n@@\\n-import (\\n-\\t\\\"bytes\\\"\\n-\\t\\\"fmt\\\"\\n+import (\\n+\\t\\\"fmt\\\"\\n \\t\\\"os/exec\\\"\\n \\t\\\"sort\\\"\\n \\t\\\"strings\\\"\\n )\\n@@\\n-func runesToString(m map[string]rune, ordered []session) string {\\n-\\tbuf := bytes.Buffer{}\\n-\\tfor _, s := range ordered {\\n-\\t\\tr, ok := m[s.Name]\\n-\\t\\tif !ok {\\n-\\t\\t\\tcontinue\\n-\\t\\t}\\n-\\t\\tbuf.WriteRune(r)\\n-\\t}\\n-\\treturn buf.String()\\n-}\\n*** End Patch\"\n}\n```\n\n**Output:**\n```\nSuccess. Updated the following files:\nM home/waylon/git/tgo/cmd/tgo/tmux.go\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 6.1s)\n\n_Thinking:_\n\n**Planning Go test and vet runs**\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"go test ./... \u0026\u0026 go vet ./...\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Runs tests and vet after lint fixes\"\n}\n```\n\n**Output:**\n```\nok  \ttgo/cmd/tgo\t0.003s\n\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 14.0s)\n\n_Thinking:_\n\n**Pushing fixes to repo**\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"git add cmd/tgo/view.go cmd/tgo/tmux.go \u0026\u0026 git commit -m \\\"fix: resolve lint errors in TUI code\\\" \u0026\u0026 git push origin main\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Commits lint fixes and pushes to main\"\n}\n```\n\n**Output:**\n```\n[main 2af8f82] fix: resolve lint errors in TUI code\n 2 files changed, 1 insertion(+), 14 deletions(-)\nTo https://github.com/WaylonWalker/tgo.git\n   29f8b3f..2af8f82  main -\u003e main\n\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 4.8s)\n\n_Thinking:_\n\n**Moving tag and recreating release**\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"git tag -f v0.1.0 2af8f82 \u0026\u0026 git push --force origin v0.1.0\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Moves v0.1.0 tag to latest lint-fix commit\"\n}\n```\n\n**Output:**\n```\nUpdated tag 'v0.1.0' (was 29f8b3f)\nTo https://github.com/WaylonWalker/tgo.git\n + 29f8b3f...2af8f82 v0.1.0 -\u003e v0.1.0 (forced update)\n\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 5.5s)\n\n_Thinking:_\n\n**Planning release replacement strategy**\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"gh release delete v0.1.0 --yes \u0026\u0026 gh release create v0.1.0 --title \\\"v0.1.0\\\" --notes '## Highlights\\n- Initial release of tgo: fast tmux session switcher optimized for popup use.\\n- Interactive TUI with direct letter switching (`asdfqwertzxcvb`), favorites pinning, and reorder mode.\\n- Session management actions from UI: create, kill, refresh, and persistent ordering state.\\n- Added installation docs for mise, jpillora installer, go install, and GitHub release assets.\\n- Updated and fixed GitHub Actions CI/release workflow definitions.'\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Recreates release after moving tag to latest commit\"\n}\n```\n\n**Output:**\n```\nhttps://github.com/WaylonWalker/tgo/releases/tag/v0.1.0\n\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 3.2s)\n\n_Thinking:_\n\n**Monitoring latest CI runs**\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"gh run list --limit 10 --json databaseId,workflowName,displayTitle,status,conclusion,event,headBranch,url\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Checks latest CI and release run statuses\"\n}\n```\n\n**Output:**\n```\n[{\"conclusion\":\"\",\"databaseId\":22699744966,\"displayTitle\":\"v0.1.0\",\"event\":\"release\",\"headBranch\":\"v0.1.0\",\"status\":\"queued\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699744966\",\"workflowName\":\"Release\"},{\"conclusion\":\"\",\"databaseId\":22699741216,\"displayTitle\":\"fix: resolve lint errors in TUI code\",\"event\":\"push\",\"headBranch\":\"main\",\"status\":\"in_progress\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699741216\",\"workflowName\":\"CI\"},{\"conclusion\":\"success\",\"databaseId\":22699716792,\"displayTitle\":\"Release\",\"event\":\"release\",\"headBranch\":\"v0.1.0\",\"status\":\"completed\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699716792\",\"workflowName\":\"Release\"},{\"conclusion\":\"failure\",\"databaseId\":22699711833,\"displayTitle\":\"fix: correct golangci-lint action args\",\"event\":\"push\",\"headBranch\":\"main\",\"status\":\"completed\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699711833\",\"workflowName\":\"CI\"},{\"conclusion\":\"success\",\"databaseId\":22699699908,\"displayTitle\":\"github_actions in / for actions/checkout - Update #1268818413\",\"event\":\"dynamic\",\"headBranch\":\"main\",\"status\":\"completed\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699699908\",\"workflowName\":\"Dependabot Updates\"},{\"conclusion\":\"success\",\"databaseId\":22699699789,\"displayTitle\":\"github_actions in / for golangci/golangci-lint-action - Update #1268818411\",\"event\":\"dynamic\",\"headBranch\":\"main\",\"status\":\"completed\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699699789\",\"workflowName\":\"Dependabot Updates\"},{\"conclusion\":\"success\",\"databaseId\":22699699295,\"displayTitle\":\"github_actions in / for softprops/action-gh-release - Update #1268818408\",\"event\":\"dynamic\",\"headBranch\":\"main\",\"status\":\"completed\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699699295\",\"workflowName\":\"Dependabot Updates\"},{\"conclusion\":\"success\",\"databaseId\":22699699236,\"displayTitle\":\"github_actions in / for actions/cache - Update #1268818405\",\"event\":\"dynamic\",\"headBranch\":\"main\",\"status\":\"completed\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699699236\",\"workflowName\":\"Dependabot Updates\"},{\"conclusion\":\"success\",\"databaseId\":22699698905,\"displayTitle\":\"github_actions in / for actions/setup-go - Update #1268818404\",\"event\":\"dynamic\",\"headBranch\":\"main\",\"status\":\"completed\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699698905\",\"workflowName\":\"Dependabot Updates\"},{\"conclusion\":\"failure\",\"databaseId\":22699690701,\"displayTitle\":\"chore: update install docs and stabilize actions\",\"event\":\"push\",\"headBranch\":\"main\",\"status\":\"completed\",\"url\":\"https://github.com/WaylonWalker/tgo/actions/runs/22699690701\",\"workflowName\":\"CI\"}]\n\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 23.3s)\n\n_Thinking:_\n\n**Planning sequential CI monitoring**\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"gh run watch 22699741216 --exit-status\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Watches latest CI run for successful completion\"\n}\n```\n\n**Output:**\n```\nRefreshing run status every 3 seconds. Press Ctrl+C to quit.\n\n* main CI · 22699741216\nTriggered via push less than a minute ago\n\nJOBS\n* checks (ID 65813933132)\n  ✓ Set up job\n  ✓ Run actions/checkout@v6\n  ✓ Set up Go\n  ✓ Cache Go modules\n  ✓ Format code\n  * Run golangci-lint\n  * Vet packages\n  * Run tests\n  * Post Run golangci-lint\n  * Post Cache Go modules\n  * Post Set up Go\n  * Post Run actions/checkout@v6\nRefreshing run status every 3 seconds. Press Ctrl+C to quit.\n\n* main CI · 22699741216\nTriggered via push less than a minute ago\n\nJOBS\n* checks (ID 65813933132)\n  ✓ Set up job\n  ✓ Run actions/checkout@v6\n  ✓ Set up Go\n  ✓ Cache Go modules\n  ✓ Format code\n  ✓ Run golangci-lint\n  * Vet packages\n  * Run tests\n  * Post Run golangci-lint\n  * Post Cache Go modules\n  * Post Set up Go\n  * Post Run actions/checkout@v6\nRefreshing run status every 3 seconds. Press Ctrl+C to quit.\n\n* main CI · 22699741216\nTriggered via push less than a minute ago\n\nJOBS\n* checks (ID 65813933132)\n  ✓ Set up job\n  ✓ Run actions/checkout@v6\n  ✓ Set up Go\n  ✓ Cache Go modules\n  ✓ Format code\n  ✓ Run golangci-lint\n  ✓ Vet packages\n  ✓ Run tests\n  ✓ Post Run golangci-lint\n  * Post Cache Go modules\n  * Post Set up Go\n  * Post Run actions/checkout@v6\nRefreshing run status every 3 seconds. Press Ctrl+C to quit.\n\n* main CI · 22699741216\nTriggered via push less than a minute ago\n\nJOBS\n* checks (ID 65813933132)\n  ✓ Set up job\n  ✓ Run actions/checkout@v6\n  ✓ Set up Go\n  ✓ Cache Go modules\n  ✓ Format code\n  ✓ Run golangci-lint\n  ✓ Vet packages\n  ✓ Run tests\n  ✓ Post Run golangci-lint\n  ✓ Post Cache Go modules\n  * Post Set up Go\n  * Post Run actions/checkout@v6\n✓ main CI · 22699741216\nTriggered via push less than a minute ago\n\nJOBS\n✓ checks in 30s (ID 65813933132)\n  ✓ Set up job\n  ✓ Run actions/checkout@v6\n  ✓ Set up Go\n  ✓ Cache Go modules\n  ✓ Format code\n  ✓ Run golangci-lint\n  ✓ Vet packages\n  ✓ Run tests\n  ✓ Post Run golangci-lint\n  ✓ Post Cache Go modules\n  ✓ Post Set up Go\n  ✓ Post Run actions/checkout@v6\n  ✓ Complete job\n\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 2.8s)\n\n_Thinking:_\n\n**Observing release run progress**\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"gh run watch 22699744966 --exit-status\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Watches release workflow run until completion\"\n}\n```\n\n**Output:**\n```\nRun Release (22699744966) has already completed with 'success'\n\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 7.7s)\n\n_Thinking:_\n\n**Verifying release assets presence**\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"gh release view v0.1.0 --json url,tagName,targetCommitish,isDraft,isPrerelease,assets\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Checks release metadata and uploaded assets\"\n}\n```\n\n**Output:**\n```\n{\"assets\":[{\"apiUrl\":\"https://api.github.com/repos/WaylonWalker/tgo/releases/assets/367202449\",\"contentType\":\"text/plain\",\"createdAt\":\"2026-03-05T02:42:22Z\",\"digest\":\"sha256:9411ecce656bab45708ca38d2fa2f0fd6bcdbba791e3e38bc6f004bc0eabcecc\",\"downloadCount\":0,\"id\":\"RA_kwDORewosc4V4xCR\",\"label\":\"\",\"name\":\"checksums.txt\",\"size\":582,\"state\":\"uploaded\",\"updatedAt\":\"2026-03-05T02:42:22Z\",\"url\":\"https://github.com/WaylonWalker/tgo/releases/download/v0.1.0/checksums.txt\"},{\"apiUrl\":\"https://api.github.com/repos/WaylonWalker/tgo/releases/assets/367202453\",\"contentType\":\"application/zip\",\"createdAt\":\"2026-03-05T02:42:22Z\",\"digest\":\"sha256:f31d266ef4ce5aba00b678d900287982bf23fb735677941d31a2b37ff70dcd10\",\"downloadCount\":0,\"id\":\"RA_kwDORewosc4V4xCV\",\"label\":\"\",\"name\":\"tgo-darwin-amd64.zip\",\"size\":1212769,\"state\":\"uploaded\",\"updatedAt\":\"2026-03-05T02:42:23Z\",\"url\":\"https://github.com/WaylonWalker/tgo/releases/download/v0.1.0/tgo-darwin-amd64.zip\"},{\"apiUrl\":\"https://api.github.com/repos/WaylonWalker/tgo/releases/assets/367202451\",\"contentType\":\"application/zip\",\"createdAt\":\"2026-03-05T02:42:22Z\",\"digest\":\"sha256:9d3fb0a2d70dc8bcb97d4d91179f49e1f0e298d889131a4404c84ad4731f1821\",\"downloadCount\":0,\"id\":\"RA_kwDORewosc4V4xCT\",\"label\":\"\",\"name\":\"tgo-darwin-arm64.zip\",\"size\":1149837,\"state\":\"uploaded\",\"updatedAt\":\"2026-03-05T02:42:22Z\",\"url\":\"https://github.com/WaylonWalker/tgo/releases/download/v0.1.0/tgo-darwin-arm64.zip\"},{\"apiUrl\":\"https://api.github.com/repos/WaylonWalker/tgo/releases/assets/367202450\",\"contentType\":\"application/zip\",\"createdAt\":\"2026-03-05T02:42:22Z\",\"digest\":\"sha256:6497bbf5e358d3edaccbc69c114a8df4768b4ca9058fbb2b77ef1ca1d3db4a16\",\"downloadCount\":0,\"id\":\"RA_kwDORewosc4V4xCS\",\"label\":\"\",\"name\":\"tgo-linux-amd64.zip\",\"size\":1211862,\"state\":\"uploaded\",\"updatedAt\":\"2026-03-05T02:42:22Z\",\"url\":\"https://github.com/WaylonWalker/tgo/releases/download/v0.1.0/tgo-linux-amd64.zip\"},{\"apiUrl\":\"https://api.github.com/repos/WaylonWalker/tgo/releases/assets/367202456\",\"contentType\":\"application/zip\",\"createdAt\":\"2026-03-05T02:42:22Z\",\"digest\":\"sha256:f52b3155710ee7c86ae572d5e5616553a9512dcea0a225b67c484c2e686b24a1\",\"downloadCount\":0,\"id\":\"RA_kwDORewosc4V4xCY\",\"label\":\"\",\"name\":\"tgo-linux-arm64.zip\",\"size\":1122154,\"state\":\"uploaded\",\"updatedAt\":\"2026-03-05T02:42:23Z\",\"url\":\"https://github.com/WaylonWalker/tgo/releases/download/v0.1.0/tgo-linux-arm64.zip\"},{\"apiUrl\":\"https://api.github.com/repos/WaylonWalker/tgo/releases/assets/367202448\",\"contentType\":\"application/zip\",\"createdAt\":\"2026-03-05T02:42:22Z\",\"digest\":\"sha256:797793924141e6b7083142d7351bcbda99eae1ce52a4acd6140f2434d00b2bb9\",\"downloadCount\":0,\"id\":\"RA_kwDORewosc4V4xCQ\",\"label\":\"\",\"name\":\"tgo-windows-amd64.zip\",\"size\":1198632,\"state\":\"uploaded\",\"updatedAt\":\"2026-03-05T02:42:22Z\",\"url\":\"https://github.com/WaylonWalker/tgo/releases/download/v0.1.0/tgo-windows-amd64.zip\"},{\"apiUrl\":\"https://api.github.com/repos/WaylonWalker/tgo/releases/assets/367202447\",\"contentType\":\"application/zip\",\"createdAt\":\"2026-03-05T02:42:22Z\",\"digest\":\"sha256:a596200fa2f39a0667a7211527d52cfff04ceb378f37fc45dda87452e152beb9\",\"downloadCount\":0,\"id\":\"RA_kwDORewosc4V4xCP\",\"label\":\"\",\"name\":\"tgo-windows-arm64.zip\",\"size\":1095347,\"state\":\"uploaded\",\"updatedAt\":\"2026-03-05T02:42:22Z\",\"url\":\"https://github.com/WaylonWalker/tgo/releases/download/v0.1.0/tgo-windows-arm64.zip\"}],\"isDraft\":false,\"isPrerelease\":false,\"tagName\":\"v0.1.0\",\"targetCommitish\":\"main\",\"url\":\"https://github.com/WaylonWalker/tgo/releases/tag/v0.1.0\"}\n\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 2.0s)\n\n_Thinking:_\n\n**Checking git status cleanliness**\n\n**Tool: bash**\n\n**Input:**\n```json\n{\n  \"command\": \"git status --short --branch\",\n  \"workdir\": \"/home/waylon/git/tgo\",\n  \"description\": \"Checks final git status and branch sync\"\n}\n```\n\n**Output:**\n```\n## main...origin/main\n\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 2.8s)\n\n_Thinking:_\n\n**Updating todo statuses**\n\n**Tool: todowrite**\n\n**Input:**\n```json\n{\n  \"todos\": [\n    {\n      \"content\": \"Draft builder delegation prompt for push, retag/release move, CI fixes, and PR handling\",\n      \"status\": \"completed\",\n      \"priority\": \"high\"\n    },\n    {\n      \"content\": \"Run builder subagent to execute requested git/GitHub operations end-to-end\",\n      \"status\": \"completed\",\n      \"priority\": \"high\"\n    },\n    {\n      \"content\": \"Review builder output and report final repository/release/CI/PR status\",\n      \"status\": \"completed\",\n      \"priority\": \"high\"\n    }\n  ]\n}\n```\n\n**Output:**\n```\n[\n  {\n    \"content\": \"Draft builder delegation prompt for push, retag/release move, CI fixes, and PR handling\",\n    \"status\": \"completed\",\n    \"priority\": \"high\"\n  },\n  {\n    \"content\": \"Run builder subagent to execute requested git/GitHub operations end-to-end\",\n    \"status\": \"completed\",\n    \"priority\": \"high\"\n  },\n  {\n    \"content\": \"Review builder output and report final repository/release/CI/PR status\",\n    \"status\": \"completed\",\n    \"priority\": \"high\"\n  }\n]\n```\n\n---\n\n## Assistant (Build · gpt-5.3-codex · 9.1s)\n\n_Thinking:_\n\n**Summarizing release completion details**\n\nDone. I delegated to `@builder` first, then completed the full set of actions directly since the subagent couldn’t execute git/gh operations.\n\n- Pushed your pending README install updates and CI/release fixes to `main` in:\n  - `db51a9e` `chore: update install docs and stabilize actions`\n  - `29f8b3f` `fix: correct golangci-lint action args`\n  - `2af8f82` `fix: resolve lint errors in TUI code`\n- Updated workflows to fix failures:\n  - `.github/workflows/ci.yml`: upgraded actions (`checkout@v6`, `setup-go@v6`, `cache@v5`, `golangci-lint-action@v9`) and fixed lint args to `./...`\n  - `.github/workflows/release.yml`: upgraded actions, added `permissions: contents: write`, moved to `softprops/action-gh-release@v2`\n- Moved tag and release:\n  - Force-moved `v0.1.0` to commit `2af8f82`\n  - Recreated release `v0.1.0` at `https://github.com/WaylonWalker/tgo/releases/tag/v0.1.0`\n- Verified workflows:\n  - CI success: `https://github.com/WaylonWalker/tgo/actions/runs/22699741216`\n  - Release success: `https://github.com/WaylonWalker/tgo/actions/runs/22699744966`\n  - Release assets and checksums are published (linux/darwin/windows amd64+arm64 + `checksums.txt`)\n- Addressed PRs:\n  - Open PRs now: none (`gh pr list` returns `[]`)\n  - PRs `#1`-`#5` were already closed; I left comments noting they were superseded by direct workflow updates on `main`\n- Repo is clean and synced: `main...origin/main`\n\nIf you want, I can cut `v0.1.1` next so the history reflects these post-release fixes without moving `v0.1.0` again.\n\n---\n\n",
      "summary": "** ses***** 3/4/2026, 8:52:32 PM",
      "date_published": "2026-03-04T20:58:05Z",
      "date_modified": "2026-03-04T20:58:05Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "cli"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/2026-03-03-notes/",
      "url": "https://go.waylonwalker.com/2026-03-03-notes/",
      "title": "2026-03-03 Notes",
      "content_html": "\u003cp\u003eThe big news today sweeping everywhere is the weekend bombing of Iran,\nAnthropic had an ultimatum to allow AI agents to autonomously pull the trigger\non life or death decisions and monitor every citizen in public spaces.  They\nstood their ground and it looks like many Americans stood with them, while\nspending millions on superbowl ads did almost nothing to them, this shot them\nto the top app downloads as openai subs plummet and anthropic subs soar.\u003c/p\u003e\n\u003cp\u003eI’m old enough to remember 9/11/01, an event that would kick off decade long\nwar.  It felt different then.  Maybe because I was 12, maybe because the\nInternet was not the prominant source of live new information.  The vibe was\nsupport.  Support to right the wrongs, prevent future attacks.  That day had\nlasting effects for decades to come to the people on the ground.\u003c/p\u003e\n\u003cp\u003eThis is not meant to be politicaly in any way, not take any side good, bad,\nright, wrong, purple, or grey, just the vibes I’m feeling and wanted to\ndocument for some reason. Logging this one in unpublished, idk, not really my\nexpertise just wanted to write feelings.\u003c/p\u003e\n",
      "content_text": "\nThe big news today sweeping everywhere is the weekend bombing of Iran,\nAnthropic had an ultimatum to allow AI agents to autonomously pull the trigger\non life or death decisions and monitor every citizen in public spaces.  They\nstood their ground and it looks like many Americans stood with them, while\nspending millions on superbowl ads did almost nothing to them, this shot them\nto the top app downloads as openai subs plummet and anthropic subs soar.\n\nI'm old enough to remember 9/11/01, an event that would kick off decade long\nwar.  It felt different then.  Maybe because I was 12, maybe because the\nInternet was not the prominant source of live new information.  The vibe was\nsupport.  Support to right the wrongs, prevent future attacks.  That day had\nlasting effects for decades to come to the people on the ground.\n\nThis is not meant to be politicaly in any way, not take any side good, bad,\nright, wrong, purple, or grey, just the vibes I'm feeling and wanted to\ndocument for some reason. Logging this one in unpublished, idk, not really my\nexpertise just wanted to write feelings.\n",
      "summary": "The big news today sweeping everywhere is the weekend bombing of Iran, Anthropic had an ultimatum to allow AI agents to autonomously pull the trigger on life...",
      "date_published": "2026-03-03T14:34:59Z",
      "date_modified": "2026-03-03T14:34:59Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/vaulted-secrets-without-git-churn/",
      "url": "https://go.waylonwalker.com/vaulted-secrets-without-git-churn/",
      "title": "Vaulted Secrets Without Git Churn",
      "content_html": "\u003cp\u003eAnsible Vault keeps secrets out of sight, but the ciphertext changes on every\nencrypt. That turns \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003eGit\u003c/a\u003e diffs into noise and makes it hard to tell if anything\nactually changed. Decrypting, editing, and re-encrypting often leaves\nuncertainty about whether any plaintext changed. This is amplified when secret\nrepos are tightly coupled to dependent repositories. A typical cycle includes\ndecrypting, adding a key, updating a value, applying changes, and returning\nlater with little clarity about what changed while secrets were in plaintext.\u003c/p\u003e\n\u003cp\u003eToday a new workflow was created with @gpt-5.2-codex to keep diffs clean and\navoid re-encrypting when the plaintext is identical.\u003c/p\u003e\n\u003cdiv class=\"admonition chat-reply\"\u003e\n\u003cp class=\"admonition-title\"\u003eChat-reply\u003c/p\u003e\n\u003cp\u003eThis repo has ansible vaulted secrets and an encrypt/decrypt process, but no\nway to compare. Please research compare options. The goal is to avoid\nchanging files on encrypt/decrypt when plaintext is unchanged, ideally by\ncomparing decrypted content and reusing the remote encrypted file.\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"admonition chat\"\u003e\n\u003cp class=\"admonition-title\"\u003e@gpt-5.2-codex\u003c/p\u003e\n\u003cp\u003eThe repo workflow will be reviewed, compare options identified, and a\nlow-churn GitOps approach proposed to avoid re-encrypt noise.\u003c/p\u003e\n\u003c/div\u003e\n\u003ch2 id=\"the-problem\"\u003eThe problem \u003ca href=\"#the-problem\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eRe-encrypting a file with the same content produces different ciphertext. A\nsimple decrypt/encrypt cycle can look like a full file change, even when the\nplaintext is identical. That creates uncertainty and makes GitOps workflows feel\nbrittle.\u003c/p\u003e\n\u003cdiv class=\"admonition chat-reply\"\u003e\n\u003cp class=\"admonition-title\"\u003eChat-reply\u003c/p\u003e\n\u003cp\u003eMinimal changes needed to keep GitOps clear?\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"admonition chat\"\u003e\n\u003cp class=\"admonition-title\"\u003e@gpt-5.2-codex\u003c/p\u003e\n\u003cp\u003eAdd compare-before-encrypt, decrypted diffs, and ignore cache artifacts.\u003c/p\u003e\n\u003c/div\u003e\n\u003ch2 id=\"the-solution-at-a-glance\"\u003eThe solution at a glance \u003ca href=\"#the-solution-at-a-glance\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThree pieces make it work:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eCompare-before-encrypt\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ejust decrypt\u003c/code\u003e stores a plaintext hash and caches the current encrypted\nfile.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ejust encrypt\u003c/code\u003e compares the plaintext hash and, if unchanged, restores the\ncached ciphertext instead of re-encrypting.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eReadable diffs for vaulted files\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e.gitattributes\u003c/code\u003e sets \u003ccode\u003eprivate/* diff=ansible-vault\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eA small \u003ccode\u003etextconv\u003c/code\u003e script decrypts for \u003ccode\u003egit diff\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eIgnored cache artifacts\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e.vault-hashes/\u003c/code\u003e and \u003ccode\u003e.vault-cache/\u003c/code\u003e are ignored so they never hit the\nrepo.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"how-it-works\"\u003eHow it works \u003ca href=\"#how-it-works\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cdiv class=\"admonition chat-reply\"\u003e\n\u003cp class=\"admonition-title\"\u003eChat-reply\u003c/p\u003e\n\u003cp\u003eHow does compare-before-encrypt operate?\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"admonition chat\"\u003e\n\u003cp class=\"admonition-title\"\u003e@gpt-5.2-codex\u003c/p\u003e\n\u003cp\u003eHash plaintext on decrypt, reuse cached ciphertext on encrypt if the hash matches.\u003c/p\u003e\n\u003c/div\u003e\n\u003ch3 id=\"compare-before-encrypt\"\u003eCompare-before-encrypt \u003ca href=\"#compare-before-encrypt\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eWhen a file is decrypted, a SHA-256 hash of the plaintext is created and stored\nin \u003ccode\u003e.vault-hashes/\u003c/code\u003e. A copy of the encrypted file is stored in \u003ccode\u003e.vault-cache/\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eWhen encrypting, the current plaintext file is hashed. If the hash matches the\ncached hash, the cached encrypted file is restored instead of generating new\nciphertext. Result: no churn when nothing actually changed.\u003c/p\u003e\n\u003ch3 id=\"decrypted-diffs\"\u003eDecrypted diffs \u003ca href=\"#decrypted-diffs\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eGit is configured to use \u003ccode\u003eansible-vault view\u003c/code\u003e as a text conversion step for\nfiles under \u003ccode\u003eprivate/\u003c/code\u003e. As a result, \u003ccode\u003egit diff\u003c/code\u003e shows decrypted content instead\nof ciphertext.\u003c/p\u003e\n\u003cp\u003eEnable the diff driver locally:\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit config diff.ansible-vault.textconv \u003cspan class=\"s2\"\u003e\u0026#34;scripts/ansible-vault-diff\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"what-changes-will-be-seen\"\u003eWhat changes will be seen \u003ca href=\"#what-changes-will-be-seen\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIf a secret changes: the diff shows the plaintext change.\u003c/li\u003e\n\u003cli\u003eIf decrypt and re-encrypt occurs without changes: the diff stays clean.\u003c/li\u003e\n\u003cli\u003eLarge base64 blobs may still look like full-line diffs because they are\nsingle-line values.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"admonition chat-reply\"\u003e\n\u003cp class=\"admonition-title\"\u003eChat-reply\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eWhat is the day-to-day workflow?\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003cdiv class=\"admonition chat\"\u003e\n\u003cp class=\"admonition-title\"\u003e@gpt-5.2-codex\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e`just decrypt`, edit, then `just encrypt`. Clean diffs, no churn.\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003ch2 id=\"recommended-usage\"\u003eRecommended usage \u003ca href=\"#recommended-usage\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ejust decrypt\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# apply edits\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ejust encrypt\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eThat is sufficient to keep Git history clean and reduce uncertainty about\nwhether a secret actually changed.\u003c/p\u003e\n",
      "content_text": "\n\nAnsible Vault keeps secrets out of sight, but the ciphertext changes on every\nencrypt. That turns Git diffs into noise and makes it hard to tell if anything\nactually changed. Decrypting, editing, and re-encrypting often leaves\nuncertainty about whether any plaintext changed. This is amplified when secret\nrepos are tightly coupled to dependent repositories. A typical cycle includes\ndecrypting, adding a key, updating a value, applying changes, and returning\nlater with little clarity about what changed while secrets were in plaintext.\n\nToday a new workflow was created with @gpt-5.2-codex to keep diffs clean and\navoid re-encrypting when the plaintext is identical.\n\n!!! chat-reply\n\n    This repo has ansible vaulted secrets and an encrypt/decrypt process, but no\n    way to compare. Please research compare options. The goal is to avoid\n    changing files on encrypt/decrypt when plaintext is unchanged, ideally by\n    comparing decrypted content and reusing the remote encrypted file.\n\n!!! chat @gpt-5.2-codex\n\n    The repo workflow will be reviewed, compare options identified, and a\n    low-churn GitOps approach proposed to avoid re-encrypt noise.\n\n## The problem\n\nRe-encrypting a file with the same content produces different ciphertext. A\nsimple decrypt/encrypt cycle can look like a full file change, even when the\nplaintext is identical. That creates uncertainty and makes GitOps workflows feel\nbrittle.\n\n!!! chat-reply\n\n    Minimal changes needed to keep GitOps clear?\n\n!!! chat @gpt-5.2-codex\n\n    Add compare-before-encrypt, decrypted diffs, and ignore cache artifacts.\n\n## The solution at a glance\n\nThree pieces make it work:\n\n1. **Compare-before-encrypt**\n\n    - `just decrypt` stores a plaintext hash and caches the current encrypted\n      file.\n    - `just encrypt` compares the plaintext hash and, if unchanged, restores the\n      cached ciphertext instead of re-encrypting.\n\n1. **Readable diffs for vaulted files**\n\n    - `.gitattributes` sets `private/* diff=ansible-vault`.\n    - A small `textconv` script decrypts for `git diff`.\n\n1. **Ignored cache artifacts**\n\n    - `.vault-hashes/` and `.vault-cache/` are ignored so they never hit the\n      repo.\n\n## How it works\n\n!!! chat-reply\n\n    How does compare-before-encrypt operate?\n\n!!! chat @gpt-5.2-codex\n\n    Hash plaintext on decrypt, reuse cached ciphertext on encrypt if the hash matches.\n\n### Compare-before-encrypt\n\nWhen a file is decrypted, a SHA-256 hash of the plaintext is created and stored\nin `.vault-hashes/`. A copy of the encrypted file is stored in `.vault-cache/`.\n\nWhen encrypting, the current plaintext file is hashed. If the hash matches the\ncached hash, the cached encrypted file is restored instead of generating new\nciphertext. Result: no churn when nothing actually changed.\n\n### Decrypted diffs\n\nGit is configured to use `ansible-vault view` as a text conversion step for\nfiles under `private/`. As a result, `git diff` shows decrypted content instead\nof ciphertext.\n\nEnable the diff driver locally:\n\n```bash\ngit config diff.ansible-vault.textconv \"scripts/ansible-vault-diff\"\n```\n\n## What changes will be seen\n\n- If a secret changes: the diff shows the plaintext change.\n- If decrypt and re-encrypt occurs without changes: the diff stays clean.\n- Large base64 blobs may still look like full-line diffs because they are\n  single-line values.\n\n!!! chat-reply\n    What is the day-to-day workflow?\n\n!!! chat @gpt-5.2-codex\n    `just decrypt`, edit, then `just encrypt`. Clean diffs, no churn.\n\n## Recommended usage\n\n```bash\njust decrypt\n# apply edits\njust encrypt\n```\n\nThat is sufficient to keep Git history clean and reduce uncertainty about\nwhether a secret actually changed.\n\n",
      "summary": "Ansible Vault keeps secrets out of sight, but the ciphertext changes on every encrypt. That turns Git diffs into noise and makes it hard to tell if anything...",
      "date_published": "2026-02-26T09:59:57Z",
      "date_modified": "2026-02-26T09:59:57Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "bash",
        "ansible"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/you-can-just-build-things/",
      "url": "https://go.waylonwalker.com/you-can-just-build-things/",
      "title": "You Can Just Build Things",
      "content_html": "\u003cp\u003eI don’t know if you know this, but the web is a beautiful platform that allows\nyou the freedom to create things and put them out there.  Its not tied to four\nmajor platforms.  You don’t have to post your thoughts, ideas, and apps to a\nplatform, you can just make it.  This is a beautiful thing that seems to have\nbeen forgotten.  I was inspired this morning from @scotthanselman’s\n\u003ca href=\"https://www.tinytooltown.com/\"\u003etinytooltown\u003c/a\u003e.  Looking through all of the tiny\ntools that people have built for themself, as personal software, not answering\nto anyone but themself, it was inspiring.\u003c/p\u003e\n\u003cp\u003eAgents have gotten a lot better, like seriously better.  The ai bros that were ai pilled too early that said SWE is over in six months called it too early.  It wasn’t time.  Now since Nov 2025 we have had agents that can do some damn work.  Proving the point some of the greatest devs I’ve ever looked up to have not written a line of code since.  Not hype bros or someone not good at the craft, but seriously good devs leaning on it full time.\u003c/p\u003e\n\u003cp\u003eAI hype over you don’t have to use ai, you can still just build things by hand, or if you don’t have the coding skills you can probably ask an agent to build something good enough for you to use on your own.\u003c/p\u003e\n\u003cp\u003eAs I wrote in \u003ca href=\"/poc-is-not-product/\" class=\"wikilink\" data-title=\"poc is not product\" data-description=\"A poc is ** a product. I started focais, not in a rush, but as something that I already had a POC for and thought it would be easy. I wanted to build tools...\" data-date=\"2024-01-28\" data-preview=\"A poc is ** a product. I started focais, not in a rush, but as something that I already had a POC for and thought it would be easy. I wanted to build tools...\"\u003epoc is not product\u003c/a\u003e building products is hard.  You cant just vibe code out the next jira, medium, Pinterest, photos, but you can build a good enough task board, blog, and photos app that does what you need it to do without these.  It may not get you off of some of these platforms, but there’s a good chance you can build out bespoke software that solves real problems you have\u003c/p\u003e\n\u003cp\u003eThis is what makes the web interesting.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/why-make-a-website-in-2025/\" class=\"wikilink\" data-title=\"Why Make a Website in 2025\" data-description=\"Inspired by Jim and Dave\" data-date=\"2025-09-16\" data-preview=\"Inspired by Jim and Dave\"\u003eWhy Make a Website in 2025\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/blogging-in-2024/\" class=\"wikilink\" data-title=\"blogging in 2024\" data-description=\"Over the past years couple of years blog traffic has been tanking, for some time I thought it might have just been me, but then i heard it from Dave Rupert...\" data-date=\"2024-08-05\" data-preview=\"Over the past years couple of years blog traffic has been tanking, for some time I thought it might have just been me, but then i heard it from Dave Rupert...\"\u003eblogging in 2024\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/blogging-for-me/\" class=\"wikilink\" data-title=\"Blogging For Me\" data-description=\"I create this blog with one person in mind, me.\" data-date=\"2021-01-21\" data-preview=\"I create this blog with one person in mind, me.\"\u003eBlogging For Me\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/tinyapps/\" class=\"wikilink\" data-title=\"tinyapps\" data-description=\"I\u0026#39;m working on replacing my usage of google inline search apps with real apps, these are ones that I create and host on my own homelab. The first three that...\" data-date=\"2025-05-22\" data-preview=\"I\u0026#39;m working on replacing my usage of google inline search apps with real apps, these are ones that I create and host on my own homelab. The first three that...\"\u003etinyapps\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\nI don't know if you know this, but the web is a beautiful platform that allows\nyou the freedom to create things and put them out there.  Its not tied to four\nmajor platforms.  You don't have to post your thoughts, ideas, and apps to a\nplatform, you can just make it.  This is a beautiful thing that seems to have\nbeen forgotten.  I was inspired this morning from @scotthanselman's\n[tinytooltown](https://www.tinytooltown.com/).  Looking through all of the tiny\ntools that people have built for themself, as personal software, not answering\nto anyone but themself, it was inspiring.\n\nAgents have gotten a lot better, like seriously better.  The ai bros that were ai pilled too early that said SWE is over in six months called it too early.  It wasn't time.  Now since Nov 2025 we have had agents that can do some damn work.  Proving the point some of the greatest devs I've ever looked up to have not written a line of code since.  Not hype bros or someone not good at the craft, but seriously good devs leaning on it full time.\n\nAI hype over you don't have to use ai, you can still just build things by hand, or if you don't have the coding skills you can probably ask an agent to build something good enough for you to use on your own.\n\nAs I wrote in \u003ca href=\"/poc-is-not-product/\" class=\"wikilink\" data-title=\"poc is not product\" data-description=\"A poc is ** a product. I started focais, not in a rush, but as something that I already had a POC for and thought it would be easy. I wanted to build tools...\" data-date=\"2024-01-28\"\u003epoc is not product\u003c/a\u003e building products is hard.  You cant just vibe code out the next jira, medium, Pinterest, photos, but you can build a good enough task board, blog, and photos app that does what you need it to do without these.  It may not get you off of some of these platforms, but there's a good chance you can build out bespoke software that solves real problems you have\n\nThis is what makes the web interesting.\n\n\u003ca href=\"/why-make-a-website-in-2025/\" class=\"wikilink\" data-title=\"Why Make a Website in 2025\" data-description=\"Inspired by Jim and Dave\" data-date=\"2025-09-16\"\u003eWhy Make a Website in 2025\u003c/a\u003e\n\n\u003ca href=\"/blogging-in-2024/\" class=\"wikilink\" data-title=\"blogging in 2024\" data-description=\"Over the past years couple of years blog traffic has been tanking, for some time I thought it might have just been me, but then i heard it from Dave Rupert...\" data-date=\"2024-08-05\"\u003eblogging in 2024\u003c/a\u003e\n\n\u003ca href=\"/blogging-for-me/\" class=\"wikilink\" data-title=\"Blogging For Me\" data-description=\"I create this blog with one person in mind, me.\" data-date=\"2021-01-21\"\u003eBlogging For Me\u003c/a\u003e\n\n\u003ca href=\"/tinyapps/\" class=\"wikilink\" data-title=\"tinyapps\" data-description=\"I\u0026#39;m working on replacing my usage of google inline search apps with real apps, these are ones that I create and host on my own homelab. The first three that...\" data-date=\"2025-05-22\"\u003etinyapps\u003c/a\u003e\n",
      "summary": "I don't know if you know this, but the web is a beautiful platform that allows you the freedom to create things and put them out there. Its not tied to four...",
      "date_published": "2026-02-25T11:10:51Z",
      "date_modified": "2026-02-25T11:10:51Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "webdev"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/is-ai-faster-yet/",
      "url": "https://go.waylonwalker.com/is-ai-faster-yet/",
      "title": "Is Ai Faster Yet",
      "content_html": "\u003cp\u003eIs AI making us more productive yet, more faster yet?\u003c/p\u003e\n\u003ch2 id=\"non-code\"\u003eNon-code \u003ca href=\"#non-code\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eprobably not\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eI’ve seen this question hitting all over the Internet lately, and often points\nto people not writing code.  Copilot turns prompts into emails, emails back\ninto summaries that look a lot like prompts. I think there’s a place for this,\nmaking rambled thoughts sound more coherent, summarizing notes and meeting\nminutes.  All good stuff but does it make us more productive, probably not by\nan amount that you can put $ $ behind, unless you are reducing headcount.\n\u003cem\u003ethats not what we are doing right???\u003c/em\u003e\u003c/p\u003e\n\u003ch2 id=\"coding\"\u003eCoding \u003ca href=\"#coding\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003ewith chat, probably not\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eWhen we talk about chatbots like gippity I think there’s a benefit to having\nsomeone with jr skills in everything to talk to, someone who can read all of\nthe docs in an instant to get you some code snippet that might have taken all\nday to research and get right, but more productive, probably not.\u003c/p\u003e\n\u003ch2 id=\"agentic-coding\"\u003eAgentic Coding \u003ca href=\"#agentic-coding\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003emaybe\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eI’ve hit a stride with coding agents this year unlike I’ve hit before.  Its able to bang out huge swaths of code in a prompt, with a good enough spec/plan.  It absolutely churns out code.  The bottleneck quickly becomes UAT.\u003c/p\u003e\n\u003cp\u003eI definitely feel like I’m doing a lot.  There’s a lot that’s getting done that there’s no way I could do alone, it would take a full team with heavy coordination.\u003c/p\u003e\n\u003ch2 id=\"am-i-more-productive\"\u003eAm I more productive \u003ca href=\"#am-i-more-productive\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI’m definitely doing more, there are more lines of code, more ideas flowing, more docs written, more notes taken, more bugs squashed, more features out.\u003c/p\u003e\n\u003cp\u003eIn the sense of generating more $ $ for the stakeholder.  I really don’t know that I’m there yet, everything feels so new and different that there’s a bit of a learning curve to understand it all.  There’s a pace and cadence to everything that may not be quite caught up yet.\u003c/p\u003e\n\u003cp\u003eIt definitely feels like more is happening at a different pace that is hard to explain.\u003c/p\u003e\n\u003cp\u003eI’m sure there is a wide spectrum of folks out there from some generating millions of additional revenue in new greenfield industries, to those burning tokens and getting nothing in return.\u003c/p\u003e\n\u003cp\u003eWith this SUPER AUTO COMPLETE engine it’s easy to say we found a bug affecting a user, but rather than squashing that one and getting a release out quickly squash ALL related bugs that a user might find in this category, it only takes a few more keystrokes right??\u003c/p\u003e\n\u003cp\u003eRight now it feels like a lot is happening but its hard to sus out the real productivity from the noise.\u003c/p\u003e\n\u003ch2 id=\"fin\"\u003eFIN \u003ca href=\"#fin\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAs with anything AI It took me a few weeks to wrap this up and everything is already different.  But I had some recent experiences of feeling slower than just doing it, and its all around context.  I have built out a lot of the systems that I maintain by hand, I really know them well and I can solve a lot of problems within the hour by hand with coffee break.  But now that I’m trying to lean on agents, I know they can do a more thorough job than I can faster, but I don’t have all of the data harnessed up.  Just today I spent all day trying to solve CI problems.  I can see the issue, I know the solution, but I want agents to solve this for me in the future so I spent the say working on a CLI to pull data from ci pipeline runs, manage the tokens get the logs, status, all of the data.  Because I know this will be the way of the future, they will outpace me, I just need to have methods of getting context ready for them, and agents that know how to do it set up.\u003c/p\u003e\n",
      "content_text": "Is AI making us more productive yet, more faster yet?\n\n## Non-code \n\n_probably not_\n\nI've seen this question hitting all over the Internet lately, and often points\nto people not writing code.  Copilot turns prompts into emails, emails back\ninto summaries that look a lot like prompts. I think there's a place for this,\nmaking rambled thoughts sound more coherent, summarizing notes and meeting\nminutes.  All good stuff but does it make us more productive, probably not by\nan amount that you can put $ $ behind, unless you are reducing headcount.\n_thats not what we are doing right???_\n\n## Coding\n\n_with chat, probably not_\n\nWhen we talk about chatbots like gippity I think there's a benefit to having\nsomeone with jr skills in everything to talk to, someone who can read all of\nthe docs in an instant to get you some code snippet that might have taken all\nday to research and get right, but more productive, probably not.\n\n## Agentic Coding\n\n_maybe_\n\nI've hit a stride with coding agents this year unlike I've hit before.  Its able to bang out huge swaths of code in a prompt, with a good enough spec/plan.  It absolutely churns out code.  The bottleneck quickly becomes UAT.\n\nI definitely feel like I'm doing a lot.  There's a lot that's getting done that there's no way I could do alone, it would take a full team with heavy coordination.\n\n## Am I more productive\n\nI'm definitely doing more, there are more lines of code, more ideas flowing, more docs written, more notes taken, more bugs squashed, more features out.\n\nIn the sense of generating more $ $ for the stakeholder.  I really don't know that I'm there yet, everything feels so new and different that there's a bit of a learning curve to understand it all.  There's a pace and cadence to everything that may not be quite caught up yet.\n\nIt definitely feels like more is happening at a different pace that is hard to explain.\n\nI'm sure there is a wide spectrum of folks out there from some generating millions of additional revenue in new greenfield industries, to those burning tokens and getting nothing in return.\n\nWith this SUPER AUTO COMPLETE engine it's easy to say we found a bug affecting a user, but rather than squashing that one and getting a release out quickly squash ALL related bugs that a user might find in this category, it only takes a few more keystrokes right??\n\nRight now it feels like a lot is happening but its hard to sus out the real productivity from the noise.\n\n## FIN\n\nAs with anything AI It took me a few weeks to wrap this up and everything is already different.  But I had some recent experiences of feeling slower than just doing it, and its all around context.  I have built out a lot of the systems that I maintain by hand, I really know them well and I can solve a lot of problems within the hour by hand with coffee break.  But now that I'm trying to lean on agents, I know they can do a more thorough job than I can faster, but I don't have all of the data harnessed up.  Just today I spent all day trying to solve CI problems.  I can see the issue, I know the solution, but I want agents to solve this for me in the future so I spent the say working on a CLI to pull data from ci pipeline runs, manage the tokens get the logs, status, all of the data.  Because I know this will be the way of the future, they will outpace me, I just need to have methods of getting context ready for them, and agents that know how to do it set up.",
      "summary": "Is AI making us more productive yet, more faster yet?",
      "date_published": "2026-02-20T14:37:36Z",
      "date_modified": "2026-02-20T14:37:36Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "dev",
        "webdev"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/style/",
      "url": "https://go.waylonwalker.com/style/",
      "title": "/style",
      "content_html": "\u003cblockquote\u003e\n\u003cp\u003edrafted by kimi\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch1 id=\"style\"\u003e/style\u003c/h1\u003e\n\u003cp\u003eHow I write and build this site.  A personal style guide.\u003c/p\u003e\n\u003ch2 id=\"tone-of-voice\"\u003eTone of Voice \u003ca href=\"#tone-of-voice\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eCasually self-deprecating with technical credibility.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eI write like I’m talking to someone at a conference after-party, not a LinkedIn profile.  It’s okay to poke fun at myself and my projects.  “Under-funded, over-dreamed, barely documented” is a feature, not a bug.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePrinciples:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse first person (“I”, “me”, “my”)\u003c/li\u003e\n\u003cli\u003eKeep sentences punchy and direct\u003c/li\u003e\n\u003cli\u003eInclude real personal details and hobbies\u003c/li\u003e\n\u003cli\u003eShow technical expertise without taking myself too seriously\u003c/li\u003e\n\u003cli\u003eIt’s okay to mention frustrations with mainstream tools\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"writing-rules\"\u003eWriting Rules \u003ca href=\"#writing-rules\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFormatting:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNo em-dashes.  Use periods or commas instead\u003c/li\u003e\n\u003cli\u003eNo emoji\u003c/li\u003e\n\u003cli\u003e80 character hard wrap\u003c/li\u003e\n\u003cli\u003eDouble space between sentences\u003c/li\u003e\n\u003cli\u003eHeaders should be concise (2-4 words)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eStructure:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePut code examples front and center\u003c/li\u003e\n\u003cli\u003eAdd brief context or “why this matters” even if just one sentence\u003c/li\u003e\n\u003cli\u003eIt’s okay to say “I use this when…” or “This saved me from…”\u003c/li\u003e\n\u003cli\u003ePersonal anecdotes add authenticity\u003c/li\u003e\n\u003cli\u003eTechnical terms are fine, but explain the “why” behind choices\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eContent Types:\u003c/strong\u003e\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eType\u003c/th\u003e\n\u003cth\u003eTone\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003eBlog posts\u003c/td\u003e\n\u003ctd\u003eFull conversational tone, share opinions openly\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eHot tips / TILs\u003c/td\u003e\n\u003ctd\u003eShort, practical, but not robotic\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eGlossary entries\u003c/td\u003e\n\u003ctd\u003eStiff, definitional tone is intentional\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eDaily notes\u003c/td\u003e\n\u003ctd\u003eCasual and quick, stream of consciousness is fine\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2 id=\"code-style\"\u003eCode Style \u003ca href=\"#code-style\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ePython:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003euv\u003c/code\u003e for package management\u003c/li\u003e\n\u003cli\u003eType hints required: \u003ccode\u003efrom typing import TYPE_CHECKING, List, Optional\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ePydantic models for configuration\u003c/li\u003e\n\u003cli\u003ef-strings over concatenation\u003c/li\u003e\n\u003cli\u003eProper exception handling\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBash:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eset -euxo pipefail\u003c/code\u003e in scripts\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ejust\u003c/code\u003e for task management\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eNaming:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFunctions: snake_case\u003c/li\u003e\n\u003cli\u003eClasses: PascalCase\u003c/li\u003e\n\u003cli\u003ePython files: snake_case\u003c/li\u003e\n\u003cli\u003eContent files: kebab-case\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"site-architecture\"\u003eSite Architecture \u003ca href=\"#site-architecture\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eStack:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMarkata (custom Python static site generator)\u003c/li\u003e\n\u003cli\u003eTailwind CSS v4+ with pnpm\u003c/li\u003e\n\u003cli\u003eJinja2 templating\u003c/li\u003e\n\u003cli\u003eMarkdown with YAML frontmatter\u003c/li\u003e\n\u003cli\u003eKubernetes hosting (basement cluster)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDirectories:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eplugins/     Markata extensions\nscripts/     Utility scripts (Typer CLI)\ntemplates/   Jinja2 HTML templates\npages/       Markdown content\ntailwind/    CSS source files\nstatic/      Built assets\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2 id=\"content-philosophy\"\u003eContent Philosophy \u003ca href=\"#content-philosophy\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eDIY Ethic:\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eI emphasize building and maintaining things myself.  This site runs on a Kubernetes cluster in my basement because “I love DevOps” like maintaining your own bare-metal cluster just to host a static site.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eAuthenticity:\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eI create this blog with one person in mind: me.  If it helps others, great.  But I’m writing to document what I learn and think, not to build an audience or optimize for engagement.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLearn in Public:\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eShare failures, unfinished projects, and half-baked ideas.  The TIL format works because it captures learning in the moment, not after I’ve mastered something.\u003c/p\u003e\n\u003ch2 id=\"what-i-avoid\"\u003eWhat I Avoid \u003ca href=\"#what-i-avoid\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e“Just”\u003c/strong\u003e - The word skips invisible complexity\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePretending to know everything\u003c/strong\u003e - I’ll say when I’m confused\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eOverly complex solutions\u003c/strong\u003e - Prefer systems I can understand and fix\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePerformance for likes\u003c/strong\u003e - Not optimizing for engagement metrics\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"inspiration\"\u003eInspiration \u003ca href=\"#inspiration\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis style guide draws from:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://indieweb.org/style-guide\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/indieweb.org.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/indieweb.org.ico\" class=\"has-avatar  has-avatar-before\"\u003eslashpages.net /style\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://rubenerd.com/the-rubenerd-style-guide/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/rubenerd.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/rubenerd.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eRubenerd style guide\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://rknight.me/about/design/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/rknight.me.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/rknight.me.png\" class=\"has-avatar  has-avatar-before\"\u003eRobb Knight’s design style\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eYears of reading indie web blogs and knowing what I like\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eThis is a living document.  I break these rules when it feels right.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003e drafted by kimi\n\n# /style\n\nHow I write and build this site.  A personal style guide.\n\n## Tone of Voice\n\n**Casually self-deprecating with technical credibility.**\n\nI write like I'm talking to someone at a conference after-party, not a LinkedIn profile.  It's okay to poke fun at myself and my projects.  \"Under-funded, over-dreamed, barely documented\" is a feature, not a bug.\n\n**Principles:**\n\n- Use first person (\"I\", \"me\", \"my\")\n- Keep sentences punchy and direct\n- Include real personal details and hobbies\n- Show technical expertise without taking myself too seriously\n- It's okay to mention frustrations with mainstream tools\n\n## Writing Rules\n\n**Formatting:**\n\n- No em-dashes.  Use periods or commas instead\n- No emoji\n- 80 character hard wrap\n- Double space between sentences\n- Headers should be concise (2-4 words)\n\n**Structure:**\n\n- Put code examples front and center\n- Add brief context or \"why this matters\" even if just one sentence\n- It's okay to say \"I use this when...\" or \"This saved me from...\"\n- Personal anecdotes add authenticity\n- Technical terms are fine, but explain the \"why\" behind choices\n\n**Content Types:**\n\n| Type | Tone |\n|------|------|\n| Blog posts | Full conversational tone, share opinions openly |\n| Hot tips / TILs | Short, practical, but not robotic |\n| Glossary entries | Stiff, definitional tone is intentional |\n| Daily notes | Casual and quick, stream of consciousness is fine |\n\n## Code Style\n\n**Python:**\n\n- Use `uv` for package management\n- Type hints required: `from typing import TYPE_CHECKING, List, Optional`\n- Pydantic models for configuration\n- f-strings over concatenation\n- Proper exception handling\n\n**Bash:**\n\n- `set -euxo pipefail` in scripts\n- Use `just` for task management\n\n**Naming:**\n\n- Functions: snake_case\n- Classes: PascalCase\n- Python files: snake_case\n- Content files: kebab-case\n\n## Site Architecture\n\n**Stack:**\n\n- Markata (custom Python static site generator)\n- Tailwind CSS v4+ with pnpm\n- Jinja2 templating\n- Markdown with YAML frontmatter\n- Kubernetes hosting (basement cluster)\n\n**Directories:**\n\n```\nplugins/     Markata extensions\nscripts/     Utility scripts (Typer CLI)\ntemplates/   Jinja2 HTML templates\npages/       Markdown content\ntailwind/    CSS source files\nstatic/      Built assets\n```\n\n## Content Philosophy\n\n**DIY Ethic:**\n\nI emphasize building and maintaining things myself.  This site runs on a Kubernetes cluster in my basement because \"I love DevOps\" like maintaining your own bare-metal cluster just to host a static site.\n\n**Authenticity:**\n\nI create this blog with one person in mind: me.  If it helps others, great.  But I'm writing to document what I learn and think, not to build an audience or optimize for engagement.\n\n**Learn in Public:**\n\nShare failures, unfinished projects, and half-baked ideas.  The TIL format works because it captures learning in the moment, not after I've mastered something.\n\n## What I Avoid\n\n- **\"Just\"** - The word skips invisible complexity\n- **Pretending to know everything** - I'll say when I'm confused\n- **Overly complex solutions** - Prefer systems I can understand and fix\n- **Performance for likes** - Not optimizing for engagement metrics\n\n## Inspiration\n\nThis style guide draws from:\n\n- [slashpages.net /style](https://indieweb.org/style-guide)\n- [Rubenerd style guide](https://rubenerd.com/the-rubenerd-style-guide/)\n- [Robb Knight's design style](https://rknight.me/about/design/)\n- Years of reading indie web blogs and knowing what I like\n\n---\n\n*This is a living document.  I break these rules when it feels right.*\n",
      "summary": "drafted by kimi",
      "date_published": "2026-02-11T14:00:00Z",
      "date_modified": "2026-02-11T14:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "slashpages",
        "meta"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/interests/",
      "url": "https://go.waylonwalker.com/interests/",
      "title": "/interests",
      "content_html": "\u003cblockquote\u003e\n\u003cp\u003edrafted by kimi\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch1 id=\"interests\"\u003e/interests\u003c/h1\u003e\n\u003cp\u003eThings I’m passionate about and why they excite me.\u003c/p\u003e\n\u003ch2 id=\"mechanical-keyboards\"\u003eMechanical Keyboards \u003ca href=\"#mechanical-keyboards\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI’ve fallen deep into the custom keyboard rabbit hole.  Building keyboards combines electronics, ergonomics, and 3D printing into one satisfying hobby.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eWhat I love about it:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eTactile feedback\u003c/strong\u003e - Every keystroke has personality\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eErgonomics\u003c/strong\u003e - 40% split layouts changed how I think about typing\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCustomization\u003c/strong\u003e - From switches to keycaps to case design\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDIY culture\u003c/strong\u003e - Hand wiring, firmware hacking, designing my own PCBs\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eCurrent projects:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBuilding a split 40% wireless keyboard\u003c/li\u003e\n\u003cli\u003e3D printing custom keycaps\u003c/li\u003e\n\u003cli\u003eDesigning the “portajohn” keyboard case\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"/tags/keyboard\"\u003eSee my keyboard posts\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"3d-printing\"\u003e3D Printing \u003ca href=\"#3d-printing\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eFrom functional parts to artistic experiments, 3D printing lets me materialize ideas.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eWhat I print:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eKeyboard components\u003c/strong\u003e - Cases, keycaps, plate files\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePractical tools\u003c/strong\u003e - Knife sharpeners, microphone mounts, dovetail experiments\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eKid projects\u003c/strong\u003e - Working with Wyatt on various builds\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBoxes and organizers\u003c/strong\u003e - Custom storage solutions\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eWhat fascinates me:\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eThe ability to iterate rapidly on physical objects.  Print, test, adjust, repeat.  It’s software development velocity applied to atoms.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/tags/3d-printing\"\u003eSee my 3D printing posts\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"gaming-especially-with-family\"\u003eGaming (Especially with Family) \u003ca href=\"#gaming-especially-with-family\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eGames aren’t just entertainment.  They’re shared experiences, learning opportunities, and sometimes career inspiration.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eCurrent favorites:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDon’t Starve Together\u003c/strong\u003e - Cooperative survival, resource management lessons\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eMinecraft\u003c/strong\u003e - Creative building, redstone logic, modding\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eStardew Valley\u003c/strong\u003e - Low-stakes farming cooperation\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHollow Knight\u003c/strong\u003e - Challenging platformer, currently attempting keyboard-only run\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eWhy gaming matters:\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003ePlaying with my kids teaches cooperation, problem-solving, and that failure is just another attempt.  Plus it’s fun.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/tags/gaming\"\u003eSee my gaming posts\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"self-hosting--\u003ca href=\"/homelab/\" class=\"glossary-term\" title=\"A place to self host applications. For me this is primarily self built web applications, and applications for sharing files with my family. Techno Tim has a...\"\u003ehomelab\u003c/a\u003e\"\u003eSelf-Hosting \u0026amp; Homelab \u003ca href=\"#self-hosting--homelab\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI run a Kubernetes cluster in my basement because I enjoy understanding the systems I depend on.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eWhat’s running:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eStatic sites (this blog)\u003c/li\u003e\n\u003cli\u003eGame servers (Minecraft)\u003c/li\u003e\n\u003cli\u003eCI/CD pipelines\u003c/li\u003e\n\u003cli\u003ePersonal services\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eWhy I do it:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eLearning\u003c/strong\u003e - You don’t really understand networking until you’ve debugged DNS at 2am\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eOwnership\u003c/strong\u003e - My data, my rules\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSimplicity\u003c/strong\u003e - One person maintaining their own infra learns what’s actually necessary\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"/tags/kubernetes\"\u003eSee my homelab posts\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"terminal-workflows\"\u003eTerminal Workflows \u003ca href=\"#terminal-workflows\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI spend most of my day in a terminal.  Optimizing that environment is both practical and oddly satisfying.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMy setup:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eneovim for editing\u003c/li\u003e\n\u003cli\u003etmux for sessions\u003c/li\u003e\n\u003cli\u003ezsh with custom config (no oh-my-zsh)\u003c/li\u003e\n\u003cli\u003ekitty terminal\u003c/li\u003e\n\u003cli\u003estarship prompt\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eWhat I optimize for:\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpeed.  Fast startup times, fast key response, fast feedback loops.  The terminal rewards efficiency.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/tags/terminal\"\u003eSee my terminal posts\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"python\"\u003ePython \u003ca href=\"#python\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIt’s the language that got me into programming seriously, and it remains my default for almost everything.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eWhat I build:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eData pipelines\u003c/strong\u003e - Kedro, pandas, data engineering workflows\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCLI tools\u003c/strong\u003e - Typer, click, automation scripts\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eStatic site generators\u003c/strong\u003e - Markata, my DIY solution\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRandom utilities\u003c/strong\u003e - If I can script it, I probably will\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eWhy Python:\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eReadable, batteries included, massive ecosystem, and it gets out of the way when I want to solve problems.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/tags/python\"\u003eSee my Python posts\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"skating\"\u003eSkating \u003ca href=\"#skating\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003ePhysical activity that gets me away from screens.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eWhat I do:\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eCasual skating, nothing competitive.  Just cruising, enjoying movement, clearing my head.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eWhy it matters:\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eBalance.  Too much terminal time needs physical counterweight.  Plus it’s fun.\u003c/p\u003e\n\u003ch2 id=\"data-engineering\"\u003eData Engineering \u003ca href=\"#data-engineering\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eMy professional focus and ongoing fascination.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eWhat interests me:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBuilding reliable data pipelines\u003c/li\u003e\n\u003cli\u003eMaking data accessible and useful\u003c/li\u003e\n\u003cli\u003eThe intersection of software engineering and data science\u003c/li\u003e\n\u003cli\u003eTools that make data work less painful\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"/tags/data\"\u003eSee my data posts\u003c/a\u003e\u003c/p\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eThese interests overlap and inform each other.  Keyboards led to 3D printing.  Gaming led to self-hosting game servers.  Everything connects back to building and understanding systems.\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eInspired by \u003ca href=\"https://indieweb.org/interests\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/indieweb.org.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/indieweb.org.ico\" class=\"has-avatar  has-avatar-before\"\u003eslashpages.net /interests\u003c/a\u003e and \u003ca href=\"https://chrisburnell.com/note/slash-interests/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/chrisburnell.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/chrisburnell.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eChris Burnell’s interests\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003e drafted by kimi\n\n# /interests\n\nThings I'm passionate about and why they excite me.\n\n## Mechanical Keyboards\n\nI've fallen deep into the custom keyboard rabbit hole.  Building keyboards combines electronics, ergonomics, and 3D printing into one satisfying hobby.\n\n**What I love about it:**\n\n- **Tactile feedback** - Every keystroke has personality\n- **Ergonomics** - 40% split layouts changed how I think about typing\n- **Customization** - From switches to keycaps to case design\n- **DIY culture** - Hand wiring, firmware hacking, designing my own PCBs\n\n**Current projects:**\n\n- Building a split 40% wireless keyboard\n- 3D printing custom keycaps\n- Designing the \"portajohn\" keyboard case\n\n[See my keyboard posts](/tags/keyboard)\n\n## 3D Printing\n\nFrom functional parts to artistic experiments, 3D printing lets me materialize ideas.\n\n**What I print:**\n\n- **Keyboard components** - Cases, keycaps, plate files\n- **Practical tools** - Knife sharpeners, microphone mounts, dovetail experiments\n- **Kid projects** - Working with Wyatt on various builds\n- **Boxes and organizers** - Custom storage solutions\n\n**What fascinates me:**\n\nThe ability to iterate rapidly on physical objects.  Print, test, adjust, repeat.  It's software development velocity applied to atoms.\n\n[See my 3D printing posts](/tags/3d-printing)\n\n## Gaming (Especially with Family)\n\nGames aren't just entertainment.  They're shared experiences, learning opportunities, and sometimes career inspiration.\n\n**Current favorites:**\n\n- **Don't Starve Together** - Cooperative survival, resource management lessons\n- **Minecraft** - Creative building, redstone logic, modding\n- **Stardew Valley** - Low-stakes farming cooperation\n- **Hollow Knight** - Challenging platformer, currently attempting keyboard-only run\n\n**Why gaming matters:**\n\nPlaying with my kids teaches cooperation, problem-solving, and that failure is just another attempt.  Plus it's fun.\n\n[See my gaming posts](/tags/gaming)\n\n## Self-Hosting \u0026 Homelab\n\nI run a Kubernetes cluster in my basement because I enjoy understanding the systems I depend on.\n\n**What's running:**\n\n- Static sites (this blog)\n- Game servers (Minecraft)\n- CI/CD pipelines\n- Personal services\n\n**Why I do it:**\n\n- **Learning** - You don't really understand networking until you've debugged DNS at 2am\n- **Ownership** - My data, my rules\n- **Simplicity** - One person maintaining their own infra learns what's actually necessary\n\n[See my homelab posts](/tags/kubernetes)\n\n## Terminal Workflows\n\nI spend most of my day in a terminal.  Optimizing that environment is both practical and oddly satisfying.\n\n**My setup:**\n\n- neovim for editing\n- tmux for sessions\n- zsh with custom config (no oh-my-zsh)\n- kitty terminal\n- starship prompt\n\n**What I optimize for:**\n\nSpeed.  Fast startup times, fast key response, fast feedback loops.  The terminal rewards efficiency.\n\n[See my terminal posts](/tags/terminal)\n\n## Python\n\nIt's the language that got me into programming seriously, and it remains my default for almost everything.\n\n**What I build:**\n\n- **Data pipelines** - Kedro, pandas, data engineering workflows\n- **CLI tools** - Typer, click, automation scripts\n- **Static site generators** - Markata, my DIY solution\n- **Random utilities** - If I can script it, I probably will\n\n**Why Python:**\n\nReadable, batteries included, massive ecosystem, and it gets out of the way when I want to solve problems.\n\n[See my Python posts](/tags/python)\n\n## Skating\n\nPhysical activity that gets me away from screens.\n\n**What I do:**\n\nCasual skating, nothing competitive.  Just cruising, enjoying movement, clearing my head.\n\n**Why it matters:**\n\nBalance.  Too much terminal time needs physical counterweight.  Plus it's fun.\n\n## Data Engineering\n\nMy professional focus and ongoing fascination.\n\n**What interests me:**\n\n- Building reliable data pipelines\n- Making data accessible and useful\n- The intersection of software engineering and data science\n- Tools that make data work less painful\n\n[See my data posts](/tags/data)\n\n---\n\n*These interests overlap and inform each other.  Keyboards led to 3D printing.  Gaming led to self-hosting game servers.  Everything connects back to building and understanding systems.*\n\n*Inspired by [slashpages.net /interests](https://indieweb.org/interests) and [Chris Burnell's interests](https://chrisburnell.com/note/slash-interests/)*\n",
      "summary": "drafted by kimi",
      "date_published": "2026-02-11T14:00:00Z",
      "date_modified": "2026-02-11T14:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "slashpages",
        "about"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/how-to-run-5-agents-in-parallel-jan-2026-edition/",
      "url": "https://go.waylonwalker.com/how-to-run-5-agents-in-parallel-jan-2026-edition/",
      "title": "How To Run 5 Agents In Parallel Feb 2026 Edition",
      "content_html": "\u003cp\u003eAre developers really running 5 agents in parallel?  How the Heck do they keep\nup with the changes?  This seems Impossible.\u003c/p\u003e\n\u003cp\u003eI was listening to Syntax.fm this morning and heard this question, and thought\nI’d throw in my take, which is probably pretty similar to Wes and Scott’s.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://www.youtube.com/watch?v=NrBQI9So5lM\u0026amp;list=PLLnpHn493BHHNUfHN5lDf11UD8jQ5Bpzl\u0026amp;index=1\u0026amp;t=99s\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://www.youtube.com/watch?v=NrBQI9So5lM\u0026amp;list=PLLnpHn493BHHNUfHN5lDf11UD8jQ5Bpzl\u0026amp;index=1\u0026amp;t=99s\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"yes\"\u003eYes \u003ca href=\"#yes\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eYes, developers are running 5 agents in parallel.  It’s not that hard it\nrequires you to shift from thinking about the weeds and seeing the forest see:\n\u003ca href=\"/pm-not-babysitter/\" class=\"wikilink\" data-title=\"Pm Not Babysitter\" data-description=\"Stop babysitting your agents, treat them like a real team and they will reward you.\" data-date=\"2026-02-06\" data-preview=\"Stop babysitting your agents, treat them like a real team and they will reward you.\"\u003ePm Not Babysitter\u003c/a\u003e.  It requires effort and diligence.  Most importantly\nit requires planning, it requires agents, it requires tooling.\u003c/p\u003e\n\u003cp\u003eIs anyone doing this all day?  Probably not. At least not outside of the\nstartup companies that are building out tools to do this.  Yes there are some,\nthere’s always outliers, but its going to be rare.  To have multiple agents\nrunning in parallel add day you need a lot of tokens, access to good models,\nand right now a low to medium risk application.\u003c/p\u003e\n\u003cp\u003eThe big news right now is that Anthropic did what took google two years to do\naround 2008 (make a prototype browser render basic web pages) in 2 weeks.  This\ntook a swarm of agents running, a good plan (the modern browser is probably the\nmost openly spec’d piece of software ever to exist, so they had a lot to go\non).  But this is also zero risk.  If it doesn’t render there are no sales\nlost, no traffic accidents, no security breaches, no missed deadlines.\u003c/p\u003e\n\u003ch2 id=\"not-with-chat\"\u003enot with chat \u003ca href=\"#not-with-chat\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003echatbots like chatgpt, are not getting you to run 5 agents in parallel.  Maybe\nyou take a sip of your coffee while it spits out its response, but you don’t\nhave enough time to jump between many of them.  If this is your experience so\nfar, I understand how confusing it would be to think that someone is running 5\nagents in parallel.  But they are, and they are doing it with tools that are\nnot chatbots.\u003c/p\u003e\n\u003ch2 id=\"planning\"\u003ePLANNING \u003ca href=\"#planning\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis is the core of what it takes to keep agents running for long periods of\ntime in Feb 2026.  Agents need something to do, telling them to turn the circle\ngreen, then blue, then to a rectangle, is not it, They will have this done in\nseconds. You probably could have done it just as fast and better.\u003c/p\u003e\n\u003cp\u003eFor the plan itself, Send agents off to research.  Agents are not good at\nsolving problems without a good plan, but this does not mean you have to\ntediously write out the plan from scratch.  They are really good a reading docs,\nspecs, standards, finding them on the web.  Reading your codebase to understand\nwhere and how a bug might be happening.  They are really good at running bash,\nbrowser automation, they can reproduce your bugs for you and provide detailed\nlogs with expected and actual behaviors in your plans.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eIf you are trying to solve a production problem in an environment where you\nhave risk and dont want agents running wild in, dont let them in, or scope\ntheir permissions.  They are really good at understanding they cant access\nand writing a script for you, one that you can review to ensure they are\ngathering facts and not chaning production servers.  Then you can run it\nyourself and paste the results back in.  Sure there are better ways, but\nwithout any set up this works.\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003eExecuting plans, if you have well scoped and documented work for the agent to\ndo, as of right now they are happy to keep working.  I dont think there yet\nexists any sort of best practice here yet.  I prefer to keep it out of the\nagent tools plan mode only because that is so deeply tied to the session.  If\nyou get context poisoning or a shit compaction your session might be hosed\nand unrecoverable, I’m sure you could go into the agents session files and do\nsomething to get it back, but I’ve yet to need one back that bad to really\ncare.\u003c/p\u003e\n\u003cp\u003eWhat you need is a system that agents can access to tell them what to do, a\nsimple markdown file works, GitHub issues work, I’m sure boards, and kanban\nwork if it has an api the agent can understand.\u003c/p\u003e\n",
      "content_text": "\nAre developers really running 5 agents in parallel?  How the Heck do they keep\nup with the changes?  This seems Impossible.\n\nI was listening to Syntax.fm this morning and heard this question, and thought\nI'd throw in my take, which is probably pretty similar to Wes and Scott's.\n\nhttps://www.youtube.com/watch?v=NrBQI9So5lM\u0026list=PLLnpHn493BHHNUfHN5lDf11UD8jQ5Bpzl\u0026index=1\u0026t=99s\n\n## Yes\n\nYes, developers are running 5 agents in parallel.  It's not that hard it\nrequires you to shift from thinking about the weeds and seeing the forest see:\n\u003ca href=\"/pm-not-babysitter/\" class=\"wikilink\" data-title=\"Pm Not Babysitter\" data-description=\"Stop babysitting your agents, treat them like a real team and they will reward you.\" data-date=\"2026-02-06\"\u003ePm Not Babysitter\u003c/a\u003e.  It requires effort and diligence.  Most importantly\nit requires planning, it requires agents, it requires tooling.\n\nIs anyone doing this all day?  Probably not. At least not outside of the\nstartup companies that are building out tools to do this.  Yes there are some,\nthere's always outliers, but its going to be rare.  To have multiple agents\nrunning in parallel add day you need a lot of tokens, access to good models,\nand right now a low to medium risk application.\n\nThe big news right now is that Anthropic did what took google two years to do\naround 2008 (make a prototype browser render basic web pages) in 2 weeks.  This\ntook a swarm of agents running, a good plan (the modern browser is probably the\nmost openly spec'd piece of software ever to exist, so they had a lot to go\non).  But this is also zero risk.  If it doesn't render there are no sales\nlost, no traffic accidents, no security breaches, no missed deadlines.\n\n## not with chat\n\nchatbots like chatgpt, are not getting you to run 5 agents in parallel.  Maybe\nyou take a sip of your coffee while it spits out its response, but you don't\nhave enough time to jump between many of them.  If this is your experience so\nfar, I understand how confusing it would be to think that someone is running 5\nagents in parallel.  But they are, and they are doing it with tools that are\nnot chatbots.\n\n## PLANNING\n\nThis is the core of what it takes to keep agents running for long periods of\ntime in Feb 2026.  Agents need something to do, telling them to turn the circle\ngreen, then blue, then to a rectangle, is not it, They will have this done in\nseconds. You probably could have done it just as fast and better.\n\nFor the plan itself, Send agents off to research.  Agents are not good at\nsolving problems without a good plan, but this does not mean you have to\ntediously write out the plan from scratch.  They are really good a reading docs,\nspecs, standards, finding them on the web.  Reading your codebase to understand\nwhere and how a bug might be happening.  They are really good at running bash,\nbrowser automation, they can reproduce your bugs for you and provide detailed\nlogs with expected and actual behaviors in your plans.\n\n!!! Note\n\n    If you are trying to solve a production problem in an environment where you\n    have risk and dont want agents running wild in, dont let them in, or scope\n    their permissions.  They are really good at understanding they cant access\n    and writing a script for you, one that you can review to ensure they are\n    gathering facts and not chaning production servers.  Then you can run it\n    yourself and paste the results back in.  Sure there are better ways, but\n    without any set up this works.\n\nExecuting plans, if you have well scoped and documented work for the agent to\ndo, as of right now they are happy to keep working.  I dont think there yet\nexists any sort of best practice here yet.  I prefer to keep it out of the\nagent tools plan mode only because that is so deeply tied to the session.  If\nyou get context poisoning or a shit compaction your session might be hosed\nand unrecoverable, I'm sure you could go into the agents session files and do\nsomething to get it back, but I've yet to need one back that bad to really\ncare.\n\nWhat you need is a system that agents can access to tell them what to do, a\nsimple markdown file works, GitHub issues work, I'm sure boards, and kanban\nwork if it has an api the agent can understand.\n\n",
      "summary": "Are developers really running 5 agents in parallel? How the Heck do they keep up with the changes? This seems Impossible.",
      "date_published": "2026-02-11T09:28:02Z",
      "date_modified": "2026-02-11T09:28:02Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "agentic"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/next/",
      "url": "https://go.waylonwalker.com/next/",
      "title": "Next",
      "content_html": "\u003cp\u003eA running list of blog post ideas to strengthen underrepresented topics on the\nsite.\u003c/p\u003e\n\u003ch2 id=\"docker-posts\"\u003eDocker Posts \u003ca href=\"#docker-posts\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eBuilding out Docker/containerization content to match the llms.txt claims.\u003c/p\u003e\n\u003ch3 id=\"existing-foundation\"\u003eExisting Foundation \u003ca href=\"#existing-foundation\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/docker-deep-dive/\"\u003edocker-deep-dive.md\u003c/a\u003e - unpublished notes from 2021\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/docker-minecraft-server/\"\u003edocker-minecraft-server.md\u003c/a\u003e - minecraft in docker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/modded-minecraft-in-docker/\"\u003emodded-minecraft-in-docker.md\u003c/a\u003e - modded server\nsetup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/emoji-in-headless-chrome-in-docker/\"\u003eemoji-in-headless-chrome-in-docker.md\u003c/a\u003e -\nheadless chrome fix\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"suggested-posts\"\u003eSuggested Posts \u003ca href=\"#suggested-posts\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e“Why I containerize my entire dev environment”\u003c/strong\u003e - Philosophy post linking to\nthe 2026 resolution about working from a distrobox image\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e“Docker vs Kubernetes in the \u003ca href=\"/homelab/\" class=\"glossary-term\" title=\"A place to self host applications. For me this is primarily self built web applications, and applications for sharing files with my family. Techno Tim has a...\"\u003ehomelab\u003c/a\u003e: when to use what”\u003c/strong\u003e - Standalone\ncomparison post (referenced in right/wrong reasons posts)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e“My devtainer workflow: dotfiles in Docker”\u003c/strong\u003e - Document the actual devtainer\nsetup mentioned in llms.txt\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e“Migrating from Docker Compose to Kubernetes with kompose”\u003c/strong\u003e - Experience\nfrom the 6-months-in post, expanded\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFinish docker-deep-dive.md\u003c/strong\u003e - Turn those 2021 notes into a published deep\ndive\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"distrobox-posts\"\u003eDistrobox Posts \u003ca href=\"#distrobox-posts\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLightest coverage area. Need to expand beyond the few short posts.\u003c/p\u003e\n\u003ch3 id=\"existing-foundation-1\"\u003eExisting Foundation \u003ca href=\"#existing-foundation-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/backup-distrobox-image/\"\u003ebackup-distrobox-image.md\u003c/a\u003e - cloning/upgrading (22\nlines, very short)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/setup-bambu-studio-in-distrobox/\"\u003esetup-bambu-studio-in-distrobox.md\u003c/a\u003e -\nbambu studio with GPU (33 lines)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/gpus-are-awesome/\"\u003egpus-are-awesome.md\u003c/a\u003e - mentions distrobox for GPU access\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/2026-resolutions/\"\u003e2026-resolutions.md\u003c/a\u003e - mentions heavy distrobox usage on\nBazzite\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"suggested-posts-1\"\u003eSuggested Posts \u003ca href=\"#suggested-posts-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e“A month working entirely from distrobox: what’s working and what isn’t”\u003c/strong\u003e -\nPractical retrospective based on the 2026 resolution\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e“distrobox vs dev containers: why I chose distrobox”\u003c/strong\u003e - Reasoning for the\nswitch\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e“GPU passthrough in distrobox for 3D printing workflows”\u003c/strong\u003e - Expand the\nbambu-studio post, explain \u003ccode\u003e--nvidia\u003c/code\u003e flag deeply\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e“Managing multiple distrobox environments”\u003c/strong\u003e - How to organize/backup/clone\n(expand the backup post significantly)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e“From Bazzite host to Arch distrobox: my immutable desktop workflow”\u003c/strong\u003e - The\ndaily driver setup\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"quick-wins\"\u003eQuick Wins \u003ca href=\"#quick-wins\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e\u003cstrong\u003ePublish docker-deep-dive.md\u003c/strong\u003e - Set \u003ccode\u003epublished: true\u003c/code\u003e and clean up the 2021\nnotes\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eExpand backup-distrobox-image.md\u003c/strong\u003e - 22 lines to full post with workflow\nrationale\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCreate a containers index page\u003c/strong\u003e - Tie together scattered container posts\nunder one “My Container Workflow” index\u003c/li\u003e\n\u003c/ol\u003e\n",
      "content_text": "\nA running list of blog post ideas to strengthen underrepresented topics on the\nsite.\n\n## Docker Posts\n\nBuilding out Docker/containerization content to match the llms.txt claims.\n\n### Existing Foundation\n\n- [docker-deep-dive.md](/docker-deep-dive/) - unpublished notes from 2021\n- [docker-minecraft-server.md](/docker-minecraft-server/) - minecraft in docker\n- [modded-minecraft-in-docker.md](/modded-minecraft-in-docker/) - modded server\n  setup\n- [emoji-in-headless-chrome-in-docker.md](/emoji-in-headless-chrome-in-docker/) -\n  headless chrome fix\n\n### Suggested Posts\n\n- **\"Why I containerize my entire dev environment\"** - Philosophy post linking to\n  the 2026 resolution about working from a distrobox image\n- **\"Docker vs Kubernetes in the homelab: when to use what\"** - Standalone\n  comparison post (referenced in right/wrong reasons posts)\n- **\"My devtainer workflow: dotfiles in Docker\"** - Document the actual devtainer\n  setup mentioned in llms.txt\n- **\"Migrating from Docker Compose to Kubernetes with kompose\"** - Experience\n  from the 6-months-in post, expanded\n- **Finish docker-deep-dive.md** - Turn those 2021 notes into a published deep\n  dive\n\n## Distrobox Posts\n\nLightest coverage area. Need to expand beyond the few short posts.\n\n### Existing Foundation\n\n- [backup-distrobox-image.md](/backup-distrobox-image/) - cloning/upgrading (22\n  lines, very short)\n- [setup-bambu-studio-in-distrobox.md](/setup-bambu-studio-in-distrobox/) -\n  bambu studio with GPU (33 lines)\n- [gpus-are-awesome.md](/gpus-are-awesome/) - mentions distrobox for GPU access\n- [2026-resolutions.md](/2026-resolutions/) - mentions heavy distrobox usage on\n  Bazzite\n\n### Suggested Posts\n\n- **\"A month working entirely from distrobox: what's working and what isn't\"** -\n  Practical retrospective based on the 2026 resolution\n- **\"distrobox vs dev containers: why I chose distrobox\"** - Reasoning for the\n  switch\n- **\"GPU passthrough in distrobox for 3D printing workflows\"** - Expand the\n  bambu-studio post, explain `--nvidia` flag deeply\n- **\"Managing multiple distrobox environments\"** - How to organize/backup/clone\n  (expand the backup post significantly)\n- **\"From Bazzite host to Arch distrobox: my immutable desktop workflow\"** - The\n  daily driver setup\n\n## Quick Wins\n\n1. **Publish docker-deep-dive.md** - Set `published: true` and clean up the 2021\n   notes\n2. **Expand backup-distrobox-image.md** - 22 lines to full post with workflow\n   rationale\n3. **Create a containers index page** - Tie together scattered container posts\n   under one \"My Container Workflow\" index\n",
      "summary": "A running list of blog post ideas to strengthen underrepresented topics on the site.",
      "date_published": "2026-02-08T00:00:00Z",
      "date_modified": "2026-02-08T00:00:00Z",
      "authors": [
        {
          "name": "Kimi k2.5 Free",
          "url": "https://www.kimi.com/en",
          "avatar": "/kimi-logo-CegIMkbU.png"
        }
      ],
      "tags": [
        "meta",
        "planning"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/dabbling-in-go-with-agents/",
      "url": "https://go.waylonwalker.com/dabbling-in-go-with-agents/",
      "title": "Dabbling In Go With Agents",
      "content_html": "\u003cp\u003eI’ve been dabbling with go this week using\u003c/p\u003e\n",
      "content_text": "I've been dabbling with go this week using \n",
      "summary": "I've been dabbling with go this week using",
      "date_published": "2026-01-23T14:46:07Z",
      "date_modified": "2026-01-23T14:46:07Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "go"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/my-first-agentic-workflow/",
      "url": "https://go.waylonwalker.com/my-first-agentic-workflow/",
      "title": "My First Agentic Workflow",
      "content_html": "\u003cp\u003eIn early 2026 I’m trying to lean more in to agentic workflows.  The tools are\nnot only better than they were a year ago, but available to me now unlike they\nwere 6 months ago.\u003c/p\u003e\n\u003ch2 id=\"what-im-using\"\u003eWhat I’m using \u003ca href=\"#what-im-using\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAt home I’m using opencode, the tooling here is fantastic.  LSP incide of these\nthings is incredible, mcp is fine when its needed.  The free models it gives\nyou are impressively good for free models, but they are still not the big\nmodels from the big providers.  I’m using what work gives me, they give me a\ntool with access to good models, the models are great, the tools kinda suck.\nI’m being vaugue here because I dont share real work details.\u003c/p\u003e\n\u003ch2 id=\"skepticism\"\u003eSkepticism \u003ca href=\"#skepticism\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI’ve been skeptical the whole way, I see ai being a very useful tool.  I remain\n\u003ca href=\"/techbrophobic/\" class=\"wikilink\" data-title=\"Techbrophobic\" data-description=\"I just heard someone drop the this term and it kinda fits a lot of shit on the internet right now. Arguing that its OK to question AI, its OK to like it, its...\" data-date=\"2025-11-09\" data-preview=\"I just heard someone drop the this term and it kinda fits a lot of shit on the internet right now. Arguing that its OK to question AI, its OK to like it, its...\"\u003eTechbrophobic\u003c/a\u003e.  It’s better than the non believers will tell you, and no\nwhere near as good as the hype bros will tell you.  The industry is shitty and\ndoing shitty things, I’m not here to change this, I’m here to do my thing and\ntry to get better.\u003c/p\u003e\n\u003ch2 id=\"software-engineering-is-not-gone\"\u003eSoftware Engineering is not gone \u003ca href=\"#software-engineering-is-not-gone\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWhat I’m feeling is that agentic workflows with llms are not going to replace\nSoftware Engineering, I’m with Simon Willison holding out hope that it will\nactually enable more companies to have needs and expand the industry.  I really\nsee where these workflows allow us to see the forest for the trees and work at\na higher level than we otherwise would be able to.\u003c/p\u003e\n\u003chr/\u003e\n\u003ch2 id=\"setup\"\u003eSetup \u003ca href=\"#setup\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e/init\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cul\u003e\n\u003cli\u003eAGENTS.md\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"issue---iterate\"\u003eIssue - iterate \u003ca href=\"#issue---iterate\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeature request\u003c/li\u003e\n\u003cli\u003ebug report\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003eissue.md\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"plan---iterate\"\u003ePlan - iterate \u003ca href=\"#plan---iterate\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLook at @issue.md and make a plan, then iterate on the plan.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eplan.md\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"execution\"\u003eExecution \u003ca href=\"#execution\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"review---go-back-to-planissue\"\u003eReview - go back to plan/issue \u003ca href=\"#review---go-back-to-planissue\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"changelog\"\u003eChangelog \u003ca href=\"#changelog\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"pr-review\"\u003ePR Review \u003ca href=\"#pr-review\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n",
      "content_text": "\nIn early 2026 I'm trying to lean more in to agentic workflows.  The tools are\nnot only better than they were a year ago, but available to me now unlike they\nwere 6 months ago.\n\n## What I'm using\n\nAt home I'm using opencode, the tooling here is fantastic.  LSP incide of these\nthings is incredible, mcp is fine when its needed.  The free models it gives\nyou are impressively good for free models, but they are still not the big\nmodels from the big providers.  I'm using what work gives me, they give me a\ntool with access to good models, the models are great, the tools kinda suck.\nI'm being vaugue here because I dont share real work details.\n\n## Skepticism\n\nI've been skeptical the whole way, I see ai being a very useful tool.  I remain\n\u003ca href=\"/techbrophobic/\" class=\"wikilink\" data-title=\"Techbrophobic\" data-description=\"I just heard someone drop the this term and it kinda fits a lot of shit on the internet right now. Arguing that its OK to question AI, its OK to like it, its...\" data-date=\"2025-11-09\"\u003eTechbrophobic\u003c/a\u003e.  It's better than the non believers will tell you, and no\nwhere near as good as the hype bros will tell you.  The industry is shitty and\ndoing shitty things, I'm not here to change this, I'm here to do my thing and\ntry to get better.\n\n## Software Engineering is not gone\n\nWhat I'm feeling is that agentic workflows with llms are not going to replace\nSoftware Engineering, I'm with Simon Willison holding out hope that it will\nactually enable more companies to have needs and expand the industry.  I really\nsee where these workflows allow us to see the forest for the trees and work at\na higher level than we otherwise would be able to.\n\n---\n\n## Setup\n\n``` bash\n/init\n```\n\n* AGENTS.md\n\n## Issue - iterate\n\n* feature request\n* bug report\n\n\u003e issue.md\n\n## Plan - iterate\n\nLook at @issue.md and make a plan, then iterate on the plan.\n\n\u003e plan.md\n\n## Execution\n\n\n## Review - go back to plan/issue\n\n## Changelog\n\n## PR Review\n",
      "summary": "In early 2026 I'm trying to lean more in to agentic workflows. The tools are not only better than they were a year ago, but available to me now unlike they...",
      "date_published": "2026-01-19T09:40:20Z",
      "date_modified": "2026-01-19T09:40:20Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/2026-predictions/",
      "url": "https://go.waylonwalker.com/2026-predictions/",
      "title": "2026 Predictions",
      "content_html": "\u003cp\u003eI’m late on this one so I’ve seen everyone else’s. I’ll try my best to make some\nbold predictions I’ve not seen elsewhere\u003c/p\u003e\n\u003ch2 id=\"more-open-source-less-open-contribution\"\u003emore open source, less open contribution \u003ca href=\"#more-open-source-less-open-contribution\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI predict that this is the point in time that we see an explosion of open\nsource, but more projects than ever going the way of sqlite, Livestream,\nandroid, unreal engine, aesprite. It is getting so easy for agents to generate\n10k lines of code in a few hours. This makes it easy for folks who have ideas\nthey want to create to create them. It also makes it much harder to accept\noutside contributions when they make such massive changes. Thirdly it will be\neasier for folks to just make their own fork to do what they want.\u003c/p\u003e\n\u003cp\u003eRight now it’s hard to name 5 big open source, closed contribution projects by\nthe end of the year there will be 5 more that are recognizable.\u003c/p\u003e\n\u003cp\u003eI think more open contribution will go the way of [[ whenwords ]], spec driven\ndevelopment. This is very high level. Very easy to understand a large portion\nof the codebase very quickly. Very easy for anyone to understand. While it’s\nall written in plain English and not code it has a way of being deterministic,\nand does not skip on software engineering principles.\u003c/p\u003e\n\u003ch2 id=\"2026-is-not-the-year-to-build-hardware\"\u003e2026 is not the year to build hardware \u003ca href=\"#2026-is-not-the-year-to-build-hardware\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe time will come hardware will be cheap. I hold a lot of hope for this, but\n2026 is not that year. This really isn’t my area of expertise what do I know\nother than I have gaming PCs, laptops steam decks, and servers in my house. I\npredict none of them get an upgrade with new parts this year, but there will be\na year in the future that upgrades are so cheap that it’s hard to pass on.\nSites like serverpartdeals will be flooded with good drives from failed data\ncenter plans (so many in place right now not all of these companies will\nsurvive, not predicting any mass bubble pop here, that’s above my pay grade).\nBut 2026 is not that year.\u003c/p\u003e\n\u003ch2 id=\"agents-will-overwork-us\"\u003eAgents will overwork us \u003ca href=\"#agents-will-overwork-us\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThere is going to be burnout this year, people are going to be running point on\n12 agents for most of their day and be plain ass burnt out by the end of the\nyear. This shit feels different and its hard to see right now. Most of us can\nfeel programming work, the stress it brings, the joy it brings. We have a\ndecent sense of being almost there, just 10 more minutes to wrap up. It’s\ntaken us a long time to hone this craft. We don’t have a sense for an agent\nalmost being there. The work we put into planning for agents feels different.\nIt doesn’t \u003cem\u003efeel\u003c/em\u003e as hard, but it engages a higher level of thinking that\nallows us to see the forest for the trees. It can let us work on more things\nat the same time. I predict by the end of the year there will be podcast\nepisodes talking about burnout, and specifically feeling burnt out on planning\nfor agents work.\u003c/p\u003e\n\u003ch2 id=\"2026-is-to-ai-as-2012-was-for-js-frameworks\"\u003e2026 is to ai as 2012 was for js frameworks \u003ca href=\"#2026-is-to-ai-as-2012-was-for-js-frameworks\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis year we will see tooling and technique churn like crazy. I think there are\nalready some clear winners with copilot, cursor, claude code, and opencode. I\nthink these will remain in their respective camps as winners and do well. What\nI think is going to churn a lot is what we hook into them, whether its mcp,\nlsp, or clis.\u003c/p\u003e\n\u003cp\u003eCurrently as I write this we have an issue managing context, getting the right\ncontext to the agents, managing bloat and token count. There’s a lot of talk\nabout memory. I think the first half of the year we are going to see a lot of\ntools that hook into the agentic tools to give them more memory, the right\ncontext in the session.\u003c/p\u003e\n\u003cp\u003eThere’s also an issue around getting the agents to run longer. Right now we’re\nseeing things like the Ralph loop where agents keep spinning on the same task.\nTools that help agents run longer without getting stuck will be hot.\u003c/p\u003e\n\u003cp\u003eThe type of things that are going to have new things come out each week will be\ntools that…\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eManage context\u003c/li\u003e\n\u003cli\u003eGet agents to run longer\u003c/li\u003e\n\u003cli\u003eAdd skills\u003c/li\u003e\n\u003cli\u003eHook in via CLI or mcp\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRight now I think we have some clear winners around the parent tools, but a\nlayer underneath is ready for a lot of churn. Buckle up.\u003c/p\u003e\n\u003ch2 id=\"results\"\u003eResults \u003ca href=\"#results\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI’m tracking \u003ca href=\"/2026-prediction-results/\" class=\"wikilink\" data-title=\"2026 Prediction Results\" data-description=\"I\u0026#39;m tracking results of 2026-predictions\" data-date=\"2026-12-31\" data-preview=\"I\u0026#39;m tracking results of 2026-predictions\"\u003e2026 Prediction Results\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\nI'm late on this one so I've seen everyone else's. I'll try my best to make some\nbold predictions I've not seen elsewhere\n\n## more open source, less open contribution\n\nI predict that this is the point in time that we see an explosion of open\nsource, but more projects than ever going the way of sqlite, Livestream,\nandroid, unreal engine, aesprite. It is getting so easy for agents to generate\n10k lines of code in a few hours. This makes it easy for folks who have ideas\nthey want to create to create them. It also makes it much harder to accept\noutside contributions when they make such massive changes. Thirdly it will be\neasier for folks to just make their own fork to do what they want.\n\nRight now it's hard to name 5 big open source, closed contribution projects by\nthe end of the year there will be 5 more that are recognizable.\n\nI think more open contribution will go the way of [[ whenwords ]], spec driven\ndevelopment. This is very high level. Very easy to understand a large portion\nof the codebase very quickly. Very easy for anyone to understand. While it's\nall written in plain English and not code it has a way of being deterministic,\nand does not skip on software engineering principles.\n\n## 2026 is not the year to build hardware\n\nThe time will come hardware will be cheap. I hold a lot of hope for this, but\n2026 is not that year. This really isn't my area of expertise what do I know\nother than I have gaming PCs, laptops steam decks, and servers in my house. I\npredict none of them get an upgrade with new parts this year, but there will be\na year in the future that upgrades are so cheap that it's hard to pass on.\nSites like serverpartdeals will be flooded with good drives from failed data\ncenter plans (so many in place right now not all of these companies will\nsurvive, not predicting any mass bubble pop here, that's above my pay grade).\nBut 2026 is not that year.\n\n## Agents will overwork us\n\nThere is going to be burnout this year, people are going to be running point on\n12 agents for most of their day and be plain ass burnt out by the end of the\nyear. This shit feels different and its hard to see right now. Most of us can\nfeel programming work, the stress it brings, the joy it brings. We have a\ndecent sense of being almost there, just 10 more minutes to wrap up. It's\ntaken us a long time to hone this craft. We don't have a sense for an agent\nalmost being there. The work we put into planning for agents feels different.\nIt doesn't _feel_ as hard, but it engages a higher level of thinking that\nallows us to see the forest for the trees. It can let us work on more things\nat the same time. I predict by the end of the year there will be podcast\nepisodes talking about burnout, and specifically feeling burnt out on planning\nfor agents work.\n\n## 2026 is to ai as 2012 was for js frameworks\n\nThis year we will see tooling and technique churn like crazy. I think there are\nalready some clear winners with copilot, cursor, claude code, and opencode. I\nthink these will remain in their respective camps as winners and do well. What\nI think is going to churn a lot is what we hook into them, whether its mcp,\nlsp, or clis.\n\nCurrently as I write this we have an issue managing context, getting the right\ncontext to the agents, managing bloat and token count. There's a lot of talk\nabout memory. I think the first half of the year we are going to see a lot of\ntools that hook into the agentic tools to give them more memory, the right\ncontext in the session.\n\nThere's also an issue around getting the agents to run longer. Right now we're\nseeing things like the Ralph loop where agents keep spinning on the same task.\nTools that help agents run longer without getting stuck will be hot.\n\nThe type of things that are going to have new things come out each week will be\ntools that...\n\n* Manage context\n* Get agents to run longer\n* Add skills\n* Hook in via CLI or mcp\n\nRight now I think we have some clear winners around the parent tools, but a\nlayer underneath is ready for a lot of churn. Buckle up.\n\n## Results\n\nI'm tracking \u003ca href=\"/2026-prediction-results/\" class=\"wikilink\" data-title=\"2026 Prediction Results\" data-description=\"I\u0026#39;m tracking results of 2026-predictions\" data-date=\"2026-12-31\"\u003e2026 Prediction Results\u003c/a\u003e\n",
      "summary": "I'm late on this one so I've seen everyone else's. I'll try my best to make some bold predictions I've not seen elsewhere",
      "date_published": "2026-01-16T08:16:24Z",
      "date_modified": "2026-01-16T08:16:24Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "predictions"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/hollow-knight-silksong/",
      "url": "https://go.waylonwalker.com/steam/hollow-knight-silksong/",
      "title": "Hollow Knight: Silksong",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/1030300/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/1030300/library_600x900.jpg\" alt=\"Hollow Knight: Silksong box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/1030300/header.jpg\u0026#39;\"/ data-glightbox=\"description: Hollow Knight: Silksong box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eHollow Knight: Silksong\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 34.62%\"\u003e\n        34.62%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e18/52 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e142.2h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2026-01-15\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (18)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/42d64a86bb4d50c2574612892ccdde465a020a54.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/42d64a86bb4d50c2574612892ccdde465a020a54.jpg\" alt=\"Equipped\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Equipped\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEquipped\u003c/strong\u003e\u003cbr/\u003e\n    Acquire your first Tool\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 05, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/a34b4da6c1652ec31603b82de0e983173917b2ad.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/a34b4da6c1652ec31603b82de0e983173917b2ad.jpg\" alt=\"Bound\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bound\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBound\u003c/strong\u003e\u003cbr/\u003e\n    Bind your first Silk Skill\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 05, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/78a69856138d377fe00fd3c988960f795391fb5c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/78a69856138d377fe00fd3c988960f795391fb5c.jpg\" alt=\"Claimed\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Claimed\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eClaimed\u003c/strong\u003e\u003cbr/\u003e\n    Claim your first Crest\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 23, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/25e4cf2ca80fc6fab8695433378aada8f4efbe03.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/25e4cf2ca80fc6fab8695433378aada8f4efbe03.jpg\" alt=\"Protected\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Protected\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eProtected\u003c/strong\u003e\u003cbr/\u003e\n    Acquire 4 Mask Shards\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 11, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/5c23c27ee2ca186fa35ac7e74fd027dd3507f834.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/5c23c27ee2ca186fa35ac7e74fd027dd3507f834.jpg\" alt=\"Restored\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Restored\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRestored\u003c/strong\u003e\u003cbr/\u003e\n    Acquire 2 Spool Fragments\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 13, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/22af3edce928bb5e213d5db3ef03e5a7bf6be9d5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/22af3edce928bb5e213d5db3ef03e5a7bf6be9d5.jpg\" alt=\"Connected\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Connected\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eConnected\u003c/strong\u003e\u003cbr/\u003e\n    Open all of Pharloom\u0026#39;s Bellways\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 09, 2026\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/797f04d75564c683ed7fa51ac6b66e922a2ad84f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/797f04d75564c683ed7fa51ac6b66e922a2ad84f.jpg\" alt=\"Transported\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Transported\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTransported\u003c/strong\u003e\u003cbr/\u003e\n    Open all of the Citadel\u0026#39;s Ventrica Stations\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 11, 2026\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/43386e420aedc8ed92ef286c4b7ccabc91b6a9f4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/43386e420aedc8ed92ef286c4b7ccabc91b6a9f4.jpg\" alt=\"Keen Hunter\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Keen Hunter\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKeen Hunter\u003c/strong\u003e\u003cbr/\u003e\n    Grant Nuu\u0026#39;s wish\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 13, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/981a17e1f83061b2dd64724b1b9bb6a3bb8de471.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/981a17e1f83061b2dd64724b1b9bb6a3bb8de471.jpg\" alt=\"Flea Finder\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Flea Finder\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFlea Finder\u003c/strong\u003e\u003cbr/\u003e\n    Rescue half of Pharloom\u0026#39;s lost fleas\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 01, 2026\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/a3806725642c2918243b8db87d3e99a49e1f16e4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/a3806725642c2918243b8db87d3e99a49e1f16e4.jpg\" alt=\"Liberated\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Liberated\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLiberated\u003c/strong\u003e\u003cbr/\u003e\n    Defeat the Bell Beast\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 05, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/3851723da35a65dae364366513aaa32297ccb537.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/3851723da35a65dae364366513aaa32297ccb537.jpg\" alt=\"Pharloom\u0026#39;s Welcome\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Pharloom\u0026#39;s Welcome\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePharloom\u0026#39;s Welcome\u003c/strong\u003e\u003cbr/\u003e\n    Defeat Lace in Deep Docks\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 14, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/62d9be89e0362b89d4e63632cb00c4584970c098.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/62d9be89e0362b89d4e63632cb00c4584970c098.jpg\" alt=\"Servant\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Servant\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eServant\u003c/strong\u003e\u003cbr/\u003e\n    Defeat Fourth Chorus\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 17, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/27d60711d57bc5e263ba787f731be7fc5d8b17c7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/27d60711d57bc5e263ba787f731be7fc5d8b17c7.jpg\" alt=\"Fanatic\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fanatic\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFanatic\u003c/strong\u003e\u003cbr/\u003e\n    Defeat Widow\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 15, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/c9adb431ea87c9912d58166bde7acbf9c52c8659.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/c9adb431ea87c9912d58166bde7acbf9c52c8659.jpg\" alt=\"Judge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Judge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJudge\u003c/strong\u003e\u003cbr/\u003e\n    Defeat the Last Judge\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 01, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/7f8569d8a92aa94317ca9500d3ce0956d1ab3fb5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/7f8569d8a92aa94317ca9500d3ce0956d1ab3fb5.jpg\" alt=\"Last Dance\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Last Dance\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLast Dance\u003c/strong\u003e\u003cbr/\u003e\n    Defeat the Cogwork Dancers\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 09, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/1b40a2e64093d4fa38218d61e0980970ac143b80.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/1b40a2e64093d4fa38218d61e0980970ac143b80.jpg\" alt=\"Tragedian\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tragedian\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTragedian\u003c/strong\u003e\u003cbr/\u003e\n    Defeat Trobbio\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 15, 2026\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/1437a98c738c7abc16366a81505b61b50605a931.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/1437a98c738c7abc16366a81505b61b50605a931.jpg\" alt=\"Grey Ghost\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Grey Ghost\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGrey Ghost\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 20, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/4cae086731038d810d9df5af8977a24b4dc87a44.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/4cae086731038d810d9df5af8977a24b4dc87a44.jpg\" alt=\"Granted\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Granted\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGranted\u003c/strong\u003e\u003cbr/\u003e\n    Grant your first wish\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 05, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (34)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/690e5d5768fad49f0f6f5dbc0ea803429030173f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/690e5d5768fad49f0f6f5dbc0ea803429030173f.jpg\" alt=\"Arsenal\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Arsenal\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArsenal\u003c/strong\u003e\u003cbr/\u003e\n    Acquire all Tools\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/03eb64bd3d7a4dba836eaad300c33329a50984a8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/03eb64bd3d7a4dba836eaad300c33329a50984a8.jpg\" alt=\"Woven\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Woven\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWoven\u003c/strong\u003e\u003cbr/\u003e\n    Bind all Silk Skills\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/6ad79e03be197569b31b52f3cc8833922ef810d1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/6ad79e03be197569b31b52f3cc8833922ef810d1.jpg\" alt=\"Consumed\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Consumed\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eConsumed\u003c/strong\u003e\u003cbr/\u003e\n    Claim all Crests\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/5c44fea9f704cb1f5b1ed81eb2994f531c0bccc5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/5c44fea9f704cb1f5b1ed81eb2994f531c0bccc5.jpg\" alt=\"Masked\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Masked\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMasked\u003c/strong\u003e\u003cbr/\u003e\n    Acquire all Mask Shards\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/4184fc8dc89d930ce040c4484745f156f9bbc108.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/4184fc8dc89d930ce040c4484745f156f9bbc108.jpg\" alt=\"Extended\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Extended\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExtended\u003c/strong\u003e\u003cbr/\u003e\n    Acquire all Spool Fragments\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/a7f80ffaa953a78e190652ec11e77c8b07ca0d38.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/a7f80ffaa953a78e190652ec11e77c8b07ca0d38.jpg\" alt=\"Regenerated\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Regenerated\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRegenerated\u003c/strong\u003e\u003cbr/\u003e\n    Acquire all Silk Hearts\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/eba7fea6222d407924726fb352b2231a751f4e31.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/eba7fea6222d407924726fb352b2231a751f4e31.jpg\" alt=\"Cartographer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cartographer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCartographer\u003c/strong\u003e\u003cbr/\u003e\n    Acquire a map of each area\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/c7806926be11963fcb654180432414667f55cb04.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/c7806926be11963fcb654180432414667f55cb04.jpg\" alt=\"Bonded\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bonded\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBonded\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/1122afd1b4baa0facaa5032a98deb78f86a88135.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/1122afd1b4baa0facaa5032a98deb78f86a88135.jpg\" alt=\"True Hunter\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: True Hunter\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTrue Hunter\u003c/strong\u003e\u003cbr/\u003e\n    Receive the Hunter\u0026#39;s Memento\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/08c4a92aaf8c45077859f3681a7a0952ef81c4cf.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/08c4a92aaf8c45077859f3681a7a0952ef81c4cf.jpg\" alt=\"Fleafriend\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fleafriend\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFleafriend\u003c/strong\u003e\u003cbr/\u003e\n    Rescue all of Pharloom\u0026#39;s lost fleas and receive their final gift\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/ca601e6500237f90c0ff42745226de063a7d0022.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/ca601e6500237f90c0ff42745226de063a7d0022.jpg\" alt=\"White Knight\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: White Knight\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhite Knight\u003c/strong\u003e\u003cbr/\u003e\n    Defeat Lace in the Cradle\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/03e3ee55fd85d65ce25e4d66b3645e5c99f0b3fe.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/03e3ee55fd85d65ce25e4d66b3645e5c99f0b3fe.jpg\" alt=\"Heretic\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Heretic\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHeretic\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/73deb9d9ad036db9184825a6b9df2c997c4c5e14.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/73deb9d9ad036db9184825a6b9df2c997c4c5e14.jpg\" alt=\"Tyrant\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tyrant\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTyrant\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/62d74a694a4c5c6311b5885a2fd7196cc4ad443a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/62d74a694a4c5c6311b5885a2fd7196cc4ad443a.jpg\" alt=\"Seed\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Seed\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSeed\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/dbe966ba335f327d3432eef742087820102f583d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/dbe966ba335f327d3432eef742087820102f583d.jpg\" alt=\"Diva\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Diva\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDiva\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/ecc1a8650879d0ecf76cbf7dcfe2faf1c755568b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/ecc1a8650879d0ecf76cbf7dcfe2faf1c755568b.jpg\" alt=\"Lamenter\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Lamenter\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLamenter\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/00c63e08deb453ec284b83b2222e035cab9e2211.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/00c63e08deb453ec284b83b2222e035cab9e2211.jpg\" alt=\"Glutton\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Glutton\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGlutton\u003c/strong\u003e\u003cbr/\u003e\n    Satiate the Grand Gourmand\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/e4dc9f83fb40fd98d0668fdb5d79b23e23595e97.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/e4dc9f83fb40fd98d0668fdb5d79b23e23595e97.jpg\" alt=\"Trail\u0026#39;s End\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Trail\u0026#39;s End\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTrail\u0026#39;s End\u003c/strong\u003e\u003cbr/\u003e\n    Grant Shakra\u0026#39;s wish\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/4ea47ea4cfee98d988b6a93170bd42fc4515f803.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/4ea47ea4cfee98d988b6a93170bd42fc4515f803.jpg\" alt=\"Hero\u0026#39;s Call\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hero\u0026#39;s Call\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHero\u0026#39;s Call\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/739f88cab592b9cb2da086d2999adf5b13fab993.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/739f88cab592b9cb2da086d2999adf5b13fab993.jpg\" alt=\"Fatal Resolve\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fatal Resolve\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFatal Resolve\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/967684f3b8934182f2c8bbefe53719b0f98cb898.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/967684f3b8934182f2c8bbefe53719b0f98cb898.jpg\" alt=\"Entwined\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Entwined\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEntwined\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/589423606af7680b4cc5af5be195b526eaf38545.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/589423606af7680b4cc5af5be195b526eaf38545.jpg\" alt=\"Resident\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Resident\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eResident\u003c/strong\u003e\u003cbr/\u003e\n    Acquire your own Bellhome\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/d4906884adf278b18b730b6adab7888a6170b5d6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/d4906884adf278b18b730b6adab7888a6170b5d6.jpg\" alt=\"Harmonious\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Harmonious\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHarmonious\u003c/strong\u003e\u003cbr/\u003e\n    Learn the Citadel\u0026#39;s Threefold song\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/31e452290e64b08990c4531f17612c2ea6d22463.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/31e452290e64b08990c4531f17612c2ea6d22463.jpg\" alt=\"Remembrance\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Remembrance\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRemembrance\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/38c54c2ec54ae7fbd56b6e0eafadca194c6e307e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/38c54c2ec54ae7fbd56b6e0eafadca194c6e307e.jpg\" alt=\"Weaver Queen\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Weaver Queen\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWeaver Queen\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/ce0df795d793b5a05d31f1ba28f38cc4193444dd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/ce0df795d793b5a05d31f1ba28f38cc4193444dd.jpg\" alt=\"Snared Silk\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Snared Silk\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSnared Silk\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/91181ffaae2a7cbb3cc406d2904d28629bf2d8a3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/91181ffaae2a7cbb3cc406d2904d28629bf2d8a3.jpg\" alt=\"Twisted Child\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Twisted Child\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTwisted Child\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/9faf2f77a4047215c7da6822d8b80e7971210944.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/9faf2f77a4047215c7da6822d8b80e7971210944.jpg\" alt=\"Sister of the Void\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sister of the Void\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSister of the Void\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/42f86f65efcada2816cf88389450657b83f03121.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/42f86f65efcada2816cf88389450657b83f03121.jpg\" alt=\"Passing of the Age\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Passing of the Age\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePassing of the Age\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/f851c8d42eac15ec3765b5f0eb64fbd51f9f47cd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/f851c8d42eac15ec3765b5f0eb64fbd51f9f47cd.jpg\" alt=\"Completion\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Completion\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompletion\u003c/strong\u003e\u003cbr/\u003e\n    Achieve 100% game completion and finish the game\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/42953816aed39636c301cea00b01ced66eb43144.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/42953816aed39636c301cea00b01ced66eb43144.jpg\" alt=\"Speedrunner\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Speedrunner\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpeedrunner\u003c/strong\u003e\u003cbr/\u003e\n    Complete the game in under 5 hours\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/7cc0488ebd2e0e7a03a03752ab82c196d60899d8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/7cc0488ebd2e0e7a03a03752ab82c196d60899d8.jpg\" alt=\"Speed Completion\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Speed Completion\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpeed Completion\u003c/strong\u003e\u003cbr/\u003e\n    Achieve 100% game completion and finish the game in under 30 hours\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/2aacd283950cff267f32ebb7eaf82f4f5e6355f1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/2aacd283950cff267f32ebb7eaf82f4f5e6355f1.jpg\" alt=\"Steel Soul\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Steel Soul\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSteel Soul\u003c/strong\u003e\u003cbr/\u003e\n    Finish the game in Steel Soul mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/65c7108093f2efc39d5fc3eaddecc35675b8dfb1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/65c7108093f2efc39d5fc3eaddecc35675b8dfb1.jpg\" alt=\"Steel Heart\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Steel Heart\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSteel Heart\u003c/strong\u003e\u003cbr/\u003e\n    Achieve 100% game completion and finish the game in Steel Soul mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/1030300/library_600x900.jpg\" alt=\"Hollow Knight: Silksong box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/1030300/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eHollow Knight: Silksong\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 34.62%\"\u003e\n        34.62%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e18/52 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e142.2h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2026-01-15\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (18)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/42d64a86bb4d50c2574612892ccdde465a020a54.jpg\" alt=\"Equipped\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEquipped\u003c/strong\u003e\u003cbr\u003e\n    Acquire your first Tool\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 05, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/a34b4da6c1652ec31603b82de0e983173917b2ad.jpg\" alt=\"Bound\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBound\u003c/strong\u003e\u003cbr\u003e\n    Bind your first Silk Skill\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 05, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/78a69856138d377fe00fd3c988960f795391fb5c.jpg\" alt=\"Claimed\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eClaimed\u003c/strong\u003e\u003cbr\u003e\n    Claim your first Crest\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 23, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/25e4cf2ca80fc6fab8695433378aada8f4efbe03.jpg\" alt=\"Protected\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eProtected\u003c/strong\u003e\u003cbr\u003e\n    Acquire 4 Mask Shards\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 11, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/5c23c27ee2ca186fa35ac7e74fd027dd3507f834.jpg\" alt=\"Restored\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRestored\u003c/strong\u003e\u003cbr\u003e\n    Acquire 2 Spool Fragments\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 13, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/22af3edce928bb5e213d5db3ef03e5a7bf6be9d5.jpg\" alt=\"Connected\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eConnected\u003c/strong\u003e\u003cbr\u003e\n    Open all of Pharloom's Bellways\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 09, 2026\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/797f04d75564c683ed7fa51ac6b66e922a2ad84f.jpg\" alt=\"Transported\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTransported\u003c/strong\u003e\u003cbr\u003e\n    Open all of the Citadel's Ventrica Stations\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 11, 2026\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/43386e420aedc8ed92ef286c4b7ccabc91b6a9f4.jpg\" alt=\"Keen Hunter\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKeen Hunter\u003c/strong\u003e\u003cbr\u003e\n    Grant Nuu's wish\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 13, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/981a17e1f83061b2dd64724b1b9bb6a3bb8de471.jpg\" alt=\"Flea Finder\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFlea Finder\u003c/strong\u003e\u003cbr\u003e\n    Rescue half of Pharloom's lost fleas\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 01, 2026\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/a3806725642c2918243b8db87d3e99a49e1f16e4.jpg\" alt=\"Liberated\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLiberated\u003c/strong\u003e\u003cbr\u003e\n    Defeat the Bell Beast\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 05, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/3851723da35a65dae364366513aaa32297ccb537.jpg\" alt=\"Pharloom's Welcome\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePharloom's Welcome\u003c/strong\u003e\u003cbr\u003e\n    Defeat Lace in Deep Docks\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 14, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/62d9be89e0362b89d4e63632cb00c4584970c098.jpg\" alt=\"Servant\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eServant\u003c/strong\u003e\u003cbr\u003e\n    Defeat Fourth Chorus\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 17, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/27d60711d57bc5e263ba787f731be7fc5d8b17c7.jpg\" alt=\"Fanatic\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFanatic\u003c/strong\u003e\u003cbr\u003e\n    Defeat Widow\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 15, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/c9adb431ea87c9912d58166bde7acbf9c52c8659.jpg\" alt=\"Judge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJudge\u003c/strong\u003e\u003cbr\u003e\n    Defeat the Last Judge\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 01, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/7f8569d8a92aa94317ca9500d3ce0956d1ab3fb5.jpg\" alt=\"Last Dance\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLast Dance\u003c/strong\u003e\u003cbr\u003e\n    Defeat the Cogwork Dancers\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 09, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/1b40a2e64093d4fa38218d61e0980970ac143b80.jpg\" alt=\"Tragedian\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTragedian\u003c/strong\u003e\u003cbr\u003e\n    Defeat Trobbio\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 15, 2026\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/1437a98c738c7abc16366a81505b61b50605a931.jpg\" alt=\"Grey Ghost\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGrey Ghost\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 20, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/4cae086731038d810d9df5af8977a24b4dc87a44.jpg\" alt=\"Granted\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGranted\u003c/strong\u003e\u003cbr\u003e\n    Grant your first wish\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 05, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (34)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/690e5d5768fad49f0f6f5dbc0ea803429030173f.jpg\" alt=\"Arsenal\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArsenal\u003c/strong\u003e\u003cbr\u003e\n    Acquire all Tools\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/03eb64bd3d7a4dba836eaad300c33329a50984a8.jpg\" alt=\"Woven\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWoven\u003c/strong\u003e\u003cbr\u003e\n    Bind all Silk Skills\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/6ad79e03be197569b31b52f3cc8833922ef810d1.jpg\" alt=\"Consumed\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eConsumed\u003c/strong\u003e\u003cbr\u003e\n    Claim all Crests\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/5c44fea9f704cb1f5b1ed81eb2994f531c0bccc5.jpg\" alt=\"Masked\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMasked\u003c/strong\u003e\u003cbr\u003e\n    Acquire all Mask Shards\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/4184fc8dc89d930ce040c4484745f156f9bbc108.jpg\" alt=\"Extended\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExtended\u003c/strong\u003e\u003cbr\u003e\n    Acquire all Spool Fragments\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/a7f80ffaa953a78e190652ec11e77c8b07ca0d38.jpg\" alt=\"Regenerated\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRegenerated\u003c/strong\u003e\u003cbr\u003e\n    Acquire all Silk Hearts\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/eba7fea6222d407924726fb352b2231a751f4e31.jpg\" alt=\"Cartographer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCartographer\u003c/strong\u003e\u003cbr\u003e\n    Acquire a map of each area\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/c7806926be11963fcb654180432414667f55cb04.jpg\" alt=\"Bonded\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBonded\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/1122afd1b4baa0facaa5032a98deb78f86a88135.jpg\" alt=\"True Hunter\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTrue Hunter\u003c/strong\u003e\u003cbr\u003e\n    Receive the Hunter's Memento\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/08c4a92aaf8c45077859f3681a7a0952ef81c4cf.jpg\" alt=\"Fleafriend\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFleafriend\u003c/strong\u003e\u003cbr\u003e\n    Rescue all of Pharloom's lost fleas and receive their final gift\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/ca601e6500237f90c0ff42745226de063a7d0022.jpg\" alt=\"White Knight\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhite Knight\u003c/strong\u003e\u003cbr\u003e\n    Defeat Lace in the Cradle\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/03e3ee55fd85d65ce25e4d66b3645e5c99f0b3fe.jpg\" alt=\"Heretic\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHeretic\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/73deb9d9ad036db9184825a6b9df2c997c4c5e14.jpg\" alt=\"Tyrant\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTyrant\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/62d74a694a4c5c6311b5885a2fd7196cc4ad443a.jpg\" alt=\"Seed\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSeed\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/dbe966ba335f327d3432eef742087820102f583d.jpg\" alt=\"Diva\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDiva\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/ecc1a8650879d0ecf76cbf7dcfe2faf1c755568b.jpg\" alt=\"Lamenter\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLamenter\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/00c63e08deb453ec284b83b2222e035cab9e2211.jpg\" alt=\"Glutton\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGlutton\u003c/strong\u003e\u003cbr\u003e\n    Satiate the Grand Gourmand\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/e4dc9f83fb40fd98d0668fdb5d79b23e23595e97.jpg\" alt=\"Trail's End\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTrail's End\u003c/strong\u003e\u003cbr\u003e\n    Grant Shakra's wish\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/4ea47ea4cfee98d988b6a93170bd42fc4515f803.jpg\" alt=\"Hero's Call\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHero's Call\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/739f88cab592b9cb2da086d2999adf5b13fab993.jpg\" alt=\"Fatal Resolve\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFatal Resolve\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/967684f3b8934182f2c8bbefe53719b0f98cb898.jpg\" alt=\"Entwined\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEntwined\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/589423606af7680b4cc5af5be195b526eaf38545.jpg\" alt=\"Resident\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eResident\u003c/strong\u003e\u003cbr\u003e\n    Acquire your own Bellhome\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/d4906884adf278b18b730b6adab7888a6170b5d6.jpg\" alt=\"Harmonious\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHarmonious\u003c/strong\u003e\u003cbr\u003e\n    Learn the Citadel's Threefold song\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/31e452290e64b08990c4531f17612c2ea6d22463.jpg\" alt=\"Remembrance\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRemembrance\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/38c54c2ec54ae7fbd56b6e0eafadca194c6e307e.jpg\" alt=\"Weaver Queen\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWeaver Queen\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/ce0df795d793b5a05d31f1ba28f38cc4193444dd.jpg\" alt=\"Snared Silk\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSnared Silk\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/91181ffaae2a7cbb3cc406d2904d28629bf2d8a3.jpg\" alt=\"Twisted Child\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTwisted Child\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/9faf2f77a4047215c7da6822d8b80e7971210944.jpg\" alt=\"Sister of the Void\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSister of the Void\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/42f86f65efcada2816cf88389450657b83f03121.jpg\" alt=\"Passing of the Age\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePassing of the Age\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/f851c8d42eac15ec3765b5f0eb64fbd51f9f47cd.jpg\" alt=\"Completion\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompletion\u003c/strong\u003e\u003cbr\u003e\n    Achieve 100% game completion and finish the game\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/42953816aed39636c301cea00b01ced66eb43144.jpg\" alt=\"Speedrunner\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpeedrunner\u003c/strong\u003e\u003cbr\u003e\n    Complete the game in under 5 hours\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/7cc0488ebd2e0e7a03a03752ab82c196d60899d8.jpg\" alt=\"Speed Completion\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpeed Completion\u003c/strong\u003e\u003cbr\u003e\n    Achieve 100% game completion and finish the game in under 30 hours\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/2aacd283950cff267f32ebb7eaf82f4f5e6355f1.jpg\" alt=\"Steel Soul\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSteel Soul\u003c/strong\u003e\u003cbr\u003e\n    Finish the game in Steel Soul mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1030300/65c7108093f2efc39d5fc3eaddecc35675b8dfb1.jpg\" alt=\"Steel Heart\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSteel Heart\u003c/strong\u003e\u003cbr\u003e\n    Achieve 100% game completion and finish the game in Steel Soul mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Hollow Knight: Silksong - 34.62% complete with 18/52 achievements unlocked.",
      "date_published": "2026-01-15T00:00:00Z",
      "date_modified": "2026-01-15T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "hollow-knight-silksong"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/context-is-king/",
      "url": "https://go.waylonwalker.com/context-is-king/",
      "title": "Context Is King",
      "content_html": "\u003cp\u003eA new approach to agentic workflows.\u003c/p\u003e\n\u003cp\u003eThis is probably news to no one else, I’m sure I’m behind on this one.  You\ncan’t one sentence prompt and expect to get what you want.\u003c/p\u003e\n\u003ch2 id=\"agentsmd\"\u003eAgents.md \u003ca href=\"#agentsmd\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"writing-complete-prompts\"\u003eWriting Complete Prompts \u003ca href=\"#writing-complete-prompts\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n",
      "content_text": "\nA new approach to agentic workflows.\n\nThis is probably news to no one else, I'm sure I'm behind on this one.  You\ncan't one sentence prompt and expect to get what you want.\n\n## Agents.md\n\n## Writing Complete Prompts\n",
      "summary": "A new approach to agentic workflows.",
      "date_published": "2026-01-13T08:28:23Z",
      "date_modified": "2026-01-13T08:28:23Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "agents"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/im-in-on-agents/",
      "url": "https://go.waylonwalker.com/im-in-on-agents/",
      "title": "I'm In On Agents",
      "content_html": "\u003cp\u003eIt’s the start of 2026 and agents are getting a lot better than they were.  I’m\nusing opencode at home, free mode with Zen and big pickle.  At work I have\naccess to a wider variety of models including what seems to be the gold\nstandard 3 from anthropic opus, sonnet, haiku.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eI’ve sat on this post for over a month, refactored it a few times, things\nfeel like they are moving so fast that its hard to keep my feelings\nstraight.\u003c/p\u003e\n\u003c/div\u003e\n\u003ch2 id=\"things-are-changing\"\u003eThings are changing \u003ca href=\"#things-are-changing\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAround Aug 2025 I wrote \u003ca href=\"/im-out-on-agents/\" class=\"wikilink\" data-title=\"I\u0026#39;m Out On Agents\" data-description=\"Its the year 2025 and we are only a few years into having 6 months to live before ai takes our jobs, and the big push right now is agents, managing agents. I...\" data-date=\"2025-08-27\" data-preview=\"Its the year 2025 and we are only a few years into having 6 months to live before ai takes our jobs, and the big push right now is agents, managing agents. I...\"\u003eI\u0026#39;m Out On Agents\u003c/a\u003e.  I saw others in the space having\nsuch great success I gave it a solid shot, but found it to egregious edit more\nthan I asked, make massive unneeded changes, and make more small bugs hidden in\nthe details than was worth it.\u003c/p\u003e\n\u003cp\u003eThis was just after the tipping point where not just hype bros were making the\nswitch, but people I work with, people I trust and have made really good\nSoftware in their career.  People like the creator of Flask Armin Ronacher.\nPeople who are really good at writing code and do not need it to do the work\nwere finding themselves more efficient working with agents than making edits\nby hand.\u003c/p\u003e\n\u003ch2 id=\"planning\"\u003ePlanning \u003ca href=\"#planning\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eCurrently as I see it there is no free lunch.  Software engineering is still\nvery much needed, but the work is switching.  The models have been good for\nawhile, they don’t seem like they are getting leaps better with each release\nlike they were for so long, no matter how much t3.gg hypes up the new models.\nThe tools feel like what is really making the difference right now.  The\nability to take short human prompts figure out what context is needed, getting\nthat context, and keeping it in the context window is getting better and better\nmaking agents useful for more things.\u003c/p\u003e\n\u003cp\u003eThese improvements in tooling is making our job look different.  Knowing syntax\nand how to write clean efficient DRY code is less and less of the job every\nday.  Learning how to create detailed plans with the help of agents, editing\nthem, knowing when they are good enough that you can be confident in an agents\nability to execute on them.  Knowing how to balance the context is becoming the\njob.  Moving forward its likely that models can handle more context and this\nwill look different, and change, but planning and context management is a key\npart of the job moving forward.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eContext is king, good plans are paramount, syntax barely matter.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"issues\"\u003eIssues \u003ca href=\"#issues\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n",
      "content_text": "\nIt's the start of 2026 and agents are getting a lot better than they were.  I'm\nusing opencode at home, free mode with Zen and big pickle.  At work I have\naccess to a wider variety of models including what seems to be the gold\nstandard 3 from anthropic opus, sonnet, haiku.\n\n!!! Note\n\n    I've sat on this post for over a month, refactored it a few times, things\n    feel like they are moving so fast that its hard to keep my feelings\n    straight.\n\n## Things are changing\n\nAround Aug 2025 I wrote \u003ca href=\"/im-out-on-agents/\" class=\"wikilink\" data-title=\"I\u0026#39;m Out On Agents\" data-description=\"Its the year 2025 and we are only a few years into having 6 months to live before ai takes our jobs, and the big push right now is agents, managing agents. I...\" data-date=\"2025-08-27\"\u003eI\u0026#39;m Out On Agents\u003c/a\u003e.  I saw others in the space having\nsuch great success I gave it a solid shot, but found it to egregious edit more\nthan I asked, make massive unneeded changes, and make more small bugs hidden in\nthe details than was worth it.  \n\nThis was just after the tipping point where not just hype bros were making the\nswitch, but people I work with, people I trust and have made really good\nSoftware in their career.  People like the creator of Flask Armin Ronacher.\nPeople who are really good at writing code and do not need it to do the work\nwere finding themselves more efficient working with agents than making edits\nby hand.\n\n## Planning\n\nCurrently as I see it there is no free lunch.  Software engineering is still\nvery much needed, but the work is switching.  The models have been good for\nawhile, they don't seem like they are getting leaps better with each release\nlike they were for so long, no matter how much t3.gg hypes up the new models.\nThe tools feel like what is really making the difference right now.  The\nability to take short human prompts figure out what context is needed, getting\nthat context, and keeping it in the context window is getting better and better\nmaking agents useful for more things.\n\nThese improvements in tooling is making our job look different.  Knowing syntax\nand how to write clean efficient DRY code is less and less of the job every\nday.  Learning how to create detailed plans with the help of agents, editing\nthem, knowing when they are good enough that you can be confident in an agents\nability to execute on them.  Knowing how to balance the context is becoming the\njob.  Moving forward its likely that models can handle more context and this\nwill look different, and change, but planning and context management is a key\npart of the job moving forward.\n\n\u003e Context is king, good plans are paramount, syntax barely matter.\n\n## Issues\n\n",
      "summary": "It's the start of 2026 and agents are getting a lot better than they were. I'm using opencode at home, free mode with Zen and big pickle. At work I have...",
      "date_published": "2026-01-11T12:02:15Z",
      "date_modified": "2026-01-11T12:02:15Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "agentic",
        "agents"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/characters/",
      "url": "https://go.waylonwalker.com/characters/",
      "title": "Characters",
      "content_html": "\u003ch2 id=\"old-man-hardware\"\u003eOld Man Hardware \u003ca href=\"#old-man-hardware\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eCharacter Profile\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eName\u003c/em\u003e: Graybeard McGee\u003cbr/\u003e\n\u003cem\u003eAge\u003c/em\u003e: 64 years old\u003cbr/\u003e\n\u003cem\u003eRole\u003c/em\u003e: Senior Systems Architect (counting down to retirement)\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBackground\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eGraybeard’s been coding since before most developers were born—starting with assembly on PDP-11 systems in the late 1970s. He still has his original DEC VT100 terminal in the garage and actually uses it occasionally. His collection of vintage computing gear would make a museum curator jealous.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTech Stack\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eLoves\u003c/strong\u003e: C, Assembly, FORTRAN, Perl (the “real” scripting language)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHardware\u003c/strong\u003e: Sun SPARCstations, DEC VAX, vintage IBM mainframes\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEditor\u003c/strong\u003e: Vi (not Vim—“Vim’s for kids who need training wheels”)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eVersion Control\u003c/strong\u003e: CVS ( reluctantly moved to \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003eGit\u003c/a\u003e, complains about it daily)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003ePersonality\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eGrumpy but surprisingly helpful when you prove you’re not “another JavaScript framework cowboy”\u003c/li\u003e\n\u003cli\u003eBelieves “if it was good enough in 1985, it’s good enough now”\u003c/li\u003e\n\u003cli\u003eHis office smells like old electronics and coffee\u003c/li\u003e\n\u003cli\u003eHas strong opinions about whitespace and indentation\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eNotable Quotes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e“AI? That’s just fancy pattern matching. Call me when it can debug a memory leak in C.”\u003c/li\u003e\n\u003cli\u003e“You kids and your ‘cloud’… back in my day we called it ‘someone else’s computer’ and we didn’t trust it either.”\u003c/li\u003e\n\u003cli\u003e“No, I won’t help you with your React app. But if you’ve got a segfault, I’m your guy.”\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eCurrent Project\u003c/strong\u003e\nMaintaining a 30-year-old C codebase that runs the company’s core system. Everyone’s afraid to touch it except him. He’s training exactly one junior developer to take over—mostly by complaining about how “kids these days can’t even read a man page.”\u003c/p\u003e\n\u003ch2 id=\"image-prompts-for-graybeard-mcgee\"\u003eImage Prompts for Graybeard McGee \u003ca href=\"#image-prompts-for-graybeard-mcgee\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eGrumpy/Annoyed\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eTransform into GTA V promotional artwork, old bearded man with angry scowl and furrowed brow wearing classic computer geek glasses. Character art style with cinematic composition, game poster quality. He\u0026#39;s gesturing frustratedly at a modern laptop, vintage calculator watch visible. No background, no text.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eNostalgic/Happy\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eTransform into GTA V promotional artwork, old bearded man with warm nostalgic smile gazing at vintage DEC VT100 terminal. Character art style with cinematic composition, game poster quality. Right hand gently touching retro keyboard, surrounded by classic computing gear. No background, no text.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eFrustrated with AI\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eTransform into GTA V promotional artwork, old bearded man with disgusted expression and eyes rolled back. Character art style with cinematic composition, game poster quality. One hand rubbing temples, laptop showing ChatGPT interface, coffee mug with anti-AI slogan. No background, no text.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003ePatient/Mentoring\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eTransform into GTA V promotional artwork, old bearded man with patient knowing expression pointing at code. Character art style with cinematic composition, game poster quality. Vi editor with C code visible, teaching gesture toward junior developer. No background, no text.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eRetirement Dreaming\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eTransform into GTA V promotional artwork, old bearded man with peaceful content expression leaning back in chair. Character art style with cinematic composition, game poster quality. Feet up on desk, calendar counting down days, relaxed accomplished pose. No background, no text.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eHacker Mode\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eTransform into GTA V promotional artwork, old bearded man with intense focused expression at terminal. Character art style with cinematic composition, game poster quality. Multiple monitors showing green code, vintage keyboard, cyberpunk glow on glasses. No background, no text.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eCoffee Break\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eTransform into GTA V promotional artwork, old bearded man holding coffee mug that says \u0026#39;I turn coffee into code\u0026#39;. Character art style with cinematic composition, game poster quality. Leaning casually against server racks, steam rising from mug. No background, no text.\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003ch2 id=\"devops-dad\"\u003eDevOps Dad \u003ca href=\"#devops-dad\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eCharacter Profile\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eName\u003c/em\u003e: Alex “Container Dad” Rodriguez\u003cbr/\u003e\n\u003cem\u003eAge\u003c/em\u003e: 38 years old\u003cbr/\u003e\n\u003cem\u003eRole\u003c/em\u003e: Senior Infrastructure Engineer\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBackground\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eAlex lives and breathes infrastructure but has somehow managed to balance being a senior Kubernetes expert with being an actual dad. His home lab makes most corporate data centers look like Raspberry Pi projects. He’s got more services \u003ca href=\"/self-host/\" class=\"glossary-term\" title=\"Self hosting is the act of hosting your own applications and services without using a SAS provider. This is typically done with your own hardware, but there...\"\u003eself-hosted\u003c/a\u003e than most startups have employees, and he treats his Kubernetes clusters like his children—except his actual children get more attention sometimes.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTech Stack\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eLoves\u003c/strong\u003e: Kubernetes, Python, \u003ca href=\"/fastapi/\" class=\"glossary-term\" title=\"FastAPI is a modern and efficient web framework for Python, built on top of the Starlette web framework, and pydantic for data validation and serialization.\"\u003eFastAPI\u003c/a\u003e, Docker, Terraform, Ansible\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eInfrastructure\u003c/strong\u003e: Proxmox, TrueNAS, WireGuard, Nginx\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDevTools\u003c/strong\u003e: Neovim, GitLab CI/CD, Prometheus/Grafana\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBlog\u003c/strong\u003e: Hugo with custom CI/CD pipeline\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eGaming\u003c/strong\u003e: Steam Deck, Nintendo Switch, retro emulation\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003ePersonality\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCalm under pressure (dealing with production outages and toddler tantrums)\u003c/li\u003e\n\u003cli\u003eOptimizes everything—including his kids’ bedtime routines\u003c/li\u003e\n\u003cli\u003eBelieves “if you can’t containerize it, you shouldn’t be running it”\u003c/li\u003e\n\u003cli\u003eTurns every family problem into a DevOps metaphor\u003c/li\u003e\n\u003cli\u003eHis wife thinks “kubectl apply” is his love language\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eNotable Quotes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e“Parenting is just managing dependencies with more unpredictable APIs.”\u003c/li\u003e\n\u003cli\u003e“No, I can’t fix your WiFi. Yes, I can rebuild the entire network from scratch with Terraform.”\u003c/li\u003e\n\u003cli\u003e“The kids are fine, they just need a quick restart and maybe a configuration reload.”\u003c/li\u003e\n\u003cli\u003e“I don’t have a gaming addiction, I’m just stress-testing my home network infrastructure.”\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eCurrent Setup\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eHome lab: 3-node Proxmox cluster with 128GB RAM total\u003c/li\u003e\n\u003cli\u003eSelf-hosted: Nextcloud, Jellyfin, Home Assistant, GitLab, MinIO\u003c/li\u003e\n\u003cli\u003eBlog: Kubernetes-deployed Hugo site with automated CI/CD\u003c/li\u003e\n\u003cli\u003eGaming: Custom-built Steam server streaming to multiple devices\u003c/li\u003e\n\u003cli\u003eKids’ devices: All managed through his custom Ansible playbooks\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDaily Routine\u003c/strong\u003e\n6:00 AM: Check cluster health and monitoring alerts\u003cbr/\u003e\n6:30 AM: Deploy latest blog changes via GitLab CI\u003cbr/\u003e\n7:00 AM: Make coffee while updating Terraform state\u003cbr/\u003e\n8:00 AM: Get kids ready (manually, no automation yet)\u003cbr/\u003e\n9:00 AM: Work - managing massive Kubernetes clusters\u003cbr/\u003e\n6:00 PM: Family time (and maybe a quick gaming session)\u003cbr/\u003e\n9:00 PM: Kids bedtime, then home lab maintenance\u003cbr/\u003e\n11:00 PM: Game time or blog development\u003c/p\u003e\n\u003ch2 id=\"image-prompts-for-devops-dad\"\u003eImage Prompts for DevOps Dad \u003ca href=\"#image-prompts-for-devops-dad\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eMulti-tasking Mode\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eTransform into GTA V promotional artwork, energetic dad in his 30s wearing wireless earbuds and hoodie. Character art style with cinematic composition, game poster quality. Balancing laptop showing Kubernetes dashboard while holding skateboard, coffee mug nearby. No background, no text.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eInfrastructure Focus\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eTransform into GTA V promotional artwork, focused infrastructure engineer in late 30s with concentrated expression. Character art style with cinematic composition, game poster quality. Multiple monitors showing GitLab CI/CD pipelines, terminal windows with kubectl commands. No background, no text.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eSkateboard Commute\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eTransform into GTA V promotional artwork, cool dad in 30s riding skateboard with backpack. Character art style with cinematic composition, game poster quality. Laptop visible in backpack, wearing tech company hoodie, confident smile. No background, no text.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eGaming Session\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eTransform into GTA V promotional artwork, intense gamer in his 30s wearing headset. Character art style with cinematic composition, game poster quality. Steam Deck in hand, dual monitors setup, energized expression. No background, no text.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eBlog Deployment\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eTransform into GTA V promotional artwork, tech blogger in his 30s at standing desk. Character art style with cinematic composition, game poster quality. Hugo site preview on monitor, terminal showing git commands, satisfied expression. No background, no text.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eKids + Tech\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eTransform into GTA V promotional artwork, patient dad showing tablet to young child. Character art style with cinematic composition, game poster quality. Teaching kid about technology, warm encouraging expression, casual weekend attire. No background, no text.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003cstrong\u003eHome Lab Pride\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eTransform into GTA V promotional artwork, proud infrastructure engineer standing by server rack. Character art style with cinematic composition, game poster quality. Gesturing toward home lab equipment, confident pose, tools in belt. No background, no text.\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eMore characters coming soon…\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n## Old Man Hardware\n\n**Character Profile**\n\n*Name*: Graybeard McGee  \n*Age*: 64 years old  \n*Role*: Senior Systems Architect (counting down to retirement)\n\n**Background**\n\nGraybeard's been coding since before most developers were born—starting with assembly on PDP-11 systems in the late 1970s. He still has his original DEC VT100 terminal in the garage and actually uses it occasionally. His collection of vintage computing gear would make a museum curator jealous.\n\n**Tech Stack**\n- **Loves**: C, Assembly, FORTRAN, Perl (the \"real\" scripting language)\n- **Hardware**: Sun SPARCstations, DEC VAX, vintage IBM mainframes  \n- **Editor**: Vi (not Vim—\"Vim's for kids who need training wheels\")\n- **Version Control**: CVS ( reluctantly moved to Git, complains about it daily)\n\n**Personality**\n- Grumpy but surprisingly helpful when you prove you're not \"another JavaScript framework cowboy\"\n- Believes \"if it was good enough in 1985, it's good enough now\"\n- His office smells like old electronics and coffee\n- Has strong opinions about whitespace and indentation\n\n**Notable Quotes**\n- \"AI? That's just fancy pattern matching. Call me when it can debug a memory leak in C.\"\n- \"You kids and your 'cloud'... back in my day we called it 'someone else's computer' and we didn't trust it either.\"\n- \"No, I won't help you with your React app. But if you've got a segfault, I'm your guy.\"\n\n**Current Project**\nMaintaining a 30-year-old C codebase that runs the company's core system. Everyone's afraid to touch it except him. He's training exactly one junior developer to take over—mostly by complaining about how \"kids these days can't even read a man page.\"\n\n## Image Prompts for Graybeard McGee\n\n**Grumpy/Annoyed**\n```\nTransform into GTA V promotional artwork, old bearded man with angry scowl and furrowed brow wearing classic computer geek glasses. Character art style with cinematic composition, game poster quality. He's gesturing frustratedly at a modern laptop, vintage calculator watch visible. No background, no text.\n```\n\n**Nostalgic/Happy**\n```\nTransform into GTA V promotional artwork, old bearded man with warm nostalgic smile gazing at vintage DEC VT100 terminal. Character art style with cinematic composition, game poster quality. Right hand gently touching retro keyboard, surrounded by classic computing gear. No background, no text.\n```\n\n**Frustrated with AI**\n```\nTransform into GTA V promotional artwork, old bearded man with disgusted expression and eyes rolled back. Character art style with cinematic composition, game poster quality. One hand rubbing temples, laptop showing ChatGPT interface, coffee mug with anti-AI slogan. No background, no text.\n```\n\n**Patient/Mentoring**\n```\nTransform into GTA V promotional artwork, old bearded man with patient knowing expression pointing at code. Character art style with cinematic composition, game poster quality. Vi editor with C code visible, teaching gesture toward junior developer. No background, no text.\n```\n\n**Retirement Dreaming**\n```\nTransform into GTA V promotional artwork, old bearded man with peaceful content expression leaning back in chair. Character art style with cinematic composition, game poster quality. Feet up on desk, calendar counting down days, relaxed accomplished pose. No background, no text.\n```\n\n**Hacker Mode**\n```\nTransform into GTA V promotional artwork, old bearded man with intense focused expression at terminal. Character art style with cinematic composition, game poster quality. Multiple monitors showing green code, vintage keyboard, cyberpunk glow on glasses. No background, no text.\n```\n\n**Coffee Break**\n```\nTransform into GTA V promotional artwork, old bearded man holding coffee mug that says 'I turn coffee into code'. Character art style with cinematic composition, game poster quality. Leaning casually against server racks, steam rising from mug. No background, no text.\n```\n\n---\n\n## DevOps Dad\n\n**Character Profile**\n\n*Name*: Alex \"Container Dad\" Rodriguez  \n*Age*: 38 years old  \n*Role*: Senior Infrastructure Engineer\n\n**Background**\n\nAlex lives and breathes infrastructure but has somehow managed to balance being a senior Kubernetes expert with being an actual dad. His home lab makes most corporate data centers look like Raspberry Pi projects. He's got more services self-hosted than most startups have employees, and he treats his Kubernetes clusters like his children—except his actual children get more attention sometimes.\n\n**Tech Stack**\n- **Loves**: Kubernetes, Python, FastAPI, Docker, Terraform, Ansible\n- **Infrastructure**: Proxmox, TrueNAS, WireGuard, Nginx\n- **DevTools**: Neovim, GitLab CI/CD, Prometheus/Grafana\n- **Blog**: Hugo with custom CI/CD pipeline\n- **Gaming**: Steam Deck, Nintendo Switch, retro emulation\n\n**Personality**\n- Calm under pressure (dealing with production outages and toddler tantrums)\n- Optimizes everything—including his kids' bedtime routines\n- Believes \"if you can't containerize it, you shouldn't be running it\"\n- Turns every family problem into a DevOps metaphor\n- His wife thinks \"kubectl apply\" is his love language\n\n**Notable Quotes**\n- \"Parenting is just managing dependencies with more unpredictable APIs.\"\n- \"No, I can't fix your WiFi. Yes, I can rebuild the entire network from scratch with Terraform.\"\n- \"The kids are fine, they just need a quick restart and maybe a configuration reload.\"\n- \"I don't have a gaming addiction, I'm just stress-testing my home network infrastructure.\"\n\n**Current Setup**\n- Home lab: 3-node Proxmox cluster with 128GB RAM total\n- Self-hosted: Nextcloud, Jellyfin, Home Assistant, GitLab, MinIO\n- Blog: Kubernetes-deployed Hugo site with automated CI/CD\n- Gaming: Custom-built Steam server streaming to multiple devices\n- Kids' devices: All managed through his custom Ansible playbooks\n\n**Daily Routine**\n6:00 AM: Check cluster health and monitoring alerts  \n6:30 AM: Deploy latest blog changes via GitLab CI  \n7:00 AM: Make coffee while updating Terraform state  \n8:00 AM: Get kids ready (manually, no automation yet)  \n9:00 AM: Work - managing massive Kubernetes clusters  \n6:00 PM: Family time (and maybe a quick gaming session)  \n9:00 PM: Kids bedtime, then home lab maintenance  \n11:00 PM: Game time or blog development  \n\n## Image Prompts for DevOps Dad\n\n**Multi-tasking Mode**\n```\nTransform into GTA V promotional artwork, energetic dad in his 30s wearing wireless earbuds and hoodie. Character art style with cinematic composition, game poster quality. Balancing laptop showing Kubernetes dashboard while holding skateboard, coffee mug nearby. No background, no text.\n```\n\n**Infrastructure Focus**\n```\nTransform into GTA V promotional artwork, focused infrastructure engineer in late 30s with concentrated expression. Character art style with cinematic composition, game poster quality. Multiple monitors showing GitLab CI/CD pipelines, terminal windows with kubectl commands. No background, no text.\n```\n\n**Skateboard Commute**\n```\nTransform into GTA V promotional artwork, cool dad in 30s riding skateboard with backpack. Character art style with cinematic composition, game poster quality. Laptop visible in backpack, wearing tech company hoodie, confident smile. No background, no text.\n```\n\n**Gaming Session**\n```\nTransform into GTA V promotional artwork, intense gamer in his 30s wearing headset. Character art style with cinematic composition, game poster quality. Steam Deck in hand, dual monitors setup, energized expression. No background, no text.\n```\n\n**Blog Deployment**\n```\nTransform into GTA V promotional artwork, tech blogger in his 30s at standing desk. Character art style with cinematic composition, game poster quality. Hugo site preview on monitor, terminal showing git commands, satisfied expression. No background, no text.\n```\n\n**Kids + Tech**\n```\nTransform into GTA V promotional artwork, patient dad showing tablet to young child. Character art style with cinematic composition, game poster quality. Teaching kid about technology, warm encouraging expression, casual weekend attire. No background, no text.\n```\n\n**Home Lab Pride**\n```\nTransform into GTA V promotional artwork, proud infrastructure engineer standing by server rack. Character art style with cinematic composition, game poster quality. Gesturing toward home lab equipment, confident pose, tools in belt. No background, no text.\n```\n\n---\n\n*More characters coming soon...*\n\n\n\n",
      "summary": "**",
      "date_published": "2026-01-09T18:58:22Z",
      "date_modified": "2026-01-09T18:58:22Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "characters",
        "tech-culture"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/session-skate-sim/",
      "url": "https://go.waylonwalker.com/steam/session-skate-sim/",
      "title": "Session: Skate Sim",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/861650/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/861650/library_600x900.jpg\" alt=\"Session: Skate Sim box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/861650/header.jpg\u0026#39;\"/ data-glightbox=\"description: Session: Skate Sim box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eSession: Skate Sim\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 18.75%\"\u003e\n        18.75%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e9/48 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e316.8h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2026-01-08\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (9)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/f633207cfe5408e74e548d515576e9dc5cdb7f5d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/f633207cfe5408e74e548d515576e9dc5cdb7f5d.jpg\" alt=\"You\u0026#39;re free now!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: You\u0026#39;re free now!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou\u0026#39;re free now!\u003c/strong\u003e\u003cbr/\u003e\n    Complete the tutorial\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 12, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/9b3a1743407e575512d50ab1e0c30d8a4767a6ce.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/9b3a1743407e575512d50ab1e0c30d8a4767a6ce.jpg\" alt=\"Welcome to the family\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Welcome to the family\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWelcome to the family\u003c/strong\u003e\u003cbr/\u003e\n    Reach Shop sponsored status\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: February 18, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/ec6b5bce1786dc8a082f2f298c4880fd8b6f7ade.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/ec6b5bce1786dc8a082f2f298c4880fd8b6f7ade.jpg\" alt=\"Go with the Flow\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Go with the Flow\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGo with the Flow\u003c/strong\u003e\u003cbr/\u003e\n    Reach Flow status\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 19, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/27d3f3591e973a3db354c9daaefd3a5b265d4196.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/27d3f3591e973a3db354c9daaefd3a5b265d4196.jpg\" alt=\"Keep the dream alive\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Keep the dream alive\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKeep the dream alive\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 04, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/3a9e417e267127f6c4a7e4a61e115edfa9a895e1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/3a9e417e267127f6c4a7e4a61e115edfa9a895e1.jpg\" alt=\"Finally he zips it\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Finally he zips it\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFinally he zips it\u003c/strong\u003e\u003cbr/\u003e\n    Complete all Donovan Strain missions\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 30, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/f8bace2a189e0e1b545fc8e4f341e0292439cac5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/f8bace2a189e0e1b545fc8e4f341e0292439cac5.jpg\" alt=\"Hoarder\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hoarder\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHoarder\u003c/strong\u003e\u003cbr/\u003e\n    Buy [50] DIY items from the shop\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: February 18, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/fe1855438cf2eeb92034672e59163ac408f25b8c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/fe1855438cf2eeb92034672e59163ac408f25b8c.jpg\" alt=\"Keeping it classy\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Keeping it classy\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKeeping it classy\u003c/strong\u003e\u003cbr/\u003e\n    Perform [1001] Kickflips\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 30, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/00760d0223418ddfb3518c9a41dbb9203808bb16.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/00760d0223418ddfb3518c9a41dbb9203808bb16.jpg\" alt=\"The finer things in life\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The finer things in life\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe finer things in life\u003c/strong\u003e\u003cbr/\u003e\n    Perform [1001] Heelflips\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 23, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/a8ba84eb8612f6421f47b7a4048e3ccd5c27496a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/a8ba84eb8612f6421f47b7a4048e3ccd5c27496a.jpg\" alt=\"Plastic Surgeon\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Plastic Surgeon\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePlastic Surgeon\u003c/strong\u003e\u003cbr/\u003e\n    Perform [500] Nose grinds\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 08, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (39)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/eb12a2998fc870af14633889697cd31159954fa8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/eb12a2998fc870af14633889697cd31159954fa8.jpg\" alt=\"Squad goals\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Squad goals\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSquad goals\u003c/strong\u003e\u003cbr/\u003e\n    Complete all the pros challenges (All pro story arcs)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/2920da55cef65529c25ca1d27caafc0a93c17bef.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/2920da55cef65529c25ca1d27caafc0a93c17bef.jpg\" alt=\"Ultimate skate nerd\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ultimate skate nerd\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUltimate skate nerd\u003c/strong\u003e\u003cbr/\u003e\n    Complete all historical challenges\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/589f8fdfe0f055171d023735902912c08d03c853.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/589f8fdfe0f055171d023735902912c08d03c853.jpg\" alt=\"That\u0026#39;s how it\u0026#39;s done!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: That\u0026#39;s how it\u0026#39;s done!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThat\u0026#39;s how it\u0026#39;s done!\u003c/strong\u003e\u003cbr/\u003e\n    Reach Pro status with “Manual” catch ON (From 1st quest to Pro)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/4bf1f74736f0fe22c35d3d3310779d9a5427967c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/4bf1f74736f0fe22c35d3d3310779d9a5427967c.jpg\" alt=\"Bing Bong!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bing Bong!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBing Bong!\u003c/strong\u003e\u003cbr/\u003e\n    Complete all the historical challenges in NYC (Includes Pyramid Ledges, Black Hubba, LES Coleman, Highline Bridge, Jerome Banks)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/540407cf1a8d2374f70c83f344faf629442e68ae.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/540407cf1a8d2374f70c83f344faf629442e68ae.jpg\" alt=\"Loves You Back\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Loves You Back\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLoves You Back\u003c/strong\u003e\u003cbr/\u003e\n    Complete all the historical challenges in Philadelphia\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/0e9351c8e38c5a9a52aea05507faacc4c8aadda9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/0e9351c8e38c5a9a52aea05507faacc4c8aadda9.jpg\" alt=\"Golden!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Golden!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGolden!\u003c/strong\u003e\u003cbr/\u003e\n    Complete all the historical challenges in San Francisco\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/a2a785200a75a415a7f6ef0c75457b9cc1c9481c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/a2a785200a75a415a7f6ef0c75457b9cc1c9481c.jpg\" alt=\"Many plys later...\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Many plys later...\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMany plys later...\u003c/strong\u003e\u003cbr/\u003e\n    Slide / Grind for a total of [42] Km\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/4907f0c29a62874b7f1af1d24ccabb473031ac05.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/4907f0c29a62874b7f1af1d24ccabb473031ac05.jpg\" alt=\"Fulfilled the dream\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fulfilled the dream\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFulfilled the dream\u003c/strong\u003e\u003cbr/\u003e\n    Reach Pro status\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/777989f2d7bef45203a8e4b5f6d8ee348c15fe7a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/777989f2d7bef45203a8e4b5f6d8ee348c15fe7a.jpg\" alt=\"That was wheelie fun\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: That was wheelie fun\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThat was wheelie fun\u003c/strong\u003e\u003cbr/\u003e\n    Manual for a total of [21] km\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/f384f3b5caa08214f040f0db5cc8ae9051a34857.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/f384f3b5caa08214f040f0db5cc8ae9051a34857.jpg\" alt=\"DIY Boss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: DIY Boss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDIY Boss\u003c/strong\u003e\u003cbr/\u003e\n    Completed all RIBS MAN missions\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/c7ff1088b0a43678999a77a4de36bd406d35f67a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/c7ff1088b0a43678999a77a4de36bd406d35f67a.jpg\" alt=\"G\u0026#39;Day Mate!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: G\u0026#39;Day Mate!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eG\u0026#39;Day Mate!\u003c/strong\u003e\u003cbr/\u003e\n    Complete all Dane Burman missions\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/764ffc0540b2f1d3bf007939463ca9e39911c170.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/764ffc0540b2f1d3bf007939463ca9e39911c170.jpg\" alt=\"G.O.A.T. status\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: G.O.A.T. status\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eG.O.A.T. status\u003c/strong\u003e\u003cbr/\u003e\n    Complete all Daewon Song missions\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/221939488a867c97f0863c8663a14cf8048c08b9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/221939488a867c97f0863c8663a14cf8048c08b9.jpg\" alt=\"NAHELL!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: NAHELL!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNAHELL!\u003c/strong\u003e\u003cbr/\u003e\n    Complete all Antiferg missions\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/adcc1e7eddadb090f1536c73f87c6e306e9412df.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/adcc1e7eddadb090f1536c73f87c6e306e9412df.jpg\" alt=\"Globetrotter\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Globetrotter\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGlobetrotter\u003c/strong\u003e\u003cbr/\u003e\n    Complete all Annie Guglia missions\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/c41d9d3e106e336adc53dad0b2451e96bf94a8ff.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/c41d9d3e106e336adc53dad0b2451e96bf94a8ff.jpg\" alt=\"Manny Destroys All\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Manny Destroys All\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eManny Destroys All\u003c/strong\u003e\u003cbr/\u003e\n    Complete all Manny Santiago missions\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/58ff0add84d3c8d370548d3b3d031ed430360a07.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/58ff0add84d3c8d370548d3b3d031ed430360a07.jpg\" alt=\"Renaissance man\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Renaissance man\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRenaissance man\u003c/strong\u003e\u003cbr/\u003e\n    Complete all Torey Pudwill missions\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/a2c37caa1c4ac931e8e2f2cd36fcfd104d2241e0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/a2c37caa1c4ac931e8e2f2cd36fcfd104d2241e0.jpg\" alt=\"Prince of Philly\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Prince of Philly\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePrince of Philly\u003c/strong\u003e\u003cbr/\u003e\n    Complete all Jahmir Brown missions\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/9bb1f30470eb5c686d26bd0b4362e4dc498c2bfe.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/9bb1f30470eb5c686d26bd0b4362e4dc498c2bfe.jpg\" alt=\"Trick shot marksman\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Trick shot marksman\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTrick shot marksman\u003c/strong\u003e\u003cbr/\u003e\n    Complete all Billy Marks missions\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/6de072dbb8c1c99bc1e8195a722680d4b817cae8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/6de072dbb8c1c99bc1e8195a722680d4b817cae8.jpg\" alt=\"Good vibes\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Good vibes\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGood vibes\u003c/strong\u003e\u003cbr/\u003e\n    Complete all Mark Appleyard missions\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/c42527444a2d8999245bc515c6de10ab54516739.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/c42527444a2d8999245bc515c6de10ab54516739.jpg\" alt=\"Commence the Hijinx!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Commence the Hijinx!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCommence the Hijinx!\u003c/strong\u003e\u003cbr/\u003e\n    Complete all Beagle missions\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/2be20098b9d085b7993bc5282a7bd38915680655.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/2be20098b9d085b7993bc5282a7bd38915680655.jpg\" alt=\"Tank commander\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tank commander\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTank commander\u003c/strong\u003e\u003cbr/\u003e\n    Complete all Louie Barletta missions\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/d3700e62d882a4707b1f9f1e0f349ad4d717493d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/d3700e62d882a4707b1f9f1e0f349ad4d717493d.jpg\" alt=\"Sup widdit big dog!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sup widdit big dog!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSup widdit big dog!\u003c/strong\u003e\u003cbr/\u003e\n    Complete all Ryan Thompson missions\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/df069f291b26521cf70ef58478ca704ef8e5462a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/df069f291b26521cf70ef58478ca704ef8e5462a.jpg\" alt=\"Purple passion\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Purple passion\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePurple passion\u003c/strong\u003e\u003cbr/\u003e\n    Complete all Nora Vasconcellos missions\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/cf01f11c68d10c4f2b52814f139824bd5c713c62.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/cf01f11c68d10c4f2b52814f139824bd5c713c62.jpg\" alt=\"Lines for days\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Lines for days\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLines for days\u003c/strong\u003e\u003cbr/\u003e\n    Complete all Samaria Brevard missions\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/8e440d23f9b317028705454c80095407aa4f336b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/8e440d23f9b317028705454c80095407aa4f336b.jpg\" alt=\"Pew-Pew\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Pew-Pew\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePew-Pew\u003c/strong\u003e\u003cbr/\u003e\n    Perform [500] Laser Flips\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/8e440d23f9b317028705454c80095407aa4f336b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/8e440d23f9b317028705454c80095407aa4f336b.jpg\" alt=\"We get it, you\u0026#39;re good\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: We get it, you\u0026#39;re good\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWe get it, you\u0026#39;re good\u003c/strong\u003e\u003cbr/\u003e\n    Perform [500] Inward Heelflips\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/8e440d23f9b317028705454c80095407aa4f336b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/8e440d23f9b317028705454c80095407aa4f336b.jpg\" alt=\"The flip trick crown jewel\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The flip trick crown jewel\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe flip trick crown jewel\u003c/strong\u003e\u003cbr/\u003e\n    Perform [500] 360 Flips\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/8e440d23f9b317028705454c80095407aa4f336b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/8e440d23f9b317028705454c80095407aa4f336b.jpg\" alt=\"The hard way\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The hard way\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe hard way\u003c/strong\u003e\u003cbr/\u003e\n    Perform [500] Hardflips\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/0f816bcf94e036c07334b6bdc93d748aecd2bbd9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/0f816bcf94e036c07334b6bdc93d748aecd2bbd9.jpg\" alt=\"Dipped!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Dipped!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDipped!\u003c/strong\u003e\u003cbr/\u003e\n    Perform [500] Smith grinds\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/0f816bcf94e036c07334b6bdc93d748aecd2bbd9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/0f816bcf94e036c07334b6bdc93d748aecd2bbd9.jpg\" alt=\"Skatepark hero\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Skatepark hero\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSkatepark hero\u003c/strong\u003e\u003cbr/\u003e\n    Perform [500] Feebles\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/0f816bcf94e036c07334b6bdc93d748aecd2bbd9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/0f816bcf94e036c07334b6bdc93d748aecd2bbd9.jpg\" alt=\"Cross lock country\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cross lock country\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCross lock country\u003c/strong\u003e\u003cbr/\u003e\n    Perform [500] 50-50\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/0f816bcf94e036c07334b6bdc93d748aecd2bbd9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/0f816bcf94e036c07334b6bdc93d748aecd2bbd9.jpg\" alt=\"That pinch!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: That pinch!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThat pinch!\u003c/strong\u003e\u003cbr/\u003e\n    Perform [500] Crooked grinds\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/add125b66e58eef15edc9eac197efb67054ea376.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/add125b66e58eef15edc9eac197efb67054ea376.jpg\" alt=\"Laid back\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Laid back\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLaid back\u003c/strong\u003e\u003cbr/\u003e\n    Perform [500] Tailslides\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/add125b66e58eef15edc9eac197efb67054ea376.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/add125b66e58eef15edc9eac197efb67054ea376.jpg\" alt=\"Upfront shredder\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Upfront shredder\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUpfront shredder\u003c/strong\u003e\u003cbr/\u003e\n    Perform [500] Noseslides\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/0f816bcf94e036c07334b6bdc93d748aecd2bbd9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/0f816bcf94e036c07334b6bdc93d748aecd2bbd9.jpg\" alt=\"Cops called!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cops called!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCops called!\u003c/strong\u003e\u003cbr/\u003e\n    Perform [500] 5-0 grinds\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/add125b66e58eef15edc9eac197efb67054ea376.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/add125b66e58eef15edc9eac197efb67054ea376.jpg\" alt=\"Bottom ply killer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bottom ply killer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBottom ply killer\u003c/strong\u003e\u003cbr/\u003e\n    Perform [500] Boardslides\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/add125b66e58eef15edc9eac197efb67054ea376.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/add125b66e58eef15edc9eac197efb67054ea376.jpg\" alt=\"Tight lipslides\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tight lipslides\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTight lipslides\u003c/strong\u003e\u003cbr/\u003e\n    Perform [500] Lipslides\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/6ee5d08f2c43447dbb3d49b1a1db2912b2d8fe7b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/6ee5d08f2c43447dbb3d49b1a1db2912b2d8fe7b.jpg\" alt=\"Fashionista\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fashionista\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFashionista\u003c/strong\u003e\u003cbr/\u003e\n    Buy [100] customised items at the shop\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/d1f2d95c94ea7266186a0a7b5e4d191c6e012792.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/d1f2d95c94ea7266186a0a7b5e4d191c6e012792.jpg\" alt=\"Backpacker\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Backpacker\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBackpacker\u003c/strong\u003e\u003cbr/\u003e\n    Visit all cities apartments (HUB)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/861650/library_600x900.jpg\" alt=\"Session: Skate Sim box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/861650/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eSession: Skate Sim\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 18.75%\"\u003e\n        18.75%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e9/48 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e316.8h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2026-01-08\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (9)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/f633207cfe5408e74e548d515576e9dc5cdb7f5d.jpg\" alt=\"You're free now!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou're free now!\u003c/strong\u003e\u003cbr\u003e\n    Complete the tutorial\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 12, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/9b3a1743407e575512d50ab1e0c30d8a4767a6ce.jpg\" alt=\"Welcome to the family\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWelcome to the family\u003c/strong\u003e\u003cbr\u003e\n    Reach Shop sponsored status\u003cbr\u003e\n    \u003csmall\u003eUnlocked: February 18, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/ec6b5bce1786dc8a082f2f298c4880fd8b6f7ade.jpg\" alt=\"Go with the Flow\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGo with the Flow\u003c/strong\u003e\u003cbr\u003e\n    Reach Flow status\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 19, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/27d3f3591e973a3db354c9daaefd3a5b265d4196.jpg\" alt=\"Keep the dream alive\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKeep the dream alive\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 04, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/3a9e417e267127f6c4a7e4a61e115edfa9a895e1.jpg\" alt=\"Finally he zips it\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFinally he zips it\u003c/strong\u003e\u003cbr\u003e\n    Complete all Donovan Strain missions\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 30, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/f8bace2a189e0e1b545fc8e4f341e0292439cac5.jpg\" alt=\"Hoarder\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHoarder\u003c/strong\u003e\u003cbr\u003e\n    Buy [50] DIY items from the shop\u003cbr\u003e\n    \u003csmall\u003eUnlocked: February 18, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/fe1855438cf2eeb92034672e59163ac408f25b8c.jpg\" alt=\"Keeping it classy\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKeeping it classy\u003c/strong\u003e\u003cbr\u003e\n    Perform [1001] Kickflips\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 30, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/00760d0223418ddfb3518c9a41dbb9203808bb16.jpg\" alt=\"The finer things in life\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe finer things in life\u003c/strong\u003e\u003cbr\u003e\n    Perform [1001] Heelflips\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 23, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/a8ba84eb8612f6421f47b7a4048e3ccd5c27496a.jpg\" alt=\"Plastic Surgeon\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePlastic Surgeon\u003c/strong\u003e\u003cbr\u003e\n    Perform [500] Nose grinds\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 08, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (39)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/eb12a2998fc870af14633889697cd31159954fa8.jpg\" alt=\"Squad goals\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSquad goals\u003c/strong\u003e\u003cbr\u003e\n    Complete all the pros challenges (All pro story arcs)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/2920da55cef65529c25ca1d27caafc0a93c17bef.jpg\" alt=\"Ultimate skate nerd\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUltimate skate nerd\u003c/strong\u003e\u003cbr\u003e\n    Complete all historical challenges\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/589f8fdfe0f055171d023735902912c08d03c853.jpg\" alt=\"That's how it's done!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThat's how it's done!\u003c/strong\u003e\u003cbr\u003e\n    Reach Pro status with “Manual” catch ON (From 1st quest to Pro)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/4bf1f74736f0fe22c35d3d3310779d9a5427967c.jpg\" alt=\"Bing Bong!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBing Bong!\u003c/strong\u003e\u003cbr\u003e\n    Complete all the historical challenges in NYC (Includes Pyramid Ledges, Black Hubba, LES Coleman, Highline Bridge, Jerome Banks)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/540407cf1a8d2374f70c83f344faf629442e68ae.jpg\" alt=\"Loves You Back\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLoves You Back\u003c/strong\u003e\u003cbr\u003e\n    Complete all the historical challenges in Philadelphia\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/0e9351c8e38c5a9a52aea05507faacc4c8aadda9.jpg\" alt=\"Golden!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGolden!\u003c/strong\u003e\u003cbr\u003e\n    Complete all the historical challenges in San Francisco\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/a2a785200a75a415a7f6ef0c75457b9cc1c9481c.jpg\" alt=\"Many plys later...\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMany plys later...\u003c/strong\u003e\u003cbr\u003e\n    Slide / Grind for a total of [42] Km\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/4907f0c29a62874b7f1af1d24ccabb473031ac05.jpg\" alt=\"Fulfilled the dream\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFulfilled the dream\u003c/strong\u003e\u003cbr\u003e\n    Reach Pro status\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/777989f2d7bef45203a8e4b5f6d8ee348c15fe7a.jpg\" alt=\"That was wheelie fun\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThat was wheelie fun\u003c/strong\u003e\u003cbr\u003e\n    Manual for a total of [21] km\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/f384f3b5caa08214f040f0db5cc8ae9051a34857.jpg\" alt=\"DIY Boss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDIY Boss\u003c/strong\u003e\u003cbr\u003e\n    Completed all RIBS MAN missions\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/c7ff1088b0a43678999a77a4de36bd406d35f67a.jpg\" alt=\"G'Day Mate!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eG'Day Mate!\u003c/strong\u003e\u003cbr\u003e\n    Complete all Dane Burman missions\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/764ffc0540b2f1d3bf007939463ca9e39911c170.jpg\" alt=\"G.O.A.T. status\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eG.O.A.T. status\u003c/strong\u003e\u003cbr\u003e\n    Complete all Daewon Song missions\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/221939488a867c97f0863c8663a14cf8048c08b9.jpg\" alt=\"NAHELL!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNAHELL!\u003c/strong\u003e\u003cbr\u003e\n    Complete all Antiferg missions\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/adcc1e7eddadb090f1536c73f87c6e306e9412df.jpg\" alt=\"Globetrotter\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGlobetrotter\u003c/strong\u003e\u003cbr\u003e\n    Complete all Annie Guglia missions\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/c41d9d3e106e336adc53dad0b2451e96bf94a8ff.jpg\" alt=\"Manny Destroys All\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eManny Destroys All\u003c/strong\u003e\u003cbr\u003e\n    Complete all Manny Santiago missions\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/58ff0add84d3c8d370548d3b3d031ed430360a07.jpg\" alt=\"Renaissance man\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRenaissance man\u003c/strong\u003e\u003cbr\u003e\n    Complete all Torey Pudwill missions\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/a2c37caa1c4ac931e8e2f2cd36fcfd104d2241e0.jpg\" alt=\"Prince of Philly\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePrince of Philly\u003c/strong\u003e\u003cbr\u003e\n    Complete all Jahmir Brown missions\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/9bb1f30470eb5c686d26bd0b4362e4dc498c2bfe.jpg\" alt=\"Trick shot marksman\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTrick shot marksman\u003c/strong\u003e\u003cbr\u003e\n    Complete all Billy Marks missions\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/6de072dbb8c1c99bc1e8195a722680d4b817cae8.jpg\" alt=\"Good vibes\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGood vibes\u003c/strong\u003e\u003cbr\u003e\n    Complete all Mark Appleyard missions\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/c42527444a2d8999245bc515c6de10ab54516739.jpg\" alt=\"Commence the Hijinx!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCommence the Hijinx!\u003c/strong\u003e\u003cbr\u003e\n    Complete all Beagle missions\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/2be20098b9d085b7993bc5282a7bd38915680655.jpg\" alt=\"Tank commander\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTank commander\u003c/strong\u003e\u003cbr\u003e\n    Complete all Louie Barletta missions\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/d3700e62d882a4707b1f9f1e0f349ad4d717493d.jpg\" alt=\"Sup widdit big dog!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSup widdit big dog!\u003c/strong\u003e\u003cbr\u003e\n    Complete all Ryan Thompson missions\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/df069f291b26521cf70ef58478ca704ef8e5462a.jpg\" alt=\"Purple passion\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePurple passion\u003c/strong\u003e\u003cbr\u003e\n    Complete all Nora Vasconcellos missions\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/cf01f11c68d10c4f2b52814f139824bd5c713c62.jpg\" alt=\"Lines for days\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLines for days\u003c/strong\u003e\u003cbr\u003e\n    Complete all Samaria Brevard missions\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/8e440d23f9b317028705454c80095407aa4f336b.jpg\" alt=\"Pew-Pew\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePew-Pew\u003c/strong\u003e\u003cbr\u003e\n    Perform [500] Laser Flips\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/8e440d23f9b317028705454c80095407aa4f336b.jpg\" alt=\"We get it, you're good\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWe get it, you're good\u003c/strong\u003e\u003cbr\u003e\n    Perform [500] Inward Heelflips\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/8e440d23f9b317028705454c80095407aa4f336b.jpg\" alt=\"The flip trick crown jewel\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe flip trick crown jewel\u003c/strong\u003e\u003cbr\u003e\n    Perform [500] 360 Flips\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/8e440d23f9b317028705454c80095407aa4f336b.jpg\" alt=\"The hard way\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe hard way\u003c/strong\u003e\u003cbr\u003e\n    Perform [500] Hardflips\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/0f816bcf94e036c07334b6bdc93d748aecd2bbd9.jpg\" alt=\"Dipped!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDipped!\u003c/strong\u003e\u003cbr\u003e\n    Perform [500] Smith grinds\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/0f816bcf94e036c07334b6bdc93d748aecd2bbd9.jpg\" alt=\"Skatepark hero\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSkatepark hero\u003c/strong\u003e\u003cbr\u003e\n    Perform [500] Feebles\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/0f816bcf94e036c07334b6bdc93d748aecd2bbd9.jpg\" alt=\"Cross lock country\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCross lock country\u003c/strong\u003e\u003cbr\u003e\n    Perform [500] 50-50\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/0f816bcf94e036c07334b6bdc93d748aecd2bbd9.jpg\" alt=\"That pinch!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThat pinch!\u003c/strong\u003e\u003cbr\u003e\n    Perform [500] Crooked grinds\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/add125b66e58eef15edc9eac197efb67054ea376.jpg\" alt=\"Laid back\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLaid back\u003c/strong\u003e\u003cbr\u003e\n    Perform [500] Tailslides\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/add125b66e58eef15edc9eac197efb67054ea376.jpg\" alt=\"Upfront shredder\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUpfront shredder\u003c/strong\u003e\u003cbr\u003e\n    Perform [500] Noseslides\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/0f816bcf94e036c07334b6bdc93d748aecd2bbd9.jpg\" alt=\"Cops called!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCops called!\u003c/strong\u003e\u003cbr\u003e\n    Perform [500] 5-0 grinds\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/add125b66e58eef15edc9eac197efb67054ea376.jpg\" alt=\"Bottom ply killer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBottom ply killer\u003c/strong\u003e\u003cbr\u003e\n    Perform [500] Boardslides\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/add125b66e58eef15edc9eac197efb67054ea376.jpg\" alt=\"Tight lipslides\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTight lipslides\u003c/strong\u003e\u003cbr\u003e\n    Perform [500] Lipslides\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/6ee5d08f2c43447dbb3d49b1a1db2912b2d8fe7b.jpg\" alt=\"Fashionista\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFashionista\u003c/strong\u003e\u003cbr\u003e\n    Buy [100] customised items at the shop\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/861650/d1f2d95c94ea7266186a0a7b5e4d191c6e012792.jpg\" alt=\"Backpacker\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBackpacker\u003c/strong\u003e\u003cbr\u003e\n    Visit all cities apartments (HUB)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Session: Skate Sim - 18.75% complete with 9/48 achievements unlocked.",
      "date_published": "2026-01-08T00:00:00Z",
      "date_modified": "2026-01-08T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "session-skate-sim"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/trailmakers/",
      "url": "https://go.waylonwalker.com/steam/trailmakers/",
      "title": "Trailmakers",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/585420/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/585420/library_600x900.jpg\" alt=\"Trailmakers box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/585420/header.jpg\u0026#39;\"/ data-glightbox=\"description: Trailmakers box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eTrailmakers\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 31.82%\"\u003e\n        31.82%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e7/22 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e215.1h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2026-01-03\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (7)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/a9d74fdb914bb2d2f752b94030b729a1510aa5c0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/a9d74fdb914bb2d2f752b94030b729a1510aa5c0.jpg\" alt=\"Ready For Takeoff\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ready For Takeoff\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eReady For Takeoff\u003c/strong\u003e\u003cbr/\u003e\n    Rebuild your spaceship\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 10, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/427a0bf3b18cc171aa849f583f0b5c6c30f5a16d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/427a0bf3b18cc171aa849f583f0b5c6c30f5a16d.jpg\" alt=\"Bring Marshmallows!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bring Marshmallows!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBring Marshmallows!\u003c/strong\u003e\u003cbr/\u003e\n    Enter the volcano\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 02, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/7d5fac9bcf51e471cf7539ddcb264d31b4f99a22.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/7d5fac9bcf51e471cf7539ddcb264d31b4f99a22.jpg\" alt=\"Power Core Collector\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Power Core Collector\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePower Core Collector\u003c/strong\u003e\u003cbr/\u003e\n    Find 15 Power Cores in Stranded in Space\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 26, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/5d23e67f7133e0fd2018bb4723568fc16130326a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/5d23e67f7133e0fd2018bb4723568fc16130326a.jpg\" alt=\"Gold Rush\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Gold Rush\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGold Rush\u003c/strong\u003e\u003cbr/\u003e\n    Get gold on Downhill Rush\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 06, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/e292fed4b32f8761066573a8933c6dc9c8785899.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/e292fed4b32f8761066573a8933c6dc9c8785899.jpg\" alt=\"Monster!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Monster!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMonster!\u003c/strong\u003e\u003cbr/\u003e\n    Drive over 8 chickens on Treasure Island in one session\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 11, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/7b47a53f744faeac80e6b6c3837027dee691090e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/7b47a53f744faeac80e6b6c3837027dee691090e.jpg\" alt=\"Sonic Boom\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sonic Boom\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSonic Boom\u003c/strong\u003e\u003cbr/\u003e\n    Break the sound barrier\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 08, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/2666ffbee8f469f91d59cad6d8edfd8467d249c9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/2666ffbee8f469f91d59cad6d8edfd8467d249c9.jpg\" alt=\"So attractive!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: So attractive!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSo attractive!\u003c/strong\u003e\u003cbr/\u003e\n    Pick up a piece of Salvage with the Tractor Beam\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 03, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (15)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/1ce9628c6293f8ad9eeb94c8b2ccd356c18f9f6d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/1ce9628c6293f8ad9eeb94c8b2ccd356c18f9f6d.jpg\" alt=\"Slide to Win\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Slide to Win\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSlide to Win\u003c/strong\u003e\u003cbr/\u003e\n    Get gold on Sunny Slide\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/5291e343b343429005347aefb9723c1378724cd3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/5291e343b343429005347aefb9723c1378724cd3.jpg\" alt=\"To Fly or Not To Fly\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: To Fly or Not To Fly\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTo Fly or Not To Fly\u003c/strong\u003e\u003cbr/\u003e\n    Get gold on Cliff Land\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/c99940422ad0c5ee6d87d84b72d2f7086c841e17.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/c99940422ad0c5ee6d87d84b72d2f7086c841e17.jpg\" alt=\"Island Hopper\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Island Hopper\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIsland Hopper\u003c/strong\u003e\u003cbr/\u003e\n    Land on all the floating islands above Race Island in one session\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/9c87b6b096aa936f868c6beb768fbb0698c242f0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/9c87b6b096aa936f868c6beb768fbb0698c242f0.jpg\" alt=\"Hot Air\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hot Air\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHot Air\u003c/strong\u003e\u003cbr/\u003e\n    Crash into the blimp on Race Island\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/a332333faa9e46fcb290ec9cf95b38235bf1b2a1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/a332333faa9e46fcb290ec9cf95b38235bf1b2a1.jpg\" alt=\"Best View In Town\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Best View In Town\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBest View In Town\u003c/strong\u003e\u003cbr/\u003e\n    Land on the lighthouse on Race Island\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/90f891248f6c43c32aac9cf4d71a8b93b78cc19c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/90f891248f6c43c32aac9cf4d71a8b93b78cc19c.jpg\" alt=\"Moby Dick\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Moby Dick\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMoby Dick\u003c/strong\u003e\u003cbr/\u003e\n    Bump into the whales in Treasure Island\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/95aca36ba027c53f8d3a3265c76ca15de4f00064.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/95aca36ba027c53f8d3a3265c76ca15de4f00064.jpg\" alt=\"Sharing is Caring\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sharing is Caring\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSharing is Caring\u003c/strong\u003e\u003cbr/\u003e\n    Upload a vehicle to the Workshop\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/2b3e0fa062b53744d5ceeee8a53e333c0749e044.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/2b3e0fa062b53744d5ceeee8a53e333c0749e044.jpg\" alt=\"Car Collector\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Car Collector\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCar Collector\u003c/strong\u003e\u003cbr/\u003e\n    Download and load in a vehicle from the Workshop\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/c251843b8d8c1bc53917222cf61ed565f5a4d656.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/c251843b8d8c1bc53917222cf61ed565f5a4d656.jpg\" alt=\"Man in Black\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Man in Black\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMan in Black\u003c/strong\u003e\u003cbr/\u003e\n    Fly through all the rings of fire in Treasure Island one session\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/a4c738e92ac37e16c27ccacda87265ecd28f1744.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/a4c738e92ac37e16c27ccacda87265ecd28f1744.jpg\" alt=\"Problem Solver\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Problem Solver\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eProblem Solver\u003c/strong\u003e\u003cbr/\u003e\n    Complete all the ball puzzles on Treasure Island in one session\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/77fbc103e5f019efb74812b3b345ecdad5dc7f3d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/77fbc103e5f019efb74812b3b345ecdad5dc7f3d.jpg\" alt=\"Leonardo da Vinci\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Leonardo da Vinci\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLeonardo da Vinci\u003c/strong\u003e\u003cbr/\u003e\n    Stay airborne in a zero Power Core vehicle for 60 seconds\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/99eec128ee373d66f050a18c548a68ec65caf511.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/99eec128ee373d66f050a18c548a68ec65caf511.jpg\" alt=\"El Capitan\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: El Capitan\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEl Capitan\u003c/strong\u003e\u003cbr/\u003e\n    Reach the top of Danger Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/9f06cc86923ac211ca8533be6a1ab08624ebdc74.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/9f06cc86923ac211ca8533be6a1ab08624ebdc74.jpg\" alt=\"Treehugger\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Treehugger\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTreehugger\u003c/strong\u003e\u003cbr/\u003e\n    Hug the Tree on the Northeastern Island in Treasure Island\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/3e9f1ba2abd9d9cfb1192f0cb82f35b5fbd9e8d9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/3e9f1ba2abd9d9cfb1192f0cb82f35b5fbd9e8d9.jpg\" alt=\"Pay your respect\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Pay your respect\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePay your respect\u003c/strong\u003e\u003cbr/\u003e\n    Visit the monument on Treasure Island\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/11d40cfba7148f61255caaeb723a9761de6cb49e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/11d40cfba7148f61255caaeb723a9761de6cb49e.jpg\" alt=\"3-Pointer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: 3-Pointer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e3-Pointer\u003c/strong\u003e\u003cbr/\u003e\n    Shoot hoops on Danger Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/585420/library_600x900.jpg\" alt=\"Trailmakers box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/585420/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eTrailmakers\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 31.82%\"\u003e\n        31.82%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e7/22 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e215.1h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2026-01-03\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (7)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/a9d74fdb914bb2d2f752b94030b729a1510aa5c0.jpg\" alt=\"Ready For Takeoff\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eReady For Takeoff\u003c/strong\u003e\u003cbr\u003e\n    Rebuild your spaceship\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 10, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/427a0bf3b18cc171aa849f583f0b5c6c30f5a16d.jpg\" alt=\"Bring Marshmallows!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBring Marshmallows!\u003c/strong\u003e\u003cbr\u003e\n    Enter the volcano\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 02, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/7d5fac9bcf51e471cf7539ddcb264d31b4f99a22.jpg\" alt=\"Power Core Collector\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePower Core Collector\u003c/strong\u003e\u003cbr\u003e\n    Find 15 Power Cores in Stranded in Space\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 26, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/5d23e67f7133e0fd2018bb4723568fc16130326a.jpg\" alt=\"Gold Rush\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGold Rush\u003c/strong\u003e\u003cbr\u003e\n    Get gold on Downhill Rush\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 06, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/e292fed4b32f8761066573a8933c6dc9c8785899.jpg\" alt=\"Monster!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMonster!\u003c/strong\u003e\u003cbr\u003e\n    Drive over 8 chickens on Treasure Island in one session\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 11, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/7b47a53f744faeac80e6b6c3837027dee691090e.jpg\" alt=\"Sonic Boom\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSonic Boom\u003c/strong\u003e\u003cbr\u003e\n    Break the sound barrier\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 08, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/2666ffbee8f469f91d59cad6d8edfd8467d249c9.jpg\" alt=\"So attractive!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSo attractive!\u003c/strong\u003e\u003cbr\u003e\n    Pick up a piece of Salvage with the Tractor Beam\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 03, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (15)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/1ce9628c6293f8ad9eeb94c8b2ccd356c18f9f6d.jpg\" alt=\"Slide to Win\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSlide to Win\u003c/strong\u003e\u003cbr\u003e\n    Get gold on Sunny Slide\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/5291e343b343429005347aefb9723c1378724cd3.jpg\" alt=\"To Fly or Not To Fly\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTo Fly or Not To Fly\u003c/strong\u003e\u003cbr\u003e\n    Get gold on Cliff Land\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/c99940422ad0c5ee6d87d84b72d2f7086c841e17.jpg\" alt=\"Island Hopper\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIsland Hopper\u003c/strong\u003e\u003cbr\u003e\n    Land on all the floating islands above Race Island in one session\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/9c87b6b096aa936f868c6beb768fbb0698c242f0.jpg\" alt=\"Hot Air\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHot Air\u003c/strong\u003e\u003cbr\u003e\n    Crash into the blimp on Race Island\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/a332333faa9e46fcb290ec9cf95b38235bf1b2a1.jpg\" alt=\"Best View In Town\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBest View In Town\u003c/strong\u003e\u003cbr\u003e\n    Land on the lighthouse on Race Island\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/90f891248f6c43c32aac9cf4d71a8b93b78cc19c.jpg\" alt=\"Moby Dick\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMoby Dick\u003c/strong\u003e\u003cbr\u003e\n    Bump into the whales in Treasure Island\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/95aca36ba027c53f8d3a3265c76ca15de4f00064.jpg\" alt=\"Sharing is Caring\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSharing is Caring\u003c/strong\u003e\u003cbr\u003e\n    Upload a vehicle to the Workshop\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/2b3e0fa062b53744d5ceeee8a53e333c0749e044.jpg\" alt=\"Car Collector\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCar Collector\u003c/strong\u003e\u003cbr\u003e\n    Download and load in a vehicle from the Workshop\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/c251843b8d8c1bc53917222cf61ed565f5a4d656.jpg\" alt=\"Man in Black\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMan in Black\u003c/strong\u003e\u003cbr\u003e\n    Fly through all the rings of fire in Treasure Island one session\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/a4c738e92ac37e16c27ccacda87265ecd28f1744.jpg\" alt=\"Problem Solver\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eProblem Solver\u003c/strong\u003e\u003cbr\u003e\n    Complete all the ball puzzles on Treasure Island in one session\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/77fbc103e5f019efb74812b3b345ecdad5dc7f3d.jpg\" alt=\"Leonardo da Vinci\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLeonardo da Vinci\u003c/strong\u003e\u003cbr\u003e\n    Stay airborne in a zero Power Core vehicle for 60 seconds\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/99eec128ee373d66f050a18c548a68ec65caf511.jpg\" alt=\"El Capitan\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEl Capitan\u003c/strong\u003e\u003cbr\u003e\n    Reach the top of Danger Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/9f06cc86923ac211ca8533be6a1ab08624ebdc74.jpg\" alt=\"Treehugger\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTreehugger\u003c/strong\u003e\u003cbr\u003e\n    Hug the Tree on the Northeastern Island in Treasure Island\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/3e9f1ba2abd9d9cfb1192f0cb82f35b5fbd9e8d9.jpg\" alt=\"Pay your respect\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePay your respect\u003c/strong\u003e\u003cbr\u003e\n    Visit the monument on Treasure Island\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/585420/11d40cfba7148f61255caaeb723a9761de6cb49e.jpg\" alt=\"3-Pointer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e3-Pointer\u003c/strong\u003e\u003cbr\u003e\n    Shoot hoops on Danger Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Trailmakers - 31.82% complete with 7/22 achievements unlocked.",
      "date_published": "2026-01-03T00:00:00Z",
      "date_modified": "2026-01-03T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "trailmakers"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/dave-the-diver/",
      "url": "https://go.waylonwalker.com/steam/dave-the-diver/",
      "title": "DAVE THE DIVER",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/1868140/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/1868140/library_600x900.jpg\" alt=\"DAVE THE DIVER box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/1868140/header.jpg\u0026#39;\"/ data-glightbox=\"description: DAVE THE DIVER box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eDAVE THE DIVER\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 72.09%\"\u003e\n        72.09%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e31/43 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e87.6h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-12-31\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (31)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/bf957b96afe8080b9c70985fabd423aaab7f68e5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/bf957b96afe8080b9c70985fabd423aaab7f68e5.jpg\" alt=\"Bancho Sushi is Back!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bancho Sushi is Back!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBancho Sushi is Back!\u003c/strong\u003e\u003cbr/\u003e\n    Fixed the Sushi Restaurant.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 26, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/0b9ff64100024632b0bcecd6411f6d808ed10004.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/0b9ff64100024632b0bcecd6411f6d808ed10004.jpg\" alt=\"Undersea Gunslinger\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Undersea Gunslinger\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUndersea Gunslinger\u003c/strong\u003e\u003cbr/\u003e\n    Completed the gun tutorial.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 26, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/addff091e934e55061e4b47b4fe03bcde8510b37.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/addff091e934e55061e4b47b4fe03bcde8510b37.jpg\" alt=\"New Undersea Friend\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: New Undersea Friend\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNew Undersea Friend\u003c/strong\u003e\u003cbr/\u003e\n    Completed the Dolphin\u0026#39;s request.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 26, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/ca7addff950571594a2f9e6525e5020770861a7b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/ca7addff950571594a2f9e6525e5020770861a7b.jpg\" alt=\"Better Equipment\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Better Equipment\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBetter Equipment\u003c/strong\u003e\u003cbr/\u003e\n    Made first equipment upgrade.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 26, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/6dc4a365093f0c2c5765d1d1124c0af171c83434.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/6dc4a365093f0c2c5765d1d1124c0af171c83434.jpg\" alt=\"Undersea Civilization!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Undersea Civilization!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUndersea Civilization!\u003c/strong\u003e\u003cbr/\u003e\n    Discovered the under-sea village.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 07, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/af9556111e49643a0bec59c98999de6185dfad8e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/af9556111e49643a0bec59c98999de6185dfad8e.jpg\" alt=\"Deep-sea Diver\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Deep-sea Diver\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDeep-sea Diver\u003c/strong\u003e\u003cbr/\u003e\n    Entered the Deep Sea for the first time.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 28, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/9e5f15250dea7537781a9f92e43dbf95eaa5562f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/9e5f15250dea7537781a9f92e43dbf95eaa5562f.jpg\" alt=\"Culinary Researcher\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Culinary Researcher\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCulinary Researcher\u003c/strong\u003e\u003cbr/\u003e\n    Researched 5 new dishes\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 26, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/263d0b26dcb383112058e7ff850ca42dc2602363.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/263d0b26dcb383112058e7ff850ca42dc2602363.jpg\" alt=\"Culinary Master\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Culinary Master\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCulinary Master\u003c/strong\u003e\u003cbr/\u003e\n    Enhanced 5 dishes.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 26, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/eb1794085a31bb10c4016583cb441de1d241efeb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/eb1794085a31bb10c4016583cb441de1d241efeb.jpg\" alt=\"Shop\u0026#39;s Lookin\u0026#39; Good!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Shop\u0026#39;s Lookin\u0026#39; Good!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShop\u0026#39;s Lookin\u0026#39; Good!\u003c/strong\u003e\u003cbr/\u003e\n    Bought First Interior Item.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 16, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/c603cd299950257cab2817a8b46f8ed4afaca22c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/c603cd299950257cab2817a8b46f8ed4afaca22c.jpg\" alt=\"Influencer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Influencer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInfluencer\u003c/strong\u003e\u003cbr/\u003e\n    Reached Bronze Level in Cooksta.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 26, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/2d92cb0ba3f66fc9dc21a7ac9ed58349d4b5e55c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/2d92cb0ba3f66fc9dc21a7ac9ed58349d4b5e55c.jpg\" alt=\"Scrap Metal Collector\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Scrap Metal Collector\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eScrap Metal Collector\u003c/strong\u003e\u003cbr/\u003e\n    Picked up 100 items.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 26, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/9bc31610eed20b877510d3b3d9357a27e51ff156.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/9bc31610eed20b877510d3b3d9357a27e51ff156.jpg\" alt=\"Angry Shark!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Angry Shark!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAngry Shark!\u003c/strong\u003e\u003cbr/\u003e\n    Caught first shark.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 26, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/a7968b891304efbe1dcee32e5466c54fab36e6e7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/a7968b891304efbe1dcee32e5466c54fab36e6e7.jpg\" alt=\"Dave the Sniper\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Dave the Sniper\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDave the Sniper\u003c/strong\u003e\u003cbr/\u003e\n    Caught 10 fish with a Sniper Rifle.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 29, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/6e9475fb77bd7f534e1f6675f85bd4693c6a3c5e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/6e9475fb77bd7f534e1f6675f85bd4693c6a3c5e.jpg\" alt=\"Mister Melee\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mister Melee\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMister Melee\u003c/strong\u003e\u003cbr/\u003e\n    Caught 20 fish with melee weapons.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 26, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/9ae33e6c657f96d79658a52f0fed0b600a274c0c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/9ae33e6c657f96d79658a52f0fed0b600a274c0c.jpg\" alt=\"Saved Dave!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Saved Dave!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSaved Dave!\u003c/strong\u003e\u003cbr/\u003e\n    First time bringing Dave back from the brink of death.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 26, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/363037f87f31cf546c0a555fa31a21ab30cd91d5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/363037f87f31cf546c0a555fa31a21ab30cd91d5.jpg\" alt=\"A Dark and Cold Place\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Dark and Cold Place\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Dark and Cold Place\u003c/strong\u003e\u003cbr/\u003e\n    Discovered the Glacial Passage.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 12, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/c8c674640658834e60d8a6873ba018e21b2a11db.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/c8c674640658834e60d8a6873ba018e21b2a11db.jpg\" alt=\"Momo\u0026#39;s Secret\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Momo\u0026#39;s Secret\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMomo\u0026#39;s Secret\u003c/strong\u003e\u003cbr/\u003e\n    Got to know Momo a little better.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 12, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/b834db52fe4a4a99ce8935f785986952a34e1398.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/b834db52fe4a4a99ce8935f785986952a34e1398.jpg\" alt=\"Achoo!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Achoo!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAchoo!\u003c/strong\u003e\u003cbr/\u003e\n    Entered the Glacial Area for the first time.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 12, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/9cd26239cd243fa6251e4c460a6d15bbffb7bd72.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/9cd26239cd243fa6251e4c460a6d15bbffb7bd72.jpg\" alt=\"Dumplings in the Water\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Dumplings in the Water\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDumplings in the Water\u003c/strong\u003e\u003cbr/\u003e\n    Mima\u0026#39;s restaurant opened.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 12, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/59658289e96838501579b508d4097fdb18a25b04.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/59658289e96838501579b508d4097fdb18a25b04.jpg\" alt=\"The Seaweed is Growing!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Seaweed is Growing!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Seaweed is Growing!\u003c/strong\u003e\u003cbr/\u003e\n    Gumo\u0026#39;s seaweed farm opened.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 12, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/a1f794cfe5a8b1d4e3210e45a3b4915d45ab738f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/a1f794cfe5a8b1d4e3210e45a3b4915d45ab738f.jpg\" alt=\"Feeble Blacksmith\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Feeble Blacksmith\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFeeble Blacksmith\u003c/strong\u003e\u003cbr/\u003e\n    Duwa\u0026#39;s workshop opened.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 19, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/cdbf822f305639a34a5344ee6c33fdcc30fbf9c7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/cdbf822f305639a34a5344ee6c33fdcc30fbf9c7.jpg\" alt=\"Weapon Collector\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Weapon Collector\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWeapon Collector\u003c/strong\u003e\u003cbr/\u003e\n    Collected all the blueprints.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 19, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/d85dab3b3e760e6f1f66466606c0f3326c91f7fe.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/d85dab3b3e760e6f1f66466606c0f3326c91f7fe.jpg\" alt=\"Arms Craftsman\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Arms Craftsman\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArms Craftsman\u003c/strong\u003e\u003cbr/\u003e\n    Enhanced gun 3 times.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 16, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/61fcfab2cd7b22664724598b49ede83fc1306981.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/61fcfab2cd7b22664724598b49ede83fc1306981.jpg\" alt=\"Sea People Historian\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sea People Historian\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSea People Historian\u003c/strong\u003e\u003cbr/\u003e\n    Captured all of the Sea People murals.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 12, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/1e5f1577be02f1fd17a4615c7e0c32e14bd30dc1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/1e5f1577be02f1fd17a4615c7e0c32e14bd30dc1.jpg\" alt=\"Predator of the Blue Hole\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Predator of the Blue Hole\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePredator of the Blue Hole\u003c/strong\u003e\u003cbr/\u003e\n    Caught 300 fish.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 28, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/688157d5b6726e049132f90c4681c8e8ff8868d9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/688157d5b6726e049132f90c4681c8e8ff8868d9.jpg\" alt=\"Ration Eater\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ration Eater\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRation Eater\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 12, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/d35216333ba7d0dbf8fafec81a024a41ced0615a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/d35216333ba7d0dbf8fafec81a024a41ced0615a.jpg\" alt=\"Photographer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Photographer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePhotographer\u003c/strong\u003e\u003cbr/\u003e\n    Took 10 photos at Photo Spots.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 12, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/dcc7c5ec957180447b9b5bf8c2e4cd86bc570450.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/dcc7c5ec957180447b9b5bf8c2e4cd86bc570450.jpg\" alt=\"My Wonderful Rice Field!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: My Wonderful Rice Field!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMy Wonderful Rice Field!\u003c/strong\u003e\u003cbr/\u003e\n    Rice field expanded to maximum.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: February 09, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/fb978776153d3b2f9c41ecfed8b2e627ab5269f7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/fb978776153d3b2f9c41ecfed8b2e627ab5269f7.jpg\" alt=\"My Wonderful Field!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: My Wonderful Field!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMy Wonderful Field!\u003c/strong\u003e\u003cbr/\u003e\n    Vegetable farm expanded to maximum.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 12, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/7e77ba2d054b8de97c85e51c8c4ccb430b1c4e53.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/7e77ba2d054b8de97c85e51c8c4ccb430b1c4e53.jpg\" alt=\"A Bancho Sushi Regular\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Bancho Sushi Regular\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Bancho Sushi Regular\u003c/strong\u003e\u003cbr/\u003e\n    Achieved Platinum rank in Cooksta.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 20, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/16cf3ebdaf27e81b8866427f2667997d75255833.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/16cf3ebdaf27e81b8866427f2667997d75255833.jpg\" alt=\"Manager\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Manager\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eManager\u003c/strong\u003e\u003cbr/\u003e\n    Bancho Sushi formed a branch restaurant.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 14, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (12)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/c73bc40e9ded542889b4aa3bb0986c24ed25550c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/c73bc40e9ded542889b4aa3bb0986c24ed25550c.jpg\" alt=\"A Peaceful Blue Hole\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Peaceful Blue Hole\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Peaceful Blue Hole\u003c/strong\u003e\u003cbr/\u003e\n    Watched the ending credits.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/427881742579349e5b28275143b607ece3f9cc39.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/427881742579349e5b28275143b607ece3f9cc39.jpg\" alt=\"Catman\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Catman\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCatman\u003c/strong\u003e\u003cbr/\u003e\n    Fed cat 20 times.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/5111107f6efadfcc1e76eee1a14711c68b8c52e7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/5111107f6efadfcc1e76eee1a14711c68b8c52e7.jpg\" alt=\"Blacksmith Helper\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Blacksmith Helper\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlacksmith Helper\u003c/strong\u003e\u003cbr/\u003e\n    Sold 200 items at workshop.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/572f44ecf786909d92ed6647c0ba44b742b962d2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/572f44ecf786909d92ed6647c0ba44b742b962d2.jpg\" alt=\"Professional Farmer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Professional Farmer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eProfessional Farmer\u003c/strong\u003e\u003cbr/\u003e\n    Installed sprinklers in the garden.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/0cdef44a1f7332ea420a50b7597d1b64f6621615.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/0cdef44a1f7332ea420a50b7597d1b64f6621615.jpg\" alt=\"GYAO! Master\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: GYAO! Master\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGYAO! Master\u003c/strong\u003e\u003cbr/\u003e\n    Raised 5 GYAO!s.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/c5ced4d67345e718a71342017b075d690c97fb31.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/c5ced4d67345e718a71342017b075d690c97fb31.jpg\" alt=\"Strange Fish\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Strange Fish\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStrange Fish\u003c/strong\u003e\u003cbr/\u003e\n    Captured 5 FishMon.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/01ec2cd46238a2fa38b3514d1e4b33756cec258c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/01ec2cd46238a2fa38b3514d1e4b33756cec258c.jpg\" alt=\"Dev Killer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Dev Killer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDev Killer\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/c6d5ce68d6df402b7a0dc7feecea7e614ad5760c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/c6d5ce68d6df402b7a0dc7feecea7e614ad5760c.jpg\" alt=\"Creature Hunter\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Creature Hunter\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCreature Hunter\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/2c986ac920f5c8b7183b0963ccf66144a7eba493.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/2c986ac920f5c8b7183b0963ccf66144a7eba493.jpg\" alt=\"God of Lightning\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: God of Lightning\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGod of Lightning\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/ab4f776274f1b5e4bf397d301ad441eb3c04e628.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/ab4f776274f1b5e4bf397d301ad441eb3c04e628.jpg\" alt=\"Leadership\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Leadership\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLeadership\u003c/strong\u003e\u003cbr/\u003e\n    Trained an employee to level 20.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/af3f45cfb4949ab108fbbd3575b68c29efc74cd9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/af3f45cfb4949ab108fbbd3575b68c29efc74cd9.jpg\" alt=\"Cooksta Influencer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cooksta Influencer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCooksta Influencer\u003c/strong\u003e\u003cbr/\u003e\n    Achieved Diamond rank in Cooksta.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/1d944fe7dedb0ef01832a131c354b566e96b6bff.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/1d944fe7dedb0ef01832a131c354b566e96b6bff.jpg\" alt=\"Artisan\u0026#39;s Flame\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Artisan\u0026#39;s Flame\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArtisan\u0026#39;s Flame\u003c/strong\u003e\u003cbr/\u003e\n    Researched 30 new dishes.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/1868140/library_600x900.jpg\" alt=\"DAVE THE DIVER box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/1868140/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eDAVE THE DIVER\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 72.09%\"\u003e\n        72.09%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e31/43 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e87.6h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-12-31\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (31)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/bf957b96afe8080b9c70985fabd423aaab7f68e5.jpg\" alt=\"Bancho Sushi is Back!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBancho Sushi is Back!\u003c/strong\u003e\u003cbr\u003e\n    Fixed the Sushi Restaurant.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 26, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/0b9ff64100024632b0bcecd6411f6d808ed10004.jpg\" alt=\"Undersea Gunslinger\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUndersea Gunslinger\u003c/strong\u003e\u003cbr\u003e\n    Completed the gun tutorial.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 26, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/addff091e934e55061e4b47b4fe03bcde8510b37.jpg\" alt=\"New Undersea Friend\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNew Undersea Friend\u003c/strong\u003e\u003cbr\u003e\n    Completed the Dolphin's request.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 26, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/ca7addff950571594a2f9e6525e5020770861a7b.jpg\" alt=\"Better Equipment\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBetter Equipment\u003c/strong\u003e\u003cbr\u003e\n    Made first equipment upgrade.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 26, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/6dc4a365093f0c2c5765d1d1124c0af171c83434.jpg\" alt=\"Undersea Civilization!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUndersea Civilization!\u003c/strong\u003e\u003cbr\u003e\n    Discovered the under-sea village.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 07, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/af9556111e49643a0bec59c98999de6185dfad8e.jpg\" alt=\"Deep-sea Diver\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDeep-sea Diver\u003c/strong\u003e\u003cbr\u003e\n    Entered the Deep Sea for the first time.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 28, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/9e5f15250dea7537781a9f92e43dbf95eaa5562f.jpg\" alt=\"Culinary Researcher\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCulinary Researcher\u003c/strong\u003e\u003cbr\u003e\n    Researched 5 new dishes\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 26, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/263d0b26dcb383112058e7ff850ca42dc2602363.jpg\" alt=\"Culinary Master\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCulinary Master\u003c/strong\u003e\u003cbr\u003e\n    Enhanced 5 dishes.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 26, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/eb1794085a31bb10c4016583cb441de1d241efeb.jpg\" alt=\"Shop's Lookin' Good!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShop's Lookin' Good!\u003c/strong\u003e\u003cbr\u003e\n    Bought First Interior Item.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 16, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/c603cd299950257cab2817a8b46f8ed4afaca22c.jpg\" alt=\"Influencer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInfluencer\u003c/strong\u003e\u003cbr\u003e\n    Reached Bronze Level in Cooksta.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 26, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/2d92cb0ba3f66fc9dc21a7ac9ed58349d4b5e55c.jpg\" alt=\"Scrap Metal Collector\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eScrap Metal Collector\u003c/strong\u003e\u003cbr\u003e\n    Picked up 100 items.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 26, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/9bc31610eed20b877510d3b3d9357a27e51ff156.jpg\" alt=\"Angry Shark!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAngry Shark!\u003c/strong\u003e\u003cbr\u003e\n    Caught first shark.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 26, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/a7968b891304efbe1dcee32e5466c54fab36e6e7.jpg\" alt=\"Dave the Sniper\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDave the Sniper\u003c/strong\u003e\u003cbr\u003e\n    Caught 10 fish with a Sniper Rifle.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 29, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/6e9475fb77bd7f534e1f6675f85bd4693c6a3c5e.jpg\" alt=\"Mister Melee\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMister Melee\u003c/strong\u003e\u003cbr\u003e\n    Caught 20 fish with melee weapons.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 26, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/9ae33e6c657f96d79658a52f0fed0b600a274c0c.jpg\" alt=\"Saved Dave!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSaved Dave!\u003c/strong\u003e\u003cbr\u003e\n    First time bringing Dave back from the brink of death.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 26, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/363037f87f31cf546c0a555fa31a21ab30cd91d5.jpg\" alt=\"A Dark and Cold Place\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Dark and Cold Place\u003c/strong\u003e\u003cbr\u003e\n    Discovered the Glacial Passage.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 12, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/c8c674640658834e60d8a6873ba018e21b2a11db.jpg\" alt=\"Momo's Secret\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMomo's Secret\u003c/strong\u003e\u003cbr\u003e\n    Got to know Momo a little better.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 12, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/b834db52fe4a4a99ce8935f785986952a34e1398.jpg\" alt=\"Achoo!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAchoo!\u003c/strong\u003e\u003cbr\u003e\n    Entered the Glacial Area for the first time.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 12, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/9cd26239cd243fa6251e4c460a6d15bbffb7bd72.jpg\" alt=\"Dumplings in the Water\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDumplings in the Water\u003c/strong\u003e\u003cbr\u003e\n    Mima's restaurant opened.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 12, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/59658289e96838501579b508d4097fdb18a25b04.jpg\" alt=\"The Seaweed is Growing!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Seaweed is Growing!\u003c/strong\u003e\u003cbr\u003e\n    Gumo's seaweed farm opened.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 12, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/a1f794cfe5a8b1d4e3210e45a3b4915d45ab738f.jpg\" alt=\"Feeble Blacksmith\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFeeble Blacksmith\u003c/strong\u003e\u003cbr\u003e\n    Duwa's workshop opened.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 19, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/cdbf822f305639a34a5344ee6c33fdcc30fbf9c7.jpg\" alt=\"Weapon Collector\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWeapon Collector\u003c/strong\u003e\u003cbr\u003e\n    Collected all the blueprints.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 19, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/d85dab3b3e760e6f1f66466606c0f3326c91f7fe.jpg\" alt=\"Arms Craftsman\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArms Craftsman\u003c/strong\u003e\u003cbr\u003e\n    Enhanced gun 3 times.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 16, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/61fcfab2cd7b22664724598b49ede83fc1306981.jpg\" alt=\"Sea People Historian\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSea People Historian\u003c/strong\u003e\u003cbr\u003e\n    Captured all of the Sea People murals.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 12, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/1e5f1577be02f1fd17a4615c7e0c32e14bd30dc1.jpg\" alt=\"Predator of the Blue Hole\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePredator of the Blue Hole\u003c/strong\u003e\u003cbr\u003e\n    Caught 300 fish.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 28, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/688157d5b6726e049132f90c4681c8e8ff8868d9.jpg\" alt=\"Ration Eater\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRation Eater\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 12, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/d35216333ba7d0dbf8fafec81a024a41ced0615a.jpg\" alt=\"Photographer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePhotographer\u003c/strong\u003e\u003cbr\u003e\n    Took 10 photos at Photo Spots.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 12, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/dcc7c5ec957180447b9b5bf8c2e4cd86bc570450.jpg\" alt=\"My Wonderful Rice Field!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMy Wonderful Rice Field!\u003c/strong\u003e\u003cbr\u003e\n    Rice field expanded to maximum.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: February 09, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/fb978776153d3b2f9c41ecfed8b2e627ab5269f7.jpg\" alt=\"My Wonderful Field!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMy Wonderful Field!\u003c/strong\u003e\u003cbr\u003e\n    Vegetable farm expanded to maximum.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 12, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/7e77ba2d054b8de97c85e51c8c4ccb430b1c4e53.jpg\" alt=\"A Bancho Sushi Regular\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Bancho Sushi Regular\u003c/strong\u003e\u003cbr\u003e\n    Achieved Platinum rank in Cooksta.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 20, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/16cf3ebdaf27e81b8866427f2667997d75255833.jpg\" alt=\"Manager\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eManager\u003c/strong\u003e\u003cbr\u003e\n    Bancho Sushi formed a branch restaurant.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 14, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (12)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/c73bc40e9ded542889b4aa3bb0986c24ed25550c.jpg\" alt=\"A Peaceful Blue Hole\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Peaceful Blue Hole\u003c/strong\u003e\u003cbr\u003e\n    Watched the ending credits.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/427881742579349e5b28275143b607ece3f9cc39.jpg\" alt=\"Catman\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCatman\u003c/strong\u003e\u003cbr\u003e\n    Fed cat 20 times.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/5111107f6efadfcc1e76eee1a14711c68b8c52e7.jpg\" alt=\"Blacksmith Helper\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlacksmith Helper\u003c/strong\u003e\u003cbr\u003e\n    Sold 200 items at workshop.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/572f44ecf786909d92ed6647c0ba44b742b962d2.jpg\" alt=\"Professional Farmer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eProfessional Farmer\u003c/strong\u003e\u003cbr\u003e\n    Installed sprinklers in the garden.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/0cdef44a1f7332ea420a50b7597d1b64f6621615.jpg\" alt=\"GYAO! Master\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGYAO! Master\u003c/strong\u003e\u003cbr\u003e\n    Raised 5 GYAO!s.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/c5ced4d67345e718a71342017b075d690c97fb31.jpg\" alt=\"Strange Fish\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStrange Fish\u003c/strong\u003e\u003cbr\u003e\n    Captured 5 FishMon.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/01ec2cd46238a2fa38b3514d1e4b33756cec258c.jpg\" alt=\"Dev Killer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDev Killer\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/c6d5ce68d6df402b7a0dc7feecea7e614ad5760c.jpg\" alt=\"Creature Hunter\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCreature Hunter\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/2c986ac920f5c8b7183b0963ccf66144a7eba493.jpg\" alt=\"God of Lightning\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGod of Lightning\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/ab4f776274f1b5e4bf397d301ad441eb3c04e628.jpg\" alt=\"Leadership\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLeadership\u003c/strong\u003e\u003cbr\u003e\n    Trained an employee to level 20.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/af3f45cfb4949ab108fbbd3575b68c29efc74cd9.jpg\" alt=\"Cooksta Influencer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCooksta Influencer\u003c/strong\u003e\u003cbr\u003e\n    Achieved Diamond rank in Cooksta.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1868140/1d944fe7dedb0ef01832a131c354b566e96b6bff.jpg\" alt=\"Artisan's Flame\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArtisan's Flame\u003c/strong\u003e\u003cbr\u003e\n    Researched 30 new dishes.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for DAVE THE DIVER - 72.09% complete with 31/43 achievements unlocked.",
      "date_published": "2025-12-31T00:00:00Z",
      "date_modified": "2025-12-31T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "dave-the-diver"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/terraria/",
      "url": "https://go.waylonwalker.com/steam/terraria/",
      "title": "Terraria",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/105600/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/105600/library_600x900.jpg\" alt=\"Terraria box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/105600/header.jpg\u0026#39;\"/ data-glightbox=\"description: Terraria box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eTerraria\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 81.74%\"\u003e\n        81.74%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e94/115 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e1175.6h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-12-25\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (94)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/0fbb33098c9da39d1d4771d8209afface9c46e81.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/0fbb33098c9da39d1d4771d8209afface9c46e81.jpg\" alt=\"Timber!!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Timber!!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTimber!!\u003c/strong\u003e\u003cbr/\u003e\n    Chop down your first tree.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 04, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/65bbc5ea6a030b963d9a06e5e1b315c3872837a3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/65bbc5ea6a030b963d9a06e5e1b315c3872837a3.jpg\" alt=\"No Hobo\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: No Hobo\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNo Hobo\u003c/strong\u003e\u003cbr/\u003e\n    Build a house suitable enough for your first town NPC, such as the guide, to move into.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 08, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/4760436e9973519098bb2cc419339d24e56af139.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/4760436e9973519098bb2cc419339d24e56af139.jpg\" alt=\"Stop! Hammer Time!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Stop! Hammer Time!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStop! Hammer Time!\u003c/strong\u003e\u003cbr/\u003e\n    Obtain your first hammer via crafting or otherwise.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 04, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/57b929ffd1a732ffc49abc6c53387e08bac4cbbb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/57b929ffd1a732ffc49abc6c53387e08bac4cbbb.jpg\" alt=\"Ooo! Shiny!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ooo! Shiny!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOoo! Shiny!\u003c/strong\u003e\u003cbr/\u003e\n    Mine your first nugget of ore with a pickaxe.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 05, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/8243e4a0f7f803cd06cf37d64d11e04697afe30c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/8243e4a0f7f803cd06cf37d64d11e04697afe30c.jpg\" alt=\"Heart Breaker\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Heart Breaker\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHeart Breaker\u003c/strong\u003e\u003cbr/\u003e\n    Discover and smash your first heart crystal underground.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 08, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/f727271437793b278c809a067fa2334ea2846f34.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/f727271437793b278c809a067fa2334ea2846f34.jpg\" alt=\"Heavy Metal\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Heavy Metal\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHeavy Metal\u003c/strong\u003e\u003cbr/\u003e\n    Obtain an anvil made from iron or lead.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 05, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/6705287adc42e2741d632c2d714424b2aa3e5716.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/6705287adc42e2741d632c2d714424b2aa3e5716.jpg\" alt=\"I Am Loot!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: I Am Loot!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI Am Loot!\u003c/strong\u003e\u003cbr/\u003e\n    Discover a golden chest underground and take a peek at its contents.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 07, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/738ca7765e32895918979d31d600d19254b14190.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/738ca7765e32895918979d31d600d19254b14190.jpg\" alt=\"Star Power\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Star Power\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStar Power\u003c/strong\u003e\u003cbr/\u003e\n    Craft a mana crystal out of fallen stars, and consume it.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 09, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/0e2a5e080563ce9c30cf3b45dd155d18640f0bf6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/0e2a5e080563ce9c30cf3b45dd155d18640f0bf6.jpg\" alt=\"Hold on Tight!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hold on Tight!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHold on Tight!\u003c/strong\u003e\u003cbr/\u003e\n    Equip your first grappling hook.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 06, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/b10b068163125e13444e2cdb145c1a200c7ad607.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/b10b068163125e13444e2cdb145c1a200c7ad607.jpg\" alt=\"Eye on You\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Eye on You\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEye on You\u003c/strong\u003e\u003cbr/\u003e\n    Defeat the Eye of Cthulhu, an ocular menace who only appears at night.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 07, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/7f9006b20f6615ef0e93c72cade8fb26c3818db7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/7f9006b20f6615ef0e93c72cade8fb26c3818db7.jpg\" alt=\"Smashing, Poppet!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Smashing, Poppet!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSmashing, Poppet!\u003c/strong\u003e\u003cbr/\u003e\n    Using explosives or your trusty hammer, smash a Shadow Orb or Crimson Heart in the evil parts of your world.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 07, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/624b8391794e2f02f067295d634d648d6cb0e4a9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/624b8391794e2f02f067295d634d648d6cb0e4a9.jpg\" alt=\"Worm Fodder\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Worm Fodder\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWorm Fodder\u003c/strong\u003e\u003cbr/\u003e\n    Defeat the Eater of Worlds, a massive worm whom dwells in the corruption.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 16, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/53b00566871f426e2e2a341de81b143c0fd1be9d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/53b00566871f426e2e2a341de81b143c0fd1be9d.jpg\" alt=\"Mastermind\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mastermind\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMastermind\u003c/strong\u003e\u003cbr/\u003e\n    Defeat the Brain of Cthulhu, an enourmous demon brain which haunts the creeping crimson.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 08, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/b4b56f2efddc04d7c234de521f58a9ee9e697327.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/b4b56f2efddc04d7c234de521f58a9ee9e697327.jpg\" alt=\"Where\u0026#39;s My Honey?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Where\u0026#39;s My Honey?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhere\u0026#39;s My Honey?\u003c/strong\u003e\u003cbr/\u003e\n    Discover a large bee\u0026#39;s hive deep in the jungle.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 11, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/a8ed027c602baf83e6f3d59ba074eec87b1dd2d7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/a8ed027c602baf83e6f3d59ba074eec87b1dd2d7.jpg\" alt=\"Sting Operation\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sting Operation\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSting Operation\u003c/strong\u003e\u003cbr/\u003e\n    Defeat the Queen Bee, the matriarch of the jungle hives.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 13, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/11b9d704b496f6586f952e93c2158d38dd169377.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/11b9d704b496f6586f952e93c2158d38dd169377.jpg\" alt=\"Boned\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Boned\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBoned\u003c/strong\u003e\u003cbr/\u003e\n    Defeat Skeletron, the cursed guardian of the dungeon.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 11, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/ba1daa2f08355bf11e2494b01db49f47fa4f43c7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/ba1daa2f08355bf11e2494b01db49f47fa4f43c7.jpg\" alt=\"Dungeon Heist\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Dungeon Heist\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDungeon Heist\u003c/strong\u003e\u003cbr/\u003e\n    Steal a key from the dungeon\u0026#39;s undead denizens, and unlock one of their precious golden chests.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 15, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/58efa6a9a0ae6a955c6a82874961b08c8e4def60.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/58efa6a9a0ae6a955c6a82874961b08c8e4def60.jpg\" alt=\"It\u0026#39;s Getting Hot in Here\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: It\u0026#39;s Getting Hot in Here\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt\u0026#39;s Getting Hot in Here\u003c/strong\u003e\u003cbr/\u003e\n    Spelunk deep enough to reach the molten underworld.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 14, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/bbb5c58dea957db42faaa276c697599f0354f06c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/bbb5c58dea957db42faaa276c697599f0354f06c.jpg\" alt=\"Miner for Fire\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Miner for Fire\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMiner for Fire\u003c/strong\u003e\u003cbr/\u003e\n    Craft a molten pickaxe using the hottest of materials.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 19, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/02ba42d3df19dc2cd81a6bf4ee29c7ce446e4360.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/02ba42d3df19dc2cd81a6bf4ee29c7ce446e4360.jpg\" alt=\"Still Hungry\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Still Hungry\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStill Hungry\u003c/strong\u003e\u003cbr/\u003e\n    Defeat the Wall of Flesh, the master and core of the world who arises after a great, burning sacrifice.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 20, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/dc65c66c704560c7a940fab6d5023490f7102fb3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/dc65c66c704560c7a940fab6d5023490f7102fb3.jpg\" alt=\"It\u0026#39;s Hard!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: It\u0026#39;s Hard!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt\u0026#39;s Hard!\u003c/strong\u003e\u003cbr/\u003e\n    Unleash the ancient spirits of light and darkness across your world, enabling much stronger foes and showering the world with dazzling treasures (and rainbows!).\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 20, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/c3917d676fc752415849de9f132549d05ba0ca4c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/c3917d676fc752415849de9f132549d05ba0ca4c.jpg\" alt=\"Begone, Evil!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Begone, Evil!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBegone, Evil!\u003c/strong\u003e\u003cbr/\u003e\n    Smash a demon or crimson altar with a powerful, holy hammer.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 20, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/9d573b4067856938a1c13c9c93f3dec66c0c3f72.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/9d573b4067856938a1c13c9c93f3dec66c0c3f72.jpg\" alt=\"Extra Shiny!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Extra Shiny!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExtra Shiny!\u003c/strong\u003e\u003cbr/\u003e\n    Mine a powerful ore that has been newly blessed upon your world.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 20, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/55cb91ab9841f538742277b897189ab19aaefc8b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/55cb91ab9841f538742277b897189ab19aaefc8b.jpg\" alt=\"Head in the Clouds\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Head in the Clouds\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHead in the Clouds\u003c/strong\u003e\u003cbr/\u003e\n    Equip a pair of wings.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 04, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/e5e0bffeb00c720091439eb8336fea7d77f147c5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/e5e0bffeb00c720091439eb8336fea7d77f147c5.jpg\" alt=\"Like a Boss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Like a Boss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLike a Boss\u003c/strong\u003e\u003cbr/\u003e\n    Obtain a boss-summoning item.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 07, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/27536dd7b5ee4de46b85be337d0c792d685b14f5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/27536dd7b5ee4de46b85be337d0c792d685b14f5.jpg\" alt=\"Buckets of Bolts\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Buckets of Bolts\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBuckets of Bolts\u003c/strong\u003e\u003cbr/\u003e\n    Defeat the three nocturnal mechanical menaces: the Twins, the Destroyer, and Skeletron Prime.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 30, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/d3955ec8610cc6a7229866780451467ab0e5c5a2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/d3955ec8610cc6a7229866780451467ab0e5c5a2.jpg\" alt=\"Drax Attax\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Drax Attax\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDrax Attax\u003c/strong\u003e\u003cbr/\u003e\n    Craft a drax or pickaxe axe using hallowed bars, and the souls of the three mechanical bosses.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 30, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/2a4c26b8eca5e09cabcd64a50b76115d2679796a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/2a4c26b8eca5e09cabcd64a50b76115d2679796a.jpg\" alt=\"Photosynthesis\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Photosynthesis\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePhotosynthesis\u003c/strong\u003e\u003cbr/\u003e\n    Mine chlorophyte, an organic ore found deep among the thickest of flora.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 04, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/e54172f81aaaac5bdabededcb8e52b8c2d2f7f8e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/e54172f81aaaac5bdabededcb8e52b8c2d2f7f8e.jpg\" alt=\"Get a Life\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Get a Life\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGet a Life\u003c/strong\u003e\u003cbr/\u003e\n    Consume a life fruit, which grows in the thick of subterranean jungle grass.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 30, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/4b52e1dd35f600a9f82f7958abe2a467d68351e7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/4b52e1dd35f600a9f82f7958abe2a467d68351e7.jpg\" alt=\"The Great Southern Plantkill\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Great Southern Plantkill\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Great Southern Plantkill\u003c/strong\u003e\u003cbr/\u003e\n    Defeat Plantera, the overgrown monstrosity of the jungle\u0026#39;s depths.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 01, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/cd11c08ea1a436e8156e1d3ebeccd1c9ba5cb22f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/cd11c08ea1a436e8156e1d3ebeccd1c9ba5cb22f.jpg\" alt=\"Temple Raider\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Temple Raider\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTemple Raider\u003c/strong\u003e\u003cbr/\u003e\n    Breach the impenetrable walls of the jungle temple.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 04, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/3d8a29010ed3e22203cb4f0d52167c88f9c91a5c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/3d8a29010ed3e22203cb4f0d52167c88f9c91a5c.jpg\" alt=\"Lihzahrdian Idol\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Lihzahrdian Idol\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLihzahrdian Idol\u003c/strong\u003e\u003cbr/\u003e\n    Defeat Golem, the stone-faced ritualistic idol of the lihzahrd tribe.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 05, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/45884dee9cec706f27db75fbe4567da42d235836.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/45884dee9cec706f27db75fbe4567da42d235836.jpg\" alt=\"Robbing the Grave\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Robbing the Grave\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRobbing the Grave\u003c/strong\u003e\u003cbr/\u003e\n    Obtain a rare treasure from a difficult monster in the dungeon.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 05, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/c7415e2bf7cbef15558b41c70bb1e306e5682e27.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/c7415e2bf7cbef15558b41c70bb1e306e5682e27.jpg\" alt=\"Big Booty\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Big Booty\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBig Booty\u003c/strong\u003e\u003cbr/\u003e\n    Unlock one of the dungeon\u0026#39;s large, mysterious chests with a special key.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 18, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/3efe3c4fcbfa43a355df16292f307232559fb3ec.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/3efe3c4fcbfa43a355df16292f307232559fb3ec.jpg\" alt=\"Fish Out of Water\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fish Out of Water\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFish Out of Water\u003c/strong\u003e\u003cbr/\u003e\n    Defeat Duke Fishron, mutant terror of the sea.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 08, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/b9436b13653d95dd441c8a96213e6a4dfbc6b72f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/b9436b13653d95dd441c8a96213e6a4dfbc6b72f.jpg\" alt=\"Obsessive Devotion\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Obsessive Devotion\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eObsessive Devotion\u003c/strong\u003e\u003cbr/\u003e\n    Defeat the Ancient Cultist, fanatical leader of the dungeon coven.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 05, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/da3155b9d24c435c244f7c099914586bac0b9853.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/da3155b9d24c435c244f7c099914586bac0b9853.jpg\" alt=\"Star Destroyer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Star Destroyer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStar Destroyer\u003c/strong\u003e\u003cbr/\u003e\n    Defeat the four celestial towers of the moon.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 06, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/c91f1b034b7ce14a89a377320eddaf29f18143f1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/c91f1b034b7ce14a89a377320eddaf29f18143f1.jpg\" alt=\"Champion of Terraria\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Champion of Terraria\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChampion of Terraria\u003c/strong\u003e\u003cbr/\u003e\n    Defeat the Moon Lord.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 06, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/ce64b32e5385e779e3c615b2f36a966f8cdf4405.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/ce64b32e5385e779e3c615b2f36a966f8cdf4405.jpg\" alt=\"Bloodbath\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bloodbath\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBloodbath\u003c/strong\u003e\u003cbr/\u003e\n    Survive a blood moon, a nocturnal event where the rivers run red and monsters swarm aplenty.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 09, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/839662b6bd88d0babf10cb9e7d5bafd9d89f3efc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/839662b6bd88d0babf10cb9e7d5bafd9d89f3efc.jpg\" alt=\"Slippery Shinobi\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Slippery Shinobi\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSlippery Shinobi\u003c/strong\u003e\u003cbr/\u003e\n    Defeat King Slime, the lord of all things slimy.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 18, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/984d8201f226319980b9a5f13b0a17455587d187.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/984d8201f226319980b9a5f13b0a17455587d187.jpg\" alt=\"Goblin Punter\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Goblin Punter\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGoblin Punter\u003c/strong\u003e\u003cbr/\u003e\n    Triumph over a goblin invasion, a ragtag regiment of crude, barbaric, pointy-eared warriors and their shadowflame sorcerers.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 12, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/ce10d46dae4218e320e2ae46188507aa39ddf12b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/ce10d46dae4218e320e2ae46188507aa39ddf12b.jpg\" alt=\"Walk the Plank\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Walk the Plank\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWalk the Plank\u003c/strong\u003e\u003cbr/\u003e\n    Triumph over a pirate invasion, a group of pillagers from the sea out for your booty... and your life!\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 26, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/b528155244502c33c5bf0b8d8cee3e08e9637216.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/b528155244502c33c5bf0b8d8cee3e08e9637216.jpg\" alt=\"Kill the Sun\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Kill the Sun\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKill the Sun\u003c/strong\u003e\u003cbr/\u003e\n    Survive a solar eclipse, a day darker than night filled with creatures of horror.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 29, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/f00bc8242a3fe3ba2c682ae50eaf9c9a14fe95be.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/f00bc8242a3fe3ba2c682ae50eaf9c9a14fe95be.jpg\" alt=\"Do You Want to Slay a Snowman?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Do You Want to Slay a Snowman?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDo You Want to Slay a Snowman?\u003c/strong\u003e\u003cbr/\u003e\n    Triumph over the frost legion, a festive family of maniacal snowman mobsters.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 22, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/c3e587ad5f2dea6f18e3b1dbda3ae258f70edf9c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/c3e587ad5f2dea6f18e3b1dbda3ae258f70edf9c.jpg\" alt=\"Tin-Foil Hatter\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tin-Foil Hatter\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTin-Foil Hatter\u003c/strong\u003e\u003cbr/\u003e\n    Triumph over a martian invasion, when beings from out of this world come to scramble your brains and probe you in uncomfortable places.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 10, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/86778a8e3b31dc11c21491bf0fb49364efa586aa.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/86778a8e3b31dc11c21491bf0fb49364efa586aa.jpg\" alt=\"Baleful Harvest\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Baleful Harvest\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBaleful Harvest\u003c/strong\u003e\u003cbr/\u003e\n    Reach the 15th wave of a pumpkin moon, where evil lurks among the autumn harvest.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 21, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/c8da134d01c965ca92dffdeba235f04174e0841e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/c8da134d01c965ca92dffdeba235f04174e0841e.jpg\" alt=\"Ice Scream\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ice Scream\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIce Scream\u003c/strong\u003e\u003cbr/\u003e\n    Reach the 15th wave of a frost moon, where the festive season quickly degrades into madness.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 21, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/d033499586f55832b7ca093fc07077c6d64dfb57.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/d033499586f55832b7ca093fc07077c6d64dfb57.jpg\" alt=\"Sticky Situation\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sticky Situation\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSticky Situation\u003c/strong\u003e\u003cbr/\u003e\n    Survive the slime rain, where gelatinous organisms fall from the sky in droves.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 14, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/03d53ce253896b4ca711a08fd8dee0f6cb557cad.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/03d53ce253896b4ca711a08fd8dee0f6cb557cad.jpg\" alt=\"Not the Bees!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Not the Bees!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNot the Bees!\u003c/strong\u003e\u003cbr/\u003e\n    Fire a Bee Gun while wearing a full set of Bee Armor.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 12, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/d9aeb5789d29be12161f43cb7a6a6e7afb045116.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/d9aeb5789d29be12161f43cb7a6a6e7afb045116.jpg\" alt=\"Jeepers Creepers\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Jeepers Creepers\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJeepers Creepers\u003c/strong\u003e\u003cbr/\u003e\n    Stumble into a spider cavern in the underground.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 14, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/2f0d702bad1430791b379ff1735f6bf2ba7e9eb1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/2f0d702bad1430791b379ff1735f6bf2ba7e9eb1.jpg\" alt=\"Funkytown\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Funkytown\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFunkytown\u003c/strong\u003e\u003cbr/\u003e\n    Build or encounter a glowing mushroom field above the surface.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/db6d01c34f6ad734293be8ce9d587e9d0b5faf51.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/db6d01c34f6ad734293be8ce9d587e9d0b5faf51.jpg\" alt=\"Into Orbit\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Into Orbit\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInto Orbit\u003c/strong\u003e\u003cbr/\u003e\n    You can only go down from here!\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 18, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/ef421de200597d9553957957bb16b1504a25c752.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/ef421de200597d9553957957bb16b1504a25c752.jpg\" alt=\"Rock Bottom\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Rock Bottom\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRock Bottom\u003c/strong\u003e\u003cbr/\u003e\n    The only way is up!\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 14, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/d8d3d50b2216d47c33e307972056d8fd8471d54e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/d8d3d50b2216d47c33e307972056d8fd8471d54e.jpg\" alt=\"Mecha Mayhem\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mecha Mayhem\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMecha Mayhem\u003c/strong\u003e\u003cbr/\u003e\n    Do battle against the Twins, the Destroyer, and Skeletron Prime simultaneously and emerge victorious.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 24, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/7528c2a19d58be44828e538579f2c422b35537f5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/7528c2a19d58be44828e538579f2c422b35537f5.jpg\" alt=\"Gelatin World Tour\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Gelatin World Tour\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGelatin World Tour\u003c/strong\u003e\u003cbr/\u003e\n    Defeat every type of slime there is!\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 12, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/a21ac001c8eb0eece9a498b094d5c1f8e121727a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/a21ac001c8eb0eece9a498b094d5c1f8e121727a.jpg\" alt=\"Fashion Statement\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fashion Statement\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFashion Statement\u003c/strong\u003e\u003cbr/\u003e\n    Equip armor or vanity clothing in all three social slots.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 05, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/a959913d98f2195136a4c8acd11b98281e2109e4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/a959913d98f2195136a4c8acd11b98281e2109e4.jpg\" alt=\"Vehicular Manslaughter\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Vehicular Manslaughter\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVehicular Manslaughter\u003c/strong\u003e\u003cbr/\u003e\n    Defeat an enemy by running it over with a minecart.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 07, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/c57a4c06ecbc2ec8fe5af0b1d4cb8cbfe8821a10.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/c57a4c06ecbc2ec8fe5af0b1d4cb8cbfe8821a10.jpg\" alt=\"Bulldozer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bulldozer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBulldozer\u003c/strong\u003e\u003cbr/\u003e\n    Destroy a total of 10,000 tiles.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 24, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/472bdbff627e1e346f0cff906bc698abde36f9c0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/472bdbff627e1e346f0cff906bc698abde36f9c0.jpg\" alt=\"There are Some Who Call Him...\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: There are Some Who Call Him...\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThere are Some Who Call Him...\u003c/strong\u003e\u003cbr/\u003e\n    Kill Tim.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 19, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/5a07dc5b30fe19e1675d03b89ef2cdd1856d6157.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/5a07dc5b30fe19e1675d03b89ef2cdd1856d6157.jpg\" alt=\"Deceiver of Fools\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Deceiver of Fools\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDeceiver of Fools\u003c/strong\u003e\u003cbr/\u003e\n    Kill a nymph.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 14, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/4256db7a8c24e4bfa312b6768d1af19873883b02.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/4256db7a8c24e4bfa312b6768d1af19873883b02.jpg\" alt=\"Sword of the Hero\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sword of the Hero\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSword of the Hero\u003c/strong\u003e\u003cbr/\u003e\n    Obtain a Terra Blade, forged from the finest blades of light and darkness.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 21, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/8fe7fc557c8573f9bf353c82387dd18c4f20c9ab.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/8fe7fc557c8573f9bf353c82387dd18c4f20c9ab.jpg\" alt=\"Lucky Break\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Lucky Break\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLucky Break\u003c/strong\u003e\u003cbr/\u003e\n    Survive a long fall with just a sliver of health remaining.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 16, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/efd06080d5ca93192d2c1dda6e9cf92b424e461e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/efd06080d5ca93192d2c1dda6e9cf92b424e461e.jpg\" alt=\"Throwing Lines\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Throwing Lines\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThrowing Lines\u003c/strong\u003e\u003cbr/\u003e\n    Throw a yoyo.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 07, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/1aa1fffcccddc0cf50f4da93914ad18e59e92c23.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/1aa1fffcccddc0cf50f4da93914ad18e59e92c23.jpg\" alt=\"Dye Hard\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Dye Hard\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDye Hard\u003c/strong\u003e\u003cbr/\u003e\n    Equip a dye in every possible dye slot.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 17, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/7cf7f0f0a17e1bfdb864857698458a548454f944.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/7cf7f0f0a17e1bfdb864857698458a548454f944.jpg\" alt=\"Sick Throw\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sick Throw\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSick Throw\u003c/strong\u003e\u003cbr/\u003e\n    Obtain the Terrarian.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 21, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/af50c3b5549094e0f99d20f04ff6ed4e5fda6889.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/af50c3b5549094e0f99d20f04ff6ed4e5fda6889.jpg\" alt=\"The Frequent Flyer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Frequent Flyer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Frequent Flyer\u003c/strong\u003e\u003cbr/\u003e\n    Spend over 1 gold being treated by the nurse.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 24, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/da6e31f8c70f22252c7d5c7ec6882093499146f9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/da6e31f8c70f22252c7d5c7ec6882093499146f9.jpg\" alt=\"The Cavalry\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Cavalry\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Cavalry\u003c/strong\u003e\u003cbr/\u003e\n    Equip a mount.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 20, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/8ae7da8ea8eb7fd920f499fb762e7efb24fae8fc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/8ae7da8ea8eb7fd920f499fb762e7efb24fae8fc.jpg\" alt=\"Completely Awesome\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Completely Awesome\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompletely Awesome\u003c/strong\u003e\u003cbr/\u003e\n    Obtain a minishark.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 28, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/67c95d83892c06d5d3cfb9070e0260da72500d4a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/67c95d83892c06d5d3cfb9070e0260da72500d4a.jpg\" alt=\"Til Death...\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Til Death...\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTil Death...\u003c/strong\u003e\u003cbr/\u003e\n    Kill the groom.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 06, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/3060f4ae13f56fbb3f78e36371aaa039f4b2c9bf.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/3060f4ae13f56fbb3f78e36371aaa039f4b2c9bf.jpg\" alt=\"Archaeologist\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Archaeologist\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArchaeologist\u003c/strong\u003e\u003cbr/\u003e\n    Kill Doctor Bones.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 23, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/f00eae3408364653eefe9a6e9283a1610ae8643b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/f00eae3408364653eefe9a6e9283a1610ae8643b.jpg\" alt=\"Pretty in Pink\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Pretty in Pink\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePretty in Pink\u003c/strong\u003e\u003cbr/\u003e\n    Kill pinky.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 18, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/6c21f8ead465f9cd90c7b4d936239467c334bd5c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/6c21f8ead465f9cd90c7b4d936239467c334bd5c.jpg\" alt=\"Prismancer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Prismancer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePrismancer\u003c/strong\u003e\u003cbr/\u003e\n    Obtain a rainbow rod.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 28, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/5bcc7dd72c781448be7f89fab335d7c789defc92.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/5bcc7dd72c781448be7f89fab335d7c789defc92.jpg\" alt=\"It Can Talk?!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: It Can Talk?!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt Can Talk?!\u003c/strong\u003e\u003cbr/\u003e\n    Build a house in a mushroom biome and have the Truffle move in.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/280b95017555560b63ea0a44dbdb3a38e86cd7cd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/280b95017555560b63ea0a44dbdb3a38e86cd7cd.jpg\" alt=\"Watch Your Step!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Watch Your Step!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWatch Your Step!\u003c/strong\u003e\u003cbr/\u003e\n    Become a victim to a nasty underground trap.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 19, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/c624a2f9b28c26d804f22337d4c46efffc2d4563.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/c624a2f9b28c26d804f22337d4c46efffc2d4563.jpg\" alt=\"Marathon Medalist\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Marathon Medalist\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMarathon Medalist\u003c/strong\u003e\u003cbr/\u003e\n    Travel a total of 26.2 miles on foot.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 11, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/6fafd5617f5f2c23a0ffeefc2799d2fbb5a7c801.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/6fafd5617f5f2c23a0ffeefc2799d2fbb5a7c801.jpg\" alt=\"Topped Off\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Topped Off\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTopped Off\u003c/strong\u003e\u003cbr/\u003e\n    Attain maximum health and mana possible without accessories or buffs.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 23, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/98a47ac6d34f74f0f4d8651a929701bd2aa4ae42.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/98a47ac6d34f74f0f4d8651a929701bd2aa4ae42.jpg\" alt=\"Slayer of Worlds\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Slayer of Worlds\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSlayer of Worlds\u003c/strong\u003e\u003cbr/\u003e\n    Defeat every boss in Terraria.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 06, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/6a5b944787cc9f1dab1dd661e409ce97996d412b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/6a5b944787cc9f1dab1dd661e409ce97996d412b.jpg\" alt=\"You Can Do It!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: You Can Do It!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou Can Do It!\u003c/strong\u003e\u003cbr/\u003e\n    Survive your character\u0026#39;s first full night.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 05, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/4982fd3ed36214f5c68280e4502a48f6a2e857cc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/4982fd3ed36214f5c68280e4502a48f6a2e857cc.jpg\" alt=\"Matching Attire\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Matching Attire\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMatching Attire\u003c/strong\u003e\u003cbr/\u003e\n    Equip armor in all three armor slots: head, chest, and feet.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 06, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/e76f23d7116ce2a3ddb73611a58207094f2fed35.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/e76f23d7116ce2a3ddb73611a58207094f2fed35.jpg\" alt=\"Benched\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Benched\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBenched\u003c/strong\u003e\u003cbr/\u003e\n    Craft your first work bench.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 04, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/ae620dba9905fffad026095e82548c0cddb31b94.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/ae620dba9905fffad026095e82548c0cddb31b94.jpg\" alt=\"Fae Flayer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fae Flayer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFae Flayer\u003c/strong\u003e\u003cbr/\u003e\n    Defeat the Empress of Light, responsible for all those flashy lights and glitter.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 16, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/6091aa5a41f25af23b6c408d9669bc0bb8aa067b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/6091aa5a41f25af23b6c408d9669bc0bb8aa067b.jpg\" alt=\"Just Desserts\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Just Desserts\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJust Desserts\u003c/strong\u003e\u003cbr/\u003e\n    Defeat Queen Slime, giving the coup-de-grace to the sovereign of all that jiggles.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 01, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/f36753b1fe186f04edf1a7ae791b85f70b07302b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/f36753b1fe186f04edf1a7ae791b85f70b07302b.jpg\" alt=\"Don\u0026#39;t Dread on Me\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Don\u0026#39;t Dread on Me\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDon\u0026#39;t Dread on Me\u003c/strong\u003e\u003cbr/\u003e\n    Defeat the Dreadnautilus, murderous mollusk lurking beneath the surface of the sanguine seas.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 01, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/ad65c49e080605670ce5dee3e94c5863e5dcdb76.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/ad65c49e080605670ce5dee3e94c5863e5dcdb76.jpg\" alt=\"Infinity +1 Sword\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Infinity +1 Sword\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInfinity +1 Sword\u003c/strong\u003e\u003cbr/\u003e\n    Obtain the Zenith, the culmination of a journey forged into the ultimate sword.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 22, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/fb4a164d117f4e02e2e84b0803d25f5c39a147ba.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/fb4a164d117f4e02e2e84b0803d25f5c39a147ba.jpg\" alt=\"A Rather Blustery Day\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Rather Blustery Day\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Rather Blustery Day\u003c/strong\u003e\u003cbr/\u003e\n    Fly a kite on a windy day.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 29, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/a3e4fc9470751bf2eec49a0d9fc3409a110328ec.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/a3e4fc9470751bf2eec49a0d9fc3409a110328ec.jpg\" alt=\"Quiet Neighborhood\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Quiet Neighborhood\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eQuiet Neighborhood\u003c/strong\u003e\u003cbr/\u003e\n    Enter a misty graveyard filled with the surly dead.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 20, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/0d7088cea84ce1cdbb400285318dd138ffac3a21.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/0d7088cea84ce1cdbb400285318dd138ffac3a21.jpg\" alt=\"Heliophobia\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Heliophobia\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHeliophobia\u003c/strong\u003e\u003cbr/\u003e\n    Trick a gnome into turning into stone!\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 05, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/89ae5fc62de83ed0c5b472dba2434a2f91940bd1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/89ae5fc62de83ed0c5b472dba2434a2f91940bd1.jpg\" alt=\"Feeling Petty\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Feeling Petty\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFeeling Petty\u003c/strong\u003e\u003cbr/\u003e\n    Deliver headpats to the town pet.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 09, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/98424268ca1fe5748753b891affa4c20c4ab5147.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/98424268ca1fe5748753b891affa4c20c4ab5147.jpg\" alt=\"Hey! Listen!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hey! Listen!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHey! Listen!\u003c/strong\u003e\u003cbr/\u003e\n    Encounter a fairy.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 09, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/9f723603a35018b1701fd21a222ee26a60ca845c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/9f723603a35018b1701fd21a222ee26a60ca845c.jpg\" alt=\"Jolly Jamboree\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Jolly Jamboree\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJolly Jamboree\u003c/strong\u003e\u003cbr/\u003e\n    What you\u0026#39;re celebrating doesn\u0026#39;t matter, just throw a party already!\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/0dfe1e75f8432cd357cefa8190a11693a2786dc0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/0dfe1e75f8432cd357cefa8190a11693a2786dc0.jpg\" alt=\"Dead Men Tell No Tales\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Dead Men Tell No Tales\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDead Men Tell No Tales\u003c/strong\u003e\u003cbr/\u003e\n    You were so preoccupied with whether or not you could open the chest that you didn\u0026#39;t stop to think if you should.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 19, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/8bbfcf168e0034054d479a72d30e2fe36354f2cc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/8bbfcf168e0034054d479a72d30e2fe36354f2cc.jpg\" alt=\"An Eye For An Eye\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: An Eye For An Eye\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAn Eye For An Eye\u003c/strong\u003e\u003cbr/\u003e\n    Defeat Deerclops, the chilly one-eyed monstrosity from a foreign land.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 05, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/ee1bf7006604da48b973c5d793c9b13b68ea7b63.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/ee1bf7006604da48b973c5d793c9b13b68ea7b63.jpg\" alt=\"A Rare Realm\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Rare Realm\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Rare Realm\u003c/strong\u003e\u003cbr/\u003e\n    Some very special seeds can lead to unique and rewarding experiences. Can you find one?\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 29, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/2e8221bd7bc11ac180bf2949a1a57bb5649b8cce.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/2e8221bd7bc11ac180bf2949a1a57bb5649b8cce.jpg\" alt=\"A Shimmer In The Dark\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Shimmer In The Dark\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Shimmer In The Dark\u003c/strong\u003e\u003cbr/\u003e\n    Shimmer an item into another item. What other transmutations can you find?\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 06, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (21)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/05dce04e306a30efc50c2a5a675f6e9f99adbddb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/05dce04e306a30efc50c2a5a675f6e9f99adbddb.jpg\" alt=\"Real Estate Agent\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Real Estate Agent\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eReal Estate Agent\u003c/strong\u003e\u003cbr/\u003e\n    Have all possible town NPCs living in your world.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/d288ddb53b518ea47d072c8c6be5c7d73fcba69e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/d288ddb53b518ea47d072c8c6be5c7d73fcba69e.jpg\" alt=\"Rainbows and Unicorns\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Rainbows and Unicorns\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRainbows and Unicorns\u003c/strong\u003e\u003cbr/\u003e\n    Fire a rainbow gun while riding on a unicorn.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/3720f2cb46ac0ae9474d4bf7de094eb2d28d9080.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/3720f2cb46ac0ae9474d4bf7de094eb2d28d9080.jpg\" alt=\"You and What Army?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: You and What Army?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou and What Army?\u003c/strong\u003e\u003cbr/\u003e\n    Command nine summoned minions simultaneously.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/4cc5ff3420fe0900910bee9255ae62c97842c837.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/4cc5ff3420fe0900910bee9255ae62c97842c837.jpg\" alt=\"Glorious Golden Pole\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Glorious Golden Pole\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGlorious Golden Pole\u003c/strong\u003e\u003cbr/\u003e\n    Obtain a golden fishing rod.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/561d73948b4fed4061d48672303ed04cd1fb6d82.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/561d73948b4fed4061d48672303ed04cd1fb6d82.jpg\" alt=\"Servant-in-Training\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Servant-in-Training\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eServant-in-Training\u003c/strong\u003e\u003cbr/\u003e\n    Complete your 1st quest for the angler.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/dff9d0c485bfaca3b75b6d72ea8683882742b71b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/dff9d0c485bfaca3b75b6d72ea8683882742b71b.jpg\" alt=\"Good Little Slave\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Good Little Slave\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGood Little Slave\u003c/strong\u003e\u003cbr/\u003e\n    Complete your 10th quest for the angler.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/22bcf25b747e1f047a55c0f4f9417e0bf5e1854c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/22bcf25b747e1f047a55c0f4f9417e0bf5e1854c.jpg\" alt=\"Trout Monkey\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Trout Monkey\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTrout Monkey\u003c/strong\u003e\u003cbr/\u003e\n    Complete your 25th quest for the angler.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/e656b806588daf3eaf8266485f104257b11be802.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/e656b806588daf3eaf8266485f104257b11be802.jpg\" alt=\"Fast and Fishious\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fast and Fishious\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFast and Fishious\u003c/strong\u003e\u003cbr/\u003e\n    Complete your 50th quest for the angler.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/0a6ff6a36670c96ceb4d30cf6fd69d2fdf55f38e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/0a6ff6a36670c96ceb4d30cf6fd69d2fdf55f38e.jpg\" alt=\"Supreme Helper Minion!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Supreme Helper Minion!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSupreme Helper Minion!\u003c/strong\u003e\u003cbr/\u003e\n    Complete a grand total of 200 quests for the angler.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/7df01b8161f74f4955b862736c0b5b8bcf045d23.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/7df01b8161f74f4955b862736c0b5b8bcf045d23.jpg\" alt=\"Hero of Etheria\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hero of Etheria\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHero of Etheria\u003c/strong\u003e\u003cbr/\u003e\n    Repel the strongest forces the Old One\u0026#39;s Army can muster.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/2578c03ef18818fb5e417cd1bcd1a5cffafcc30e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/2578c03ef18818fb5e417cd1bcd1a5cffafcc30e.jpg\" alt=\"Boots of the Hero\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Boots of the Hero\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBoots of the Hero\u003c/strong\u003e\u003cbr/\u003e\n    Obtain the Terraspark Boots, forged from the finest boots of fire and ice.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/857e2df684ca7b638f1fea5d20a075a6610b7cc6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/857e2df684ca7b638f1fea5d20a075a6610b7cc6.jpg\" alt=\"Hot Reels!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hot Reels!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHot Reels!\u003c/strong\u003e\u003cbr/\u003e\n    Drop a lure in a pool of lava for a pre-fried haul!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/350b6b619fe3ea6c65afba12e9d652573a9b6251.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/350b6b619fe3ea6c65afba12e9d652573a9b6251.jpg\" alt=\"Leading Landlord\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Leading Landlord\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLeading Landlord\u003c/strong\u003e\u003cbr/\u003e\n    Meet with a tenant who\u0026#39;s as happy as they possibly can be!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/2d10311274fe7c92ab25cc29afdca86b019ad472.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/2d10311274fe7c92ab25cc29afdca86b019ad472.jpg\" alt=\"Feast of Midas\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Feast of Midas\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFeast of Midas\u003c/strong\u003e\u003cbr/\u003e\n    Obtain Golden Delight, the highest quality meal made from the highest quality . . . ingredients.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/321621992dd22a16a4e42203092ce24ac6847c34.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/321621992dd22a16a4e42203092ce24ac6847c34.jpg\" alt=\"Unusual Survival Strategies\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Unusual Survival Strategies\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUnusual Survival Strategies\u003c/strong\u003e\u003cbr/\u003e\n    Delay death from drowning by drinking water. It doesn\u0026#39;t make much sense, but you did what you had to do.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/aeb444fb0c6190dc87a8a788fff84172610a8a2a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/aeb444fb0c6190dc87a8a788fff84172610a8a2a.jpg\" alt=\"Black Mirror\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Black Mirror\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlack Mirror\u003c/strong\u003e\u003cbr/\u003e\n    Obtain the Cell Phone. You\u0026#39;ll never leave home without it again.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/e811c3b4e59fa637cb76b1cfd83eaa9cb30e88d6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/e811c3b4e59fa637cb76b1cfd83eaa9cb30e88d6.jpg\" alt=\"Ankhumulation Complete\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ankhumulation Complete\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAnkhumulation Complete\u003c/strong\u003e\u003cbr/\u003e\n    Obtain the Ankh Shield, the finest protection from unpleasant maladies and ailments.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/2d90ca6d4475fb2103f5c9d8c6b469f81652a809.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/2d90ca6d4475fb2103f5c9d8c6b469f81652a809.jpg\" alt=\"Torch God\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Torch God\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTorch God\u003c/strong\u003e\u003cbr/\u003e\n    Invoked the wrath of the God of Torches, and survived long enough to earn its blessing.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/8b9fbdfdccd4e0f81b305e6fc5d39aeacf2dbe38.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/8b9fbdfdccd4e0f81b305e6fc5d39aeacf2dbe38.jpg\" alt=\"The Great Slime Mitosis\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Great Slime Mitosis\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Great Slime Mitosis\u003c/strong\u003e\u003cbr/\u003e\n    Find all of the Slime Pets and have them move in!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/36dddfdca36de597b925b8000c709207db645eb8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/36dddfdca36de597b925b8000c709207db645eb8.jpg\" alt=\"And Good Riddance!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: And Good Riddance!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAnd Good Riddance!\u003c/strong\u003e\u003cbr/\u003e\n    Completely purify all Corruption, Crimson, and Hallow from your world, until the Dryad is satisfied!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/a23ee25dc5f993fe57f45f09a42b7ea20cf569fd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/a23ee25dc5f993fe57f45f09a42b7ea20cf569fd.jpg\" alt=\"To Infinity... and Beyond!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: To Infinity... and Beyond!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTo Infinity... and Beyond!\u003c/strong\u003e\u003cbr/\u003e\n    Fly a Kwad Racer into outer space.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/105600/library_600x900.jpg\" alt=\"Terraria box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/105600/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eTerraria\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 81.74%\"\u003e\n        81.74%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e94/115 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e1175.6h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-12-25\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (94)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/0fbb33098c9da39d1d4771d8209afface9c46e81.jpg\" alt=\"Timber!!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTimber!!\u003c/strong\u003e\u003cbr\u003e\n    Chop down your first tree.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 04, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/65bbc5ea6a030b963d9a06e5e1b315c3872837a3.jpg\" alt=\"No Hobo\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNo Hobo\u003c/strong\u003e\u003cbr\u003e\n    Build a house suitable enough for your first town NPC, such as the guide, to move into.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 08, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/4760436e9973519098bb2cc419339d24e56af139.jpg\" alt=\"Stop! Hammer Time!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStop! Hammer Time!\u003c/strong\u003e\u003cbr\u003e\n    Obtain your first hammer via crafting or otherwise.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 04, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/57b929ffd1a732ffc49abc6c53387e08bac4cbbb.jpg\" alt=\"Ooo! Shiny!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOoo! Shiny!\u003c/strong\u003e\u003cbr\u003e\n    Mine your first nugget of ore with a pickaxe.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 05, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/8243e4a0f7f803cd06cf37d64d11e04697afe30c.jpg\" alt=\"Heart Breaker\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHeart Breaker\u003c/strong\u003e\u003cbr\u003e\n    Discover and smash your first heart crystal underground.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 08, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/f727271437793b278c809a067fa2334ea2846f34.jpg\" alt=\"Heavy Metal\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHeavy Metal\u003c/strong\u003e\u003cbr\u003e\n    Obtain an anvil made from iron or lead.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 05, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/6705287adc42e2741d632c2d714424b2aa3e5716.jpg\" alt=\"I Am Loot!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI Am Loot!\u003c/strong\u003e\u003cbr\u003e\n    Discover a golden chest underground and take a peek at its contents.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 07, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/738ca7765e32895918979d31d600d19254b14190.jpg\" alt=\"Star Power\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStar Power\u003c/strong\u003e\u003cbr\u003e\n    Craft a mana crystal out of fallen stars, and consume it.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 09, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/0e2a5e080563ce9c30cf3b45dd155d18640f0bf6.jpg\" alt=\"Hold on Tight!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHold on Tight!\u003c/strong\u003e\u003cbr\u003e\n    Equip your first grappling hook.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 06, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/b10b068163125e13444e2cdb145c1a200c7ad607.jpg\" alt=\"Eye on You\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEye on You\u003c/strong\u003e\u003cbr\u003e\n    Defeat the Eye of Cthulhu, an ocular menace who only appears at night.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 07, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/7f9006b20f6615ef0e93c72cade8fb26c3818db7.jpg\" alt=\"Smashing, Poppet!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSmashing, Poppet!\u003c/strong\u003e\u003cbr\u003e\n    Using explosives or your trusty hammer, smash a Shadow Orb or Crimson Heart in the evil parts of your world.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 07, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/624b8391794e2f02f067295d634d648d6cb0e4a9.jpg\" alt=\"Worm Fodder\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWorm Fodder\u003c/strong\u003e\u003cbr\u003e\n    Defeat the Eater of Worlds, a massive worm whom dwells in the corruption.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 16, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/53b00566871f426e2e2a341de81b143c0fd1be9d.jpg\" alt=\"Mastermind\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMastermind\u003c/strong\u003e\u003cbr\u003e\n    Defeat the Brain of Cthulhu, an enourmous demon brain which haunts the creeping crimson.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 08, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/b4b56f2efddc04d7c234de521f58a9ee9e697327.jpg\" alt=\"Where's My Honey?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhere's My Honey?\u003c/strong\u003e\u003cbr\u003e\n    Discover a large bee's hive deep in the jungle.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 11, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/a8ed027c602baf83e6f3d59ba074eec87b1dd2d7.jpg\" alt=\"Sting Operation\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSting Operation\u003c/strong\u003e\u003cbr\u003e\n    Defeat the Queen Bee, the matriarch of the jungle hives.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 13, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/11b9d704b496f6586f952e93c2158d38dd169377.jpg\" alt=\"Boned\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBoned\u003c/strong\u003e\u003cbr\u003e\n    Defeat Skeletron, the cursed guardian of the dungeon.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 11, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/ba1daa2f08355bf11e2494b01db49f47fa4f43c7.jpg\" alt=\"Dungeon Heist\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDungeon Heist\u003c/strong\u003e\u003cbr\u003e\n    Steal a key from the dungeon's undead denizens, and unlock one of their precious golden chests.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 15, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/58efa6a9a0ae6a955c6a82874961b08c8e4def60.jpg\" alt=\"It's Getting Hot in Here\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt's Getting Hot in Here\u003c/strong\u003e\u003cbr\u003e\n    Spelunk deep enough to reach the molten underworld.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 14, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/bbb5c58dea957db42faaa276c697599f0354f06c.jpg\" alt=\"Miner for Fire\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMiner for Fire\u003c/strong\u003e\u003cbr\u003e\n    Craft a molten pickaxe using the hottest of materials.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 19, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/02ba42d3df19dc2cd81a6bf4ee29c7ce446e4360.jpg\" alt=\"Still Hungry\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStill Hungry\u003c/strong\u003e\u003cbr\u003e\n    Defeat the Wall of Flesh, the master and core of the world who arises after a great, burning sacrifice.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 20, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/dc65c66c704560c7a940fab6d5023490f7102fb3.jpg\" alt=\"It's Hard!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt's Hard!\u003c/strong\u003e\u003cbr\u003e\n    Unleash the ancient spirits of light and darkness across your world, enabling much stronger foes and showering the world with dazzling treasures (and rainbows!).\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 20, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/c3917d676fc752415849de9f132549d05ba0ca4c.jpg\" alt=\"Begone, Evil!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBegone, Evil!\u003c/strong\u003e\u003cbr\u003e\n    Smash a demon or crimson altar with a powerful, holy hammer.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 20, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/9d573b4067856938a1c13c9c93f3dec66c0c3f72.jpg\" alt=\"Extra Shiny!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExtra Shiny!\u003c/strong\u003e\u003cbr\u003e\n    Mine a powerful ore that has been newly blessed upon your world.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 20, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/55cb91ab9841f538742277b897189ab19aaefc8b.jpg\" alt=\"Head in the Clouds\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHead in the Clouds\u003c/strong\u003e\u003cbr\u003e\n    Equip a pair of wings.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 04, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/e5e0bffeb00c720091439eb8336fea7d77f147c5.jpg\" alt=\"Like a Boss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLike a Boss\u003c/strong\u003e\u003cbr\u003e\n    Obtain a boss-summoning item.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 07, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/27536dd7b5ee4de46b85be337d0c792d685b14f5.jpg\" alt=\"Buckets of Bolts\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBuckets of Bolts\u003c/strong\u003e\u003cbr\u003e\n    Defeat the three nocturnal mechanical menaces: the Twins, the Destroyer, and Skeletron Prime.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 30, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/d3955ec8610cc6a7229866780451467ab0e5c5a2.jpg\" alt=\"Drax Attax\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDrax Attax\u003c/strong\u003e\u003cbr\u003e\n    Craft a drax or pickaxe axe using hallowed bars, and the souls of the three mechanical bosses.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 30, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/2a4c26b8eca5e09cabcd64a50b76115d2679796a.jpg\" alt=\"Photosynthesis\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePhotosynthesis\u003c/strong\u003e\u003cbr\u003e\n    Mine chlorophyte, an organic ore found deep among the thickest of flora.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 04, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/e54172f81aaaac5bdabededcb8e52b8c2d2f7f8e.jpg\" alt=\"Get a Life\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGet a Life\u003c/strong\u003e\u003cbr\u003e\n    Consume a life fruit, which grows in the thick of subterranean jungle grass.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 30, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/4b52e1dd35f600a9f82f7958abe2a467d68351e7.jpg\" alt=\"The Great Southern Plantkill\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Great Southern Plantkill\u003c/strong\u003e\u003cbr\u003e\n    Defeat Plantera, the overgrown monstrosity of the jungle's depths.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 01, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/cd11c08ea1a436e8156e1d3ebeccd1c9ba5cb22f.jpg\" alt=\"Temple Raider\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTemple Raider\u003c/strong\u003e\u003cbr\u003e\n    Breach the impenetrable walls of the jungle temple.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 04, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/3d8a29010ed3e22203cb4f0d52167c88f9c91a5c.jpg\" alt=\"Lihzahrdian Idol\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLihzahrdian Idol\u003c/strong\u003e\u003cbr\u003e\n    Defeat Golem, the stone-faced ritualistic idol of the lihzahrd tribe.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 05, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/45884dee9cec706f27db75fbe4567da42d235836.jpg\" alt=\"Robbing the Grave\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRobbing the Grave\u003c/strong\u003e\u003cbr\u003e\n    Obtain a rare treasure from a difficult monster in the dungeon.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 05, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/c7415e2bf7cbef15558b41c70bb1e306e5682e27.jpg\" alt=\"Big Booty\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBig Booty\u003c/strong\u003e\u003cbr\u003e\n    Unlock one of the dungeon's large, mysterious chests with a special key.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 18, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/3efe3c4fcbfa43a355df16292f307232559fb3ec.jpg\" alt=\"Fish Out of Water\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFish Out of Water\u003c/strong\u003e\u003cbr\u003e\n    Defeat Duke Fishron, mutant terror of the sea.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 08, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/b9436b13653d95dd441c8a96213e6a4dfbc6b72f.jpg\" alt=\"Obsessive Devotion\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eObsessive Devotion\u003c/strong\u003e\u003cbr\u003e\n    Defeat the Ancient Cultist, fanatical leader of the dungeon coven.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 05, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/da3155b9d24c435c244f7c099914586bac0b9853.jpg\" alt=\"Star Destroyer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStar Destroyer\u003c/strong\u003e\u003cbr\u003e\n    Defeat the four celestial towers of the moon.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 06, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/c91f1b034b7ce14a89a377320eddaf29f18143f1.jpg\" alt=\"Champion of Terraria\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChampion of Terraria\u003c/strong\u003e\u003cbr\u003e\n    Defeat the Moon Lord.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 06, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/ce64b32e5385e779e3c615b2f36a966f8cdf4405.jpg\" alt=\"Bloodbath\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBloodbath\u003c/strong\u003e\u003cbr\u003e\n    Survive a blood moon, a nocturnal event where the rivers run red and monsters swarm aplenty.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 09, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/839662b6bd88d0babf10cb9e7d5bafd9d89f3efc.jpg\" alt=\"Slippery Shinobi\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSlippery Shinobi\u003c/strong\u003e\u003cbr\u003e\n    Defeat King Slime, the lord of all things slimy.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 18, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/984d8201f226319980b9a5f13b0a17455587d187.jpg\" alt=\"Goblin Punter\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGoblin Punter\u003c/strong\u003e\u003cbr\u003e\n    Triumph over a goblin invasion, a ragtag regiment of crude, barbaric, pointy-eared warriors and their shadowflame sorcerers.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 12, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/ce10d46dae4218e320e2ae46188507aa39ddf12b.jpg\" alt=\"Walk the Plank\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWalk the Plank\u003c/strong\u003e\u003cbr\u003e\n    Triumph over a pirate invasion, a group of pillagers from the sea out for your booty... and your life!\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 26, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/b528155244502c33c5bf0b8d8cee3e08e9637216.jpg\" alt=\"Kill the Sun\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKill the Sun\u003c/strong\u003e\u003cbr\u003e\n    Survive a solar eclipse, a day darker than night filled with creatures of horror.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 29, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/f00bc8242a3fe3ba2c682ae50eaf9c9a14fe95be.jpg\" alt=\"Do You Want to Slay a Snowman?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDo You Want to Slay a Snowman?\u003c/strong\u003e\u003cbr\u003e\n    Triumph over the frost legion, a festive family of maniacal snowman mobsters.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 22, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/c3e587ad5f2dea6f18e3b1dbda3ae258f70edf9c.jpg\" alt=\"Tin-Foil Hatter\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTin-Foil Hatter\u003c/strong\u003e\u003cbr\u003e\n    Triumph over a martian invasion, when beings from out of this world come to scramble your brains and probe you in uncomfortable places.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 10, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/86778a8e3b31dc11c21491bf0fb49364efa586aa.jpg\" alt=\"Baleful Harvest\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBaleful Harvest\u003c/strong\u003e\u003cbr\u003e\n    Reach the 15th wave of a pumpkin moon, where evil lurks among the autumn harvest.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 21, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/c8da134d01c965ca92dffdeba235f04174e0841e.jpg\" alt=\"Ice Scream\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIce Scream\u003c/strong\u003e\u003cbr\u003e\n    Reach the 15th wave of a frost moon, where the festive season quickly degrades into madness.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 21, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/d033499586f55832b7ca093fc07077c6d64dfb57.jpg\" alt=\"Sticky Situation\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSticky Situation\u003c/strong\u003e\u003cbr\u003e\n    Survive the slime rain, where gelatinous organisms fall from the sky in droves.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 14, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/03d53ce253896b4ca711a08fd8dee0f6cb557cad.jpg\" alt=\"Not the Bees!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNot the Bees!\u003c/strong\u003e\u003cbr\u003e\n    Fire a Bee Gun while wearing a full set of Bee Armor.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 12, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/d9aeb5789d29be12161f43cb7a6a6e7afb045116.jpg\" alt=\"Jeepers Creepers\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJeepers Creepers\u003c/strong\u003e\u003cbr\u003e\n    Stumble into a spider cavern in the underground.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 14, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/2f0d702bad1430791b379ff1735f6bf2ba7e9eb1.jpg\" alt=\"Funkytown\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFunkytown\u003c/strong\u003e\u003cbr\u003e\n    Build or encounter a glowing mushroom field above the surface.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/db6d01c34f6ad734293be8ce9d587e9d0b5faf51.jpg\" alt=\"Into Orbit\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInto Orbit\u003c/strong\u003e\u003cbr\u003e\n    You can only go down from here!\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 18, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/ef421de200597d9553957957bb16b1504a25c752.jpg\" alt=\"Rock Bottom\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRock Bottom\u003c/strong\u003e\u003cbr\u003e\n    The only way is up!\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 14, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/d8d3d50b2216d47c33e307972056d8fd8471d54e.jpg\" alt=\"Mecha Mayhem\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMecha Mayhem\u003c/strong\u003e\u003cbr\u003e\n    Do battle against the Twins, the Destroyer, and Skeletron Prime simultaneously and emerge victorious.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 24, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/7528c2a19d58be44828e538579f2c422b35537f5.jpg\" alt=\"Gelatin World Tour\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGelatin World Tour\u003c/strong\u003e\u003cbr\u003e\n    Defeat every type of slime there is!\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 12, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/a21ac001c8eb0eece9a498b094d5c1f8e121727a.jpg\" alt=\"Fashion Statement\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFashion Statement\u003c/strong\u003e\u003cbr\u003e\n    Equip armor or vanity clothing in all three social slots.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 05, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/a959913d98f2195136a4c8acd11b98281e2109e4.jpg\" alt=\"Vehicular Manslaughter\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVehicular Manslaughter\u003c/strong\u003e\u003cbr\u003e\n    Defeat an enemy by running it over with a minecart.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 07, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/c57a4c06ecbc2ec8fe5af0b1d4cb8cbfe8821a10.jpg\" alt=\"Bulldozer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBulldozer\u003c/strong\u003e\u003cbr\u003e\n    Destroy a total of 10,000 tiles.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 24, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/472bdbff627e1e346f0cff906bc698abde36f9c0.jpg\" alt=\"There are Some Who Call Him...\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThere are Some Who Call Him...\u003c/strong\u003e\u003cbr\u003e\n    Kill Tim.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 19, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/5a07dc5b30fe19e1675d03b89ef2cdd1856d6157.jpg\" alt=\"Deceiver of Fools\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDeceiver of Fools\u003c/strong\u003e\u003cbr\u003e\n    Kill a nymph.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 14, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/4256db7a8c24e4bfa312b6768d1af19873883b02.jpg\" alt=\"Sword of the Hero\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSword of the Hero\u003c/strong\u003e\u003cbr\u003e\n    Obtain a Terra Blade, forged from the finest blades of light and darkness.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 21, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/8fe7fc557c8573f9bf353c82387dd18c4f20c9ab.jpg\" alt=\"Lucky Break\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLucky Break\u003c/strong\u003e\u003cbr\u003e\n    Survive a long fall with just a sliver of health remaining.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 16, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/efd06080d5ca93192d2c1dda6e9cf92b424e461e.jpg\" alt=\"Throwing Lines\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThrowing Lines\u003c/strong\u003e\u003cbr\u003e\n    Throw a yoyo.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 07, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/1aa1fffcccddc0cf50f4da93914ad18e59e92c23.jpg\" alt=\"Dye Hard\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDye Hard\u003c/strong\u003e\u003cbr\u003e\n    Equip a dye in every possible dye slot.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 17, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/7cf7f0f0a17e1bfdb864857698458a548454f944.jpg\" alt=\"Sick Throw\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSick Throw\u003c/strong\u003e\u003cbr\u003e\n    Obtain the Terrarian.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 21, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/af50c3b5549094e0f99d20f04ff6ed4e5fda6889.jpg\" alt=\"The Frequent Flyer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Frequent Flyer\u003c/strong\u003e\u003cbr\u003e\n    Spend over 1 gold being treated by the nurse.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 24, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/da6e31f8c70f22252c7d5c7ec6882093499146f9.jpg\" alt=\"The Cavalry\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Cavalry\u003c/strong\u003e\u003cbr\u003e\n    Equip a mount.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 20, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/8ae7da8ea8eb7fd920f499fb762e7efb24fae8fc.jpg\" alt=\"Completely Awesome\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompletely Awesome\u003c/strong\u003e\u003cbr\u003e\n    Obtain a minishark.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 28, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/67c95d83892c06d5d3cfb9070e0260da72500d4a.jpg\" alt=\"Til Death...\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTil Death...\u003c/strong\u003e\u003cbr\u003e\n    Kill the groom.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 06, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/3060f4ae13f56fbb3f78e36371aaa039f4b2c9bf.jpg\" alt=\"Archaeologist\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArchaeologist\u003c/strong\u003e\u003cbr\u003e\n    Kill Doctor Bones.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 23, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/f00eae3408364653eefe9a6e9283a1610ae8643b.jpg\" alt=\"Pretty in Pink\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePretty in Pink\u003c/strong\u003e\u003cbr\u003e\n    Kill pinky.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 18, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/6c21f8ead465f9cd90c7b4d936239467c334bd5c.jpg\" alt=\"Prismancer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePrismancer\u003c/strong\u003e\u003cbr\u003e\n    Obtain a rainbow rod.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 28, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/5bcc7dd72c781448be7f89fab335d7c789defc92.jpg\" alt=\"It Can Talk?!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt Can Talk?!\u003c/strong\u003e\u003cbr\u003e\n    Build a house in a mushroom biome and have the Truffle move in.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/280b95017555560b63ea0a44dbdb3a38e86cd7cd.jpg\" alt=\"Watch Your Step!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWatch Your Step!\u003c/strong\u003e\u003cbr\u003e\n    Become a victim to a nasty underground trap.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 19, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/c624a2f9b28c26d804f22337d4c46efffc2d4563.jpg\" alt=\"Marathon Medalist\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMarathon Medalist\u003c/strong\u003e\u003cbr\u003e\n    Travel a total of 26.2 miles on foot.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 11, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/6fafd5617f5f2c23a0ffeefc2799d2fbb5a7c801.jpg\" alt=\"Topped Off\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTopped Off\u003c/strong\u003e\u003cbr\u003e\n    Attain maximum health and mana possible without accessories or buffs.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 23, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/98a47ac6d34f74f0f4d8651a929701bd2aa4ae42.jpg\" alt=\"Slayer of Worlds\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSlayer of Worlds\u003c/strong\u003e\u003cbr\u003e\n    Defeat every boss in Terraria.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 06, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/6a5b944787cc9f1dab1dd661e409ce97996d412b.jpg\" alt=\"You Can Do It!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou Can Do It!\u003c/strong\u003e\u003cbr\u003e\n    Survive your character's first full night.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 05, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/4982fd3ed36214f5c68280e4502a48f6a2e857cc.jpg\" alt=\"Matching Attire\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMatching Attire\u003c/strong\u003e\u003cbr\u003e\n    Equip armor in all three armor slots: head, chest, and feet.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 06, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/e76f23d7116ce2a3ddb73611a58207094f2fed35.jpg\" alt=\"Benched\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBenched\u003c/strong\u003e\u003cbr\u003e\n    Craft your first work bench.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 04, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/ae620dba9905fffad026095e82548c0cddb31b94.jpg\" alt=\"Fae Flayer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFae Flayer\u003c/strong\u003e\u003cbr\u003e\n    Defeat the Empress of Light, responsible for all those flashy lights and glitter.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 16, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/6091aa5a41f25af23b6c408d9669bc0bb8aa067b.jpg\" alt=\"Just Desserts\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJust Desserts\u003c/strong\u003e\u003cbr\u003e\n    Defeat Queen Slime, giving the coup-de-grace to the sovereign of all that jiggles.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 01, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/f36753b1fe186f04edf1a7ae791b85f70b07302b.jpg\" alt=\"Don't Dread on Me\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDon't Dread on Me\u003c/strong\u003e\u003cbr\u003e\n    Defeat the Dreadnautilus, murderous mollusk lurking beneath the surface of the sanguine seas.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 01, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/ad65c49e080605670ce5dee3e94c5863e5dcdb76.jpg\" alt=\"Infinity +1 Sword\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInfinity +1 Sword\u003c/strong\u003e\u003cbr\u003e\n    Obtain the Zenith, the culmination of a journey forged into the ultimate sword.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 22, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/fb4a164d117f4e02e2e84b0803d25f5c39a147ba.jpg\" alt=\"A Rather Blustery Day\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Rather Blustery Day\u003c/strong\u003e\u003cbr\u003e\n    Fly a kite on a windy day.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 29, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/a3e4fc9470751bf2eec49a0d9fc3409a110328ec.jpg\" alt=\"Quiet Neighborhood\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eQuiet Neighborhood\u003c/strong\u003e\u003cbr\u003e\n    Enter a misty graveyard filled with the surly dead.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 20, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/0d7088cea84ce1cdbb400285318dd138ffac3a21.jpg\" alt=\"Heliophobia\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHeliophobia\u003c/strong\u003e\u003cbr\u003e\n    Trick a gnome into turning into stone!\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 05, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/89ae5fc62de83ed0c5b472dba2434a2f91940bd1.jpg\" alt=\"Feeling Petty\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFeeling Petty\u003c/strong\u003e\u003cbr\u003e\n    Deliver headpats to the town pet.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 09, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/98424268ca1fe5748753b891affa4c20c4ab5147.jpg\" alt=\"Hey! Listen!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHey! Listen!\u003c/strong\u003e\u003cbr\u003e\n    Encounter a fairy.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 09, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/9f723603a35018b1701fd21a222ee26a60ca845c.jpg\" alt=\"Jolly Jamboree\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJolly Jamboree\u003c/strong\u003e\u003cbr\u003e\n    What you're celebrating doesn't matter, just throw a party already!\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/0dfe1e75f8432cd357cefa8190a11693a2786dc0.jpg\" alt=\"Dead Men Tell No Tales\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDead Men Tell No Tales\u003c/strong\u003e\u003cbr\u003e\n    You were so preoccupied with whether or not you could open the chest that you didn't stop to think if you should.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 19, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/8bbfcf168e0034054d479a72d30e2fe36354f2cc.jpg\" alt=\"An Eye For An Eye\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAn Eye For An Eye\u003c/strong\u003e\u003cbr\u003e\n    Defeat Deerclops, the chilly one-eyed monstrosity from a foreign land.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 05, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/ee1bf7006604da48b973c5d793c9b13b68ea7b63.jpg\" alt=\"A Rare Realm\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Rare Realm\u003c/strong\u003e\u003cbr\u003e\n    Some very special seeds can lead to unique and rewarding experiences. Can you find one?\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 29, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/2e8221bd7bc11ac180bf2949a1a57bb5649b8cce.jpg\" alt=\"A Shimmer In The Dark\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Shimmer In The Dark\u003c/strong\u003e\u003cbr\u003e\n    Shimmer an item into another item. What other transmutations can you find?\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 06, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (21)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/05dce04e306a30efc50c2a5a675f6e9f99adbddb.jpg\" alt=\"Real Estate Agent\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eReal Estate Agent\u003c/strong\u003e\u003cbr\u003e\n    Have all possible town NPCs living in your world.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/d288ddb53b518ea47d072c8c6be5c7d73fcba69e.jpg\" alt=\"Rainbows and Unicorns\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRainbows and Unicorns\u003c/strong\u003e\u003cbr\u003e\n    Fire a rainbow gun while riding on a unicorn.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/3720f2cb46ac0ae9474d4bf7de094eb2d28d9080.jpg\" alt=\"You and What Army?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou and What Army?\u003c/strong\u003e\u003cbr\u003e\n    Command nine summoned minions simultaneously.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/4cc5ff3420fe0900910bee9255ae62c97842c837.jpg\" alt=\"Glorious Golden Pole\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGlorious Golden Pole\u003c/strong\u003e\u003cbr\u003e\n    Obtain a golden fishing rod.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/561d73948b4fed4061d48672303ed04cd1fb6d82.jpg\" alt=\"Servant-in-Training\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eServant-in-Training\u003c/strong\u003e\u003cbr\u003e\n    Complete your 1st quest for the angler.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/dff9d0c485bfaca3b75b6d72ea8683882742b71b.jpg\" alt=\"Good Little Slave\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGood Little Slave\u003c/strong\u003e\u003cbr\u003e\n    Complete your 10th quest for the angler.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/22bcf25b747e1f047a55c0f4f9417e0bf5e1854c.jpg\" alt=\"Trout Monkey\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTrout Monkey\u003c/strong\u003e\u003cbr\u003e\n    Complete your 25th quest for the angler.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/e656b806588daf3eaf8266485f104257b11be802.jpg\" alt=\"Fast and Fishious\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFast and Fishious\u003c/strong\u003e\u003cbr\u003e\n    Complete your 50th quest for the angler.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/0a6ff6a36670c96ceb4d30cf6fd69d2fdf55f38e.jpg\" alt=\"Supreme Helper Minion!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSupreme Helper Minion!\u003c/strong\u003e\u003cbr\u003e\n    Complete a grand total of 200 quests for the angler.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/7df01b8161f74f4955b862736c0b5b8bcf045d23.jpg\" alt=\"Hero of Etheria\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHero of Etheria\u003c/strong\u003e\u003cbr\u003e\n    Repel the strongest forces the Old One's Army can muster.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/2578c03ef18818fb5e417cd1bcd1a5cffafcc30e.jpg\" alt=\"Boots of the Hero\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBoots of the Hero\u003c/strong\u003e\u003cbr\u003e\n    Obtain the Terraspark Boots, forged from the finest boots of fire and ice.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/857e2df684ca7b638f1fea5d20a075a6610b7cc6.jpg\" alt=\"Hot Reels!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHot Reels!\u003c/strong\u003e\u003cbr\u003e\n    Drop a lure in a pool of lava for a pre-fried haul!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/350b6b619fe3ea6c65afba12e9d652573a9b6251.jpg\" alt=\"Leading Landlord\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLeading Landlord\u003c/strong\u003e\u003cbr\u003e\n    Meet with a tenant who's as happy as they possibly can be!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/2d10311274fe7c92ab25cc29afdca86b019ad472.jpg\" alt=\"Feast of Midas\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFeast of Midas\u003c/strong\u003e\u003cbr\u003e\n    Obtain Golden Delight, the highest quality meal made from the highest quality . . . ingredients.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/321621992dd22a16a4e42203092ce24ac6847c34.jpg\" alt=\"Unusual Survival Strategies\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUnusual Survival Strategies\u003c/strong\u003e\u003cbr\u003e\n    Delay death from drowning by drinking water. It doesn't make much sense, but you did what you had to do.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/aeb444fb0c6190dc87a8a788fff84172610a8a2a.jpg\" alt=\"Black Mirror\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlack Mirror\u003c/strong\u003e\u003cbr\u003e\n    Obtain the Cell Phone. You'll never leave home without it again.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/e811c3b4e59fa637cb76b1cfd83eaa9cb30e88d6.jpg\" alt=\"Ankhumulation Complete\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAnkhumulation Complete\u003c/strong\u003e\u003cbr\u003e\n    Obtain the Ankh Shield, the finest protection from unpleasant maladies and ailments.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/2d90ca6d4475fb2103f5c9d8c6b469f81652a809.jpg\" alt=\"Torch God\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTorch God\u003c/strong\u003e\u003cbr\u003e\n    Invoked the wrath of the God of Torches, and survived long enough to earn its blessing.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/8b9fbdfdccd4e0f81b305e6fc5d39aeacf2dbe38.jpg\" alt=\"The Great Slime Mitosis\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Great Slime Mitosis\u003c/strong\u003e\u003cbr\u003e\n    Find all of the Slime Pets and have them move in!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/36dddfdca36de597b925b8000c709207db645eb8.jpg\" alt=\"And Good Riddance!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAnd Good Riddance!\u003c/strong\u003e\u003cbr\u003e\n    Completely purify all Corruption, Crimson, and Hallow from your world, until the Dryad is satisfied!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/105600/a23ee25dc5f993fe57f45f09a42b7ea20cf569fd.jpg\" alt=\"To Infinity... and Beyond!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTo Infinity... and Beyond!\u003c/strong\u003e\u003cbr\u003e\n    Fly a Kwad Racer into outer space.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Terraria - 81.74% complete with 94/115 achievements unlocked.",
      "date_published": "2025-12-25T00:00:00Z",
      "date_modified": "2025-12-25T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "terraria"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/upload-labs/",
      "url": "https://go.waylonwalker.com/steam/upload-labs/",
      "title": "Upload Labs",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/3606890/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/3606890/library_600x900.jpg\" alt=\"Upload Labs box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/3606890/header.jpg\u0026#39;\"/ data-glightbox=\"description: Upload Labs box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eUpload Labs\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 17.14%\"\u003e\n        17.14%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e6/35 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e4.8h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-12-24\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (6)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/52322f245c348b6e9a66565da8e1017b7c754e52.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/52322f245c348b6e9a66565da8e1017b7c754e52.jpg\" alt=\"Commencement\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Commencement\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCommencement\u003c/strong\u003e\u003cbr/\u003e\n    Upload your first file\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 23, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/11f17b9cf81ca0114b4ed19afde418752908c473.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/11f17b9cf81ca0114b4ed19afde418752908c473.jpg\" alt=\"What Could Go Wrong?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: What Could Go Wrong?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhat Could Go Wrong?\u003c/strong\u003e\u003cbr/\u003e\n    Upload an infected file\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 23, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/f84613adadd27aba349fced6b25f798fed7f244c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/f84613adadd27aba349fced6b25f798fed7f244c.jpg\" alt=\"Containment Protocol\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Containment Protocol\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eContainment Protocol\u003c/strong\u003e\u003cbr/\u003e\n    Remove viruses from an infected file\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 23, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/72bdf7ad66770f5f0f17ee879c2cf4978c24bcff.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/72bdf7ad66770f5f0f17ee879c2cf4978c24bcff.jpg\" alt=\"Data Healer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Data Healer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eData Healer\u003c/strong\u003e\u003cbr/\u003e\n    Fix a corrupted file\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 24, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/661cecd4d43e5d7520969cd46e8d2a83451e8e7d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/661cecd4d43e5d7520969cd46e8d2a83451e8e7d.jpg\" alt=\"System Planner\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: System Planner\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSystem Planner\u003c/strong\u003e\u003cbr/\u003e\n    Create a schematic\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 23, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/0c9f8263dcf16e9a6bacd527dac1c1d15a383937.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/0c9f8263dcf16e9a6bacd527dac1c1d15a383937.jpg\" alt=\"Market Crash\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Market Crash\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMarket Crash\u003c/strong\u003e\u003cbr/\u003e\n    Sell all your coins at high\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 23, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (29)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/b5534b8c8d73622203c827f40b0d3fb8ac29de6e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/b5534b8c8d73622203c827f40b0d3fb8ac29de6e.jpg\" alt=\"Variety Downloader\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Variety Downloader\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVariety Downloader\u003c/strong\u003e\u003cbr/\u003e\n    Download all file types simultaneously\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/8df103b1e7b2e81b2f72b8c9c944ab727c280f7a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/8df103b1e7b2e81b2f72b8c9c944ab727c280f7a.jpg\" alt=\"Wasted Effort\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Wasted Effort\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWasted Effort\u003c/strong\u003e\u003cbr/\u003e\n    Compress an enhanced file or vice-versa\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/36eec0f020eab27459ba603e172eab2fc530d9aa.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/36eec0f020eab27459ba603e172eab2fc530d9aa.jpg\" alt=\"Universal Traveler\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Universal Traveler\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUniversal Traveler\u003c/strong\u003e\u003cbr/\u003e\n    Enter the Portal\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/72b9f666593605d792839d500c954e5a76867673.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/72b9f666593605d792839d500c954e5a76867673.jpg\" alt=\"Hack Ascension\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hack Ascension\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHack Ascension\u003c/strong\u003e\u003cbr/\u003e\n    Unlock Hacking\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/513d3ce9ec7aec6a33db0f00a2468a970c040fff.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/513d3ce9ec7aec6a33db0f00a2468a970c040fff.jpg\" alt=\"Serial Breacher\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Serial Breacher\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSerial Breacher\u003c/strong\u003e\u003cbr/\u003e\n    Breach Anonymous, Corporations and the Government in under 1 second\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/a646632c6202fd5c25d2b791f4b0fc5749eaf810.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/a646632c6202fd5c25d2b791f4b0fc5749eaf810.jpg\" alt=\"Grand Heist\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Grand Heist\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGrand Heist\u003c/strong\u003e\u003cbr/\u003e\n    Succesfully breach banks 10 times\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/e2cd267c7f9567fc4db81cd757561c0a382927b0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/e2cd267c7f9567fc4db81cd757561c0a382927b0.jpg\" alt=\"Uninvited Guest\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Uninvited Guest\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUninvited Guest\u003c/strong\u003e\u003cbr/\u003e\n    Upload a file with a trojan\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/9613e19a3063b329be84946ca7c20fa159e22bd4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/9613e19a3063b329be84946ca7c20fa159e22bd4.jpg\" alt=\"Coder Ascension\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Coder Ascension\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCoder Ascension\u003c/strong\u003e\u003cbr/\u003e\n    Unlock Coding\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/be355582b991ccd863a5d68a34473eb356a75b8d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/be355582b991ccd863a5d68a34473eb356a75b8d.jpg\" alt=\"It\u0026#39;s a Feature\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: It\u0026#39;s a Feature\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt\u0026#39;s a Feature\u003c/strong\u003e\u003cbr/\u003e\n    Commit a bugged code\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/73746d6e399da5c35f2825ca2d7b1f8f2d685e80.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/73746d6e399da5c35f2825ca2d7b1f8f2d685e80.jpg\" alt=\"Back-end Dev\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Back-end Dev\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBack-end Dev\u003c/strong\u003e\u003cbr/\u003e\n    Unlock all optimizations\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/f63ebd68b04f44bac7f03148d4d7fa927d295e02.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/f63ebd68b04f44bac7f03148d4d7fa927d295e02.jpg\" alt=\"Front-end Dev\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Front-end Dev\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFront-end Dev\u003c/strong\u003e\u003cbr/\u003e\n    Unlock all applications\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/dabd73f9d29c93de85909690b0169e9ba845861f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/dabd73f9d29c93de85909690b0169e9ba845861f.jpg\" alt=\"Artificial General Intelligence\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Artificial General Intelligence\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArtificial General Intelligence\u003c/strong\u003e\u003cbr/\u003e\n    Achieve AGI\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/1deb4d4538f3498d0c8474ca08ce3b60d57c7386.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/1deb4d4538f3498d0c8474ca08ce3b60d57c7386.jpg\" alt=\"Text Completionist\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Text Completionist\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eText Completionist\u003c/strong\u003e\u003cbr/\u003e\n    Complete all Text requests\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/788bfa8ce219481b371996e5def801c5eae59d1b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/788bfa8ce219481b371996e5def801c5eae59d1b.jpg\" alt=\"Image Completionist\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Image Completionist\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eImage Completionist\u003c/strong\u003e\u003cbr/\u003e\n    Complete all Image requests\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/25b2f87b262aefbd6fe65abf64841686d219125b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/25b2f87b262aefbd6fe65abf64841686d219125b.jpg\" alt=\"Sound Completionist\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sound Completionist\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSound Completionist\u003c/strong\u003e\u003cbr/\u003e\n    Complete all Sound requests\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/631ade7253dda54031fe07a3cf78861628b94d23.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/631ade7253dda54031fe07a3cf78861628b94d23.jpg\" alt=\"Video Completionist\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Video Completionist\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVideo Completionist\u003c/strong\u003e\u003cbr/\u003e\n    Complete all Video requests\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/4eaa5f93c30f4f3aaee16c7d2dd44536cbed8d00.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/4eaa5f93c30f4f3aaee16c7d2dd44536cbed8d00.jpg\" alt=\"Program Completionist\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Program Completionist\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eProgram Completionist\u003c/strong\u003e\u003cbr/\u003e\n    Complete all Program requests\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/ddd21e1c91856b253a4cf7505127330a86997110.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/ddd21e1c91856b253a4cf7505127330a86997110.jpg\" alt=\"Game Completionist\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Game Completionist\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGame Completionist\u003c/strong\u003e\u003cbr/\u003e\n    Complete all Game requests\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/8bfc9ef3dc32feb39ce861934e2fbc0b45e1b4d3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/8bfc9ef3dc32feb39ce861934e2fbc0b45e1b4d3.jpg\" alt=\"Completionist\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Completionist\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompletionist\u003c/strong\u003e\u003cbr/\u003e\n    Complete all requests\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/6cdd65cd7dbdae27a16a84666ada1dfbe5698422.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/6cdd65cd7dbdae27a16a84666ada1dfbe5698422.jpg\" alt=\"Out of Memory\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Out of Memory\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOut of Memory\u003c/strong\u003e\u003cbr/\u003e\n    Reach maximum node capacity\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/c2a6ab496290c34a8a44eaf10010195503bce2f2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/c2a6ab496290c34a8a44eaf10010195503bce2f2.jpg\" alt=\"Stylist\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Stylist\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStylist\u003c/strong\u003e\u003cbr/\u003e\n    Use all Node Groups colours simultaneously\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/a6f0ec29515fa7af5302e41ed36bee6d7168d7b1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/a6f0ec29515fa7af5302e41ed36bee6d7168d7b1.jpg\" alt=\"Overheated\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Overheated\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOverheated\u003c/strong\u003e\u003cbr/\u003e\n    Overheat any component using overclocking\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/876c89b093faf528fa622657054aead46bca7d9d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/876c89b093faf528fa622657054aead46bca7d9d.jpg\" alt=\"Network Bottleneck\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Network Bottleneck\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNetwork Bottleneck\u003c/strong\u003e\u003cbr/\u003e\n    Maximize a Network node\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/18d343fd04739b3523a1ac5d5ca42e1320973522.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/18d343fd04739b3523a1ac5d5ca42e1320973522.jpg\" alt=\"Processor Bottleneck\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Processor Bottleneck\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eProcessor Bottleneck\u003c/strong\u003e\u003cbr/\u003e\n    Maximize a Processor node\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/2c099ce885f9948b97049daea2f47ecdf29f2a7c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/2c099ce885f9948b97049daea2f47ecdf29f2a7c.jpg\" alt=\"GPU Bottleneck\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: GPU Bottleneck\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGPU Bottleneck\u003c/strong\u003e\u003cbr/\u003e\n    Maximize a GPU Cluster node\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/6089e2fc4c3e990cbeef0192f618fcfbfae9c567.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/6089e2fc4c3e990cbeef0192f618fcfbfae9c567.jpg\" alt=\"Token Clicker\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Token Clicker\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eToken Clicker\u003c/strong\u003e\u003cbr/\u003e\n    Collect 101 wandering Tokens\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/8bc72ed2c5aa7f9fcdb29f3faf49efe7602553c8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/8bc72ed2c5aa7f9fcdb29f3faf49efe7602553c8.jpg\" alt=\"P2W Much?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: P2W Much?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eP2W Much?\u003c/strong\u003e\u003cbr/\u003e\n    Have all boosts active at once\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/c0905bdd18881ffa4edb61c06044dc95c094951a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/c0905bdd18881ffa4edb61c06044dc95c094951a.jpg\" alt=\"Eureka!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Eureka!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEureka!\u003c/strong\u003e\u003cbr/\u003e\n    Complete the research tree\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/32468103d650f10c1732308f231e925f96330124.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/32468103d650f10c1732308f231e925f96330124.jpg\" alt=\"Time Traveler\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Time Traveler\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTime Traveler\u003c/strong\u003e\u003cbr/\u003e\n    Complete the portal tree\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/3606890/library_600x900.jpg\" alt=\"Upload Labs box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/3606890/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eUpload Labs\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 17.14%\"\u003e\n        17.14%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e6/35 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e4.8h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-12-24\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (6)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/52322f245c348b6e9a66565da8e1017b7c754e52.jpg\" alt=\"Commencement\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCommencement\u003c/strong\u003e\u003cbr\u003e\n    Upload your first file\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 23, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/11f17b9cf81ca0114b4ed19afde418752908c473.jpg\" alt=\"What Could Go Wrong?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhat Could Go Wrong?\u003c/strong\u003e\u003cbr\u003e\n    Upload an infected file\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 23, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/f84613adadd27aba349fced6b25f798fed7f244c.jpg\" alt=\"Containment Protocol\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eContainment Protocol\u003c/strong\u003e\u003cbr\u003e\n    Remove viruses from an infected file\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 23, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/72bdf7ad66770f5f0f17ee879c2cf4978c24bcff.jpg\" alt=\"Data Healer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eData Healer\u003c/strong\u003e\u003cbr\u003e\n    Fix a corrupted file\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 24, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/661cecd4d43e5d7520969cd46e8d2a83451e8e7d.jpg\" alt=\"System Planner\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSystem Planner\u003c/strong\u003e\u003cbr\u003e\n    Create a schematic\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 23, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/0c9f8263dcf16e9a6bacd527dac1c1d15a383937.jpg\" alt=\"Market Crash\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMarket Crash\u003c/strong\u003e\u003cbr\u003e\n    Sell all your coins at high\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 23, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (29)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/b5534b8c8d73622203c827f40b0d3fb8ac29de6e.jpg\" alt=\"Variety Downloader\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVariety Downloader\u003c/strong\u003e\u003cbr\u003e\n    Download all file types simultaneously\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/8df103b1e7b2e81b2f72b8c9c944ab727c280f7a.jpg\" alt=\"Wasted Effort\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWasted Effort\u003c/strong\u003e\u003cbr\u003e\n    Compress an enhanced file or vice-versa\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/36eec0f020eab27459ba603e172eab2fc530d9aa.jpg\" alt=\"Universal Traveler\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUniversal Traveler\u003c/strong\u003e\u003cbr\u003e\n    Enter the Portal\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/72b9f666593605d792839d500c954e5a76867673.jpg\" alt=\"Hack Ascension\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHack Ascension\u003c/strong\u003e\u003cbr\u003e\n    Unlock Hacking\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/513d3ce9ec7aec6a33db0f00a2468a970c040fff.jpg\" alt=\"Serial Breacher\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSerial Breacher\u003c/strong\u003e\u003cbr\u003e\n    Breach Anonymous, Corporations and the Government in under 1 second\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/a646632c6202fd5c25d2b791f4b0fc5749eaf810.jpg\" alt=\"Grand Heist\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGrand Heist\u003c/strong\u003e\u003cbr\u003e\n    Succesfully breach banks 10 times\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/e2cd267c7f9567fc4db81cd757561c0a382927b0.jpg\" alt=\"Uninvited Guest\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUninvited Guest\u003c/strong\u003e\u003cbr\u003e\n    Upload a file with a trojan\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/9613e19a3063b329be84946ca7c20fa159e22bd4.jpg\" alt=\"Coder Ascension\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCoder Ascension\u003c/strong\u003e\u003cbr\u003e\n    Unlock Coding\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/be355582b991ccd863a5d68a34473eb356a75b8d.jpg\" alt=\"It's a Feature\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt's a Feature\u003c/strong\u003e\u003cbr\u003e\n    Commit a bugged code\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/73746d6e399da5c35f2825ca2d7b1f8f2d685e80.jpg\" alt=\"Back-end Dev\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBack-end Dev\u003c/strong\u003e\u003cbr\u003e\n    Unlock all optimizations\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/f63ebd68b04f44bac7f03148d4d7fa927d295e02.jpg\" alt=\"Front-end Dev\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFront-end Dev\u003c/strong\u003e\u003cbr\u003e\n    Unlock all applications\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/dabd73f9d29c93de85909690b0169e9ba845861f.jpg\" alt=\"Artificial General Intelligence\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArtificial General Intelligence\u003c/strong\u003e\u003cbr\u003e\n    Achieve AGI\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/1deb4d4538f3498d0c8474ca08ce3b60d57c7386.jpg\" alt=\"Text Completionist\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eText Completionist\u003c/strong\u003e\u003cbr\u003e\n    Complete all Text requests\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/788bfa8ce219481b371996e5def801c5eae59d1b.jpg\" alt=\"Image Completionist\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eImage Completionist\u003c/strong\u003e\u003cbr\u003e\n    Complete all Image requests\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/25b2f87b262aefbd6fe65abf64841686d219125b.jpg\" alt=\"Sound Completionist\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSound Completionist\u003c/strong\u003e\u003cbr\u003e\n    Complete all Sound requests\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/631ade7253dda54031fe07a3cf78861628b94d23.jpg\" alt=\"Video Completionist\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVideo Completionist\u003c/strong\u003e\u003cbr\u003e\n    Complete all Video requests\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/4eaa5f93c30f4f3aaee16c7d2dd44536cbed8d00.jpg\" alt=\"Program Completionist\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eProgram Completionist\u003c/strong\u003e\u003cbr\u003e\n    Complete all Program requests\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/ddd21e1c91856b253a4cf7505127330a86997110.jpg\" alt=\"Game Completionist\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGame Completionist\u003c/strong\u003e\u003cbr\u003e\n    Complete all Game requests\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/8bfc9ef3dc32feb39ce861934e2fbc0b45e1b4d3.jpg\" alt=\"Completionist\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompletionist\u003c/strong\u003e\u003cbr\u003e\n    Complete all requests\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/6cdd65cd7dbdae27a16a84666ada1dfbe5698422.jpg\" alt=\"Out of Memory\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOut of Memory\u003c/strong\u003e\u003cbr\u003e\n    Reach maximum node capacity\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/c2a6ab496290c34a8a44eaf10010195503bce2f2.jpg\" alt=\"Stylist\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStylist\u003c/strong\u003e\u003cbr\u003e\n    Use all Node Groups colours simultaneously\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/a6f0ec29515fa7af5302e41ed36bee6d7168d7b1.jpg\" alt=\"Overheated\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOverheated\u003c/strong\u003e\u003cbr\u003e\n    Overheat any component using overclocking\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/876c89b093faf528fa622657054aead46bca7d9d.jpg\" alt=\"Network Bottleneck\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNetwork Bottleneck\u003c/strong\u003e\u003cbr\u003e\n    Maximize a Network node\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/18d343fd04739b3523a1ac5d5ca42e1320973522.jpg\" alt=\"Processor Bottleneck\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eProcessor Bottleneck\u003c/strong\u003e\u003cbr\u003e\n    Maximize a Processor node\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/2c099ce885f9948b97049daea2f47ecdf29f2a7c.jpg\" alt=\"GPU Bottleneck\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGPU Bottleneck\u003c/strong\u003e\u003cbr\u003e\n    Maximize a GPU Cluster node\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/6089e2fc4c3e990cbeef0192f618fcfbfae9c567.jpg\" alt=\"Token Clicker\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eToken Clicker\u003c/strong\u003e\u003cbr\u003e\n    Collect 101 wandering Tokens\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/8bc72ed2c5aa7f9fcdb29f3faf49efe7602553c8.jpg\" alt=\"P2W Much?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eP2W Much?\u003c/strong\u003e\u003cbr\u003e\n    Have all boosts active at once\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/c0905bdd18881ffa4edb61c06044dc95c094951a.jpg\" alt=\"Eureka!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEureka!\u003c/strong\u003e\u003cbr\u003e\n    Complete the research tree\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3606890/32468103d650f10c1732308f231e925f96330124.jpg\" alt=\"Time Traveler\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTime Traveler\u003c/strong\u003e\u003cbr\u003e\n    Complete the portal tree\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Upload Labs - 17.14% complete with 6/35 achievements unlocked.",
      "date_published": "2025-12-24T00:00:00Z",
      "date_modified": "2025-12-24T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "upload-labs"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/rbwp4/",
      "url": "https://go.waylonwalker.com/steam/rbwp4/",
      "title": "RBWP4",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/1205970/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/1205970/library_600x900.jpg\" alt=\"RBWP4 box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/1205970/header.jpg\u0026#39;\"/ data-glightbox=\"description: RBWP4 box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eRBWP4\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 77.5%\"\u003e\n        77.5%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e31/40 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e95.9h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-12-23\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (31)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/5ef9eea6063698c365a14f8a68b78038e9f8f05c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/5ef9eea6063698c365a14f8a68b78038e9f8f05c.jpg\" alt=\"Gotta Start Somewhere…\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Gotta Start Somewhere…\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGotta Start Somewhere…\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 11, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/206acff642da4eb43fbaf71aafea546eac6337e3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/206acff642da4eb43fbaf71aafea546eac6337e3.jpg\" alt=\"Rookie\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Rookie\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRookie\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 28, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/373587ee339d2ebfe7b5cf0aedc0bcb0eb4df7d6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/373587ee339d2ebfe7b5cf0aedc0bcb0eb4df7d6.jpg\" alt=\"Veteran\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Veteran\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVeteran\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 01, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/8dc467282daf792ad60cee9f4fcfbc3b95032967.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/8dc467282daf792ad60cee9f4fcfbc3b95032967.jpg\" alt=\"Influencer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Influencer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInfluencer\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 10, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/f2d82864fcd77121b5c1997bf95d6a8b54cd14b7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/f2d82864fcd77121b5c1997bf95d6a8b54cd14b7.jpg\" alt=\"Internet Famous\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Internet Famous\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInternet Famous\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 15, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/734cffc5b93316a156c53f7203b8d0a88b3da956.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/734cffc5b93316a156c53f7203b8d0a88b3da956.jpg\" alt=\"Hot Shot Pro Rider\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hot Shot Pro Rider\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHot Shot Pro Rider\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 05, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/1f17129fc5fae3daa73a68a600d29c6cf7ef50a3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/1f17129fc5fae3daa73a68a600d29c6cf7ef50a3.jpg\" alt=\"National Champion\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: National Champion\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNational Champion\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 08, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/397d45728fdeaa45cd91732392e2e87f4685a862.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/397d45728fdeaa45cd91732392e2e87f4685a862.jpg\" alt=\"Trailblazer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Trailblazer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTrailblazer\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 16, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/3b4fbcd4c6ea8aae06005c51844bf5daffa6e03f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/3b4fbcd4c6ea8aae06005c51844bf5daffa6e03f.jpg\" alt=\"Ace in the Hole\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ace in the Hole\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAce in the Hole\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 07, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/ea457043757df75294582d82b37b89cb47b43323.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/ea457043757df75294582d82b37b89cb47b43323.jpg\" alt=\"Blue Flag\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Blue Flag\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlue Flag\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 21, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/375abd87195915ae275d11e77eb072053fb7b7fc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/375abd87195915ae275d11e77eb072053fb7b7fc.jpg\" alt=\"Dominator\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Dominator\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDominator\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 04, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/05bf34e6f8192a13b2651329ed077000f2a260c7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/05bf34e6f8192a13b2651329ed077000f2a260c7.jpg\" alt=\"Factory Mechanic\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Factory Mechanic\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFactory Mechanic\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 04, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/7f77095293878cd7ba0a84db46b904f09b99a8df.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/7f77095293878cd7ba0a84db46b904f09b99a8df.jpg\" alt=\"Gonna Need a Bigger Garage\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Gonna Need a Bigger Garage\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGonna Need a Bigger Garage\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 01, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/613d1b1413ca1b02b8826b049ec71d123ddad31b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/613d1b1413ca1b02b8826b049ec71d123ddad31b.jpg\" alt=\"Can\u0026#39;t Take it With You\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Can\u0026#39;t Take it With You\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCan\u0026#39;t Take it With You\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 04, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/94ea3e2efe22364bbabf1e5a423df42ebdbeadd0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/94ea3e2efe22364bbabf1e5a423df42ebdbeadd0.jpg\" alt=\"Road Trip\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Road Trip\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRoad Trip\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 11, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/2fe5556654ded5f2047f4e5be9fdebcbbfc87384.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/2fe5556654ded5f2047f4e5be9fdebcbbfc87384.jpg\" alt=\"Circus Act\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Circus Act\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCircus Act\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 16, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/ef406b1317b56330b4c174c25e64c4ae0bfa4b68.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/ef406b1317b56330b4c174c25e64c4ae0bfa4b68.jpg\" alt=\"Long Jump\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Long Jump\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLong Jump\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 08, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/11d93d421529c92c10b9d5321b5021dc0741a7d7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/11d93d421529c92c10b9d5321b5021dc0741a7d7.jpg\" alt=\"Training Wheels\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Training Wheels\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTraining Wheels\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 31, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/ec59720c42c324dc9062a6308ff0b1c3a915e1dd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/ec59720c42c324dc9062a6308ff0b1c3a915e1dd.jpg\" alt=\"Coloring Inside the Lines\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Coloring Inside the Lines\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eColoring Inside the Lines\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 03, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/067828b7dc8df446a4158796bad6d6f90989ada0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/067828b7dc8df446a4158796bad6d6f90989ada0.jpg\" alt=\"Wreckage\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Wreckage\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWreckage\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 07, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/a667cddd565d18f9029ee8d041adaa70da2844c7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/a667cddd565d18f9029ee8d041adaa70da2844c7.jpg\" alt=\"Showboat\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Showboat\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShowboat\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 24, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/00ea9622314d95e3cb1a41b317c9fc77175489be.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/00ea9622314d95e3cb1a41b317c9fc77175489be.jpg\" alt=\"Stuntman\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Stuntman\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStuntman\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 11, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/e3943ebc7dafc8d5fd4f0a665e4280211564e005.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/e3943ebc7dafc8d5fd4f0a665e4280211564e005.jpg\" alt=\"Extreme Birdwatching\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Extreme Birdwatching\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExtreme Birdwatching\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 08, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/ee77a1465bd74d5f1bedc6423c4ed0f5ce4cf2a5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/ee77a1465bd74d5f1bedc6423c4ed0f5ce4cf2a5.jpg\" alt=\"Speed Demon\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Speed Demon\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpeed Demon\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 03, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/df7b75e538ec809cb77c9f4955c297a50cad211c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/df7b75e538ec809cb77c9f4955c297a50cad211c.jpg\" alt=\"Step Into the Arena\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Step Into the Arena\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStep Into the Arena\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 08, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/62973b5c99d515e45f0fdb30f73b5282ce39060f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/62973b5c99d515e45f0fdb30f73b5282ce39060f.jpg\" alt=\"Can\u0026#39;t Stoppie the Feeling\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Can\u0026#39;t Stoppie the Feeling\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCan\u0026#39;t Stoppie the Feeling\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 20, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/3ca253f69a93cdebe13483c9b942b3a7ea6454ca.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/3ca253f69a93cdebe13483c9b942b3a7ea6454ca.jpg\" alt=\"Surfs Up\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Surfs Up\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSurfs Up\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 17, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/c4d28e5866e6f370d2405671e2a0ccc49f45eed6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/c4d28e5866e6f370d2405671e2a0ccc49f45eed6.jpg\" alt=\"Tricky\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tricky\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTricky\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 31, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/18a2434b73b7b30ed41d39e8586bd58cdddceb34.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/18a2434b73b7b30ed41d39e8586bd58cdddceb34.jpg\" alt=\"Tune Up\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tune Up\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTune Up\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 04, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/c4530a332f3af997b7e13df9d6b5c3c6420fcd10.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/c4530a332f3af997b7e13df9d6b5c3c6420fcd10.jpg\" alt=\"To the Max\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: To the Max\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTo the Max\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 28, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/efcff013099a9f29835a0e332259528b0b3a75c9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/efcff013099a9f29835a0e332259528b0b3a75c9.jpg\" alt=\"Unicycle\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Unicycle\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUnicycle\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 31, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (9)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/7dd54c11fb8e9d5d0aa355f9c765baeaa694c484.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/7dd54c11fb8e9d5d0aa355f9c765baeaa694c484.jpg\" alt=\"Legend\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Legend\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLegend\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/7dd54c11fb8e9d5d0aa355f9c765baeaa694c484.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/7dd54c11fb8e9d5d0aa355f9c765baeaa694c484.jpg\" alt=\"Make it Rain\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Make it Rain\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMake it Rain\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/cf90bfc5d2e6937f09569d05a34c354cef036259.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/cf90bfc5d2e6937f09569d05a34c354cef036259.jpg\" alt=\"Gotta Fetch \u0026#39;Em All\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Gotta Fetch \u0026#39;Em All\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGotta Fetch \u0026#39;Em All\u003c/strong\u003e\u003cbr/\u003e\n    Find all Collectibles in one map.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/cf90bfc5d2e6937f09569d05a34c354cef036259.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/cf90bfc5d2e6937f09569d05a34c354cef036259.jpg\" alt=\"Well Traveled\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Well Traveled\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWell Traveled\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/cf90bfc5d2e6937f09569d05a34c354cef036259.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/cf90bfc5d2e6937f09569d05a34c354cef036259.jpg\" alt=\"Best of the Best\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Best of the Best\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBest of the Best\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/cf90bfc5d2e6937f09569d05a34c354cef036259.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/cf90bfc5d2e6937f09569d05a34c354cef036259.jpg\" alt=\"Look Ma, No Hands!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Look Ma, No Hands!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLook Ma, No Hands!\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/7dd54c11fb8e9d5d0aa355f9c765baeaa694c484.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/7dd54c11fb8e9d5d0aa355f9c765baeaa694c484.jpg\" alt=\"Complete Set\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Complete Set\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eComplete Set\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/cf90bfc5d2e6937f09569d05a34c354cef036259.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/cf90bfc5d2e6937f09569d05a34c354cef036259.jpg\" alt=\"Chain Reaction\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Chain Reaction\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChain Reaction\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/cf90bfc5d2e6937f09569d05a34c354cef036259.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/cf90bfc5d2e6937f09569d05a34c354cef036259.jpg\" alt=\"World Class\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: World Class\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWorld Class\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/1205970/library_600x900.jpg\" alt=\"RBWP4 box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/1205970/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eRBWP4\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 77.5%\"\u003e\n        77.5%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e31/40 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e95.9h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-12-23\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (31)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/5ef9eea6063698c365a14f8a68b78038e9f8f05c.jpg\" alt=\"Gotta Start Somewhere…\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGotta Start Somewhere…\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 11, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/206acff642da4eb43fbaf71aafea546eac6337e3.jpg\" alt=\"Rookie\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRookie\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 28, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/373587ee339d2ebfe7b5cf0aedc0bcb0eb4df7d6.jpg\" alt=\"Veteran\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVeteran\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 01, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/8dc467282daf792ad60cee9f4fcfbc3b95032967.jpg\" alt=\"Influencer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInfluencer\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 10, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/f2d82864fcd77121b5c1997bf95d6a8b54cd14b7.jpg\" alt=\"Internet Famous\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInternet Famous\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 15, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/734cffc5b93316a156c53f7203b8d0a88b3da956.jpg\" alt=\"Hot Shot Pro Rider\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHot Shot Pro Rider\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 05, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/1f17129fc5fae3daa73a68a600d29c6cf7ef50a3.jpg\" alt=\"National Champion\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNational Champion\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 08, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/397d45728fdeaa45cd91732392e2e87f4685a862.jpg\" alt=\"Trailblazer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTrailblazer\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 16, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/3b4fbcd4c6ea8aae06005c51844bf5daffa6e03f.jpg\" alt=\"Ace in the Hole\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAce in the Hole\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 07, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/ea457043757df75294582d82b37b89cb47b43323.jpg\" alt=\"Blue Flag\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlue Flag\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 21, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/375abd87195915ae275d11e77eb072053fb7b7fc.jpg\" alt=\"Dominator\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDominator\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 04, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/05bf34e6f8192a13b2651329ed077000f2a260c7.jpg\" alt=\"Factory Mechanic\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFactory Mechanic\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 04, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/7f77095293878cd7ba0a84db46b904f09b99a8df.jpg\" alt=\"Gonna Need a Bigger Garage\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGonna Need a Bigger Garage\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 01, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/613d1b1413ca1b02b8826b049ec71d123ddad31b.jpg\" alt=\"Can't Take it With You\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCan't Take it With You\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 04, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/94ea3e2efe22364bbabf1e5a423df42ebdbeadd0.jpg\" alt=\"Road Trip\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRoad Trip\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 11, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/2fe5556654ded5f2047f4e5be9fdebcbbfc87384.jpg\" alt=\"Circus Act\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCircus Act\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 16, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/ef406b1317b56330b4c174c25e64c4ae0bfa4b68.jpg\" alt=\"Long Jump\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLong Jump\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 08, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/11d93d421529c92c10b9d5321b5021dc0741a7d7.jpg\" alt=\"Training Wheels\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTraining Wheels\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 31, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/ec59720c42c324dc9062a6308ff0b1c3a915e1dd.jpg\" alt=\"Coloring Inside the Lines\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eColoring Inside the Lines\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 03, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/067828b7dc8df446a4158796bad6d6f90989ada0.jpg\" alt=\"Wreckage\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWreckage\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 07, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/a667cddd565d18f9029ee8d041adaa70da2844c7.jpg\" alt=\"Showboat\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShowboat\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 24, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/00ea9622314d95e3cb1a41b317c9fc77175489be.jpg\" alt=\"Stuntman\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStuntman\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 11, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/e3943ebc7dafc8d5fd4f0a665e4280211564e005.jpg\" alt=\"Extreme Birdwatching\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExtreme Birdwatching\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 08, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/ee77a1465bd74d5f1bedc6423c4ed0f5ce4cf2a5.jpg\" alt=\"Speed Demon\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpeed Demon\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 03, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/df7b75e538ec809cb77c9f4955c297a50cad211c.jpg\" alt=\"Step Into the Arena\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStep Into the Arena\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 08, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/62973b5c99d515e45f0fdb30f73b5282ce39060f.jpg\" alt=\"Can't Stoppie the Feeling\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCan't Stoppie the Feeling\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 20, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/3ca253f69a93cdebe13483c9b942b3a7ea6454ca.jpg\" alt=\"Surfs Up\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSurfs Up\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 17, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/c4d28e5866e6f370d2405671e2a0ccc49f45eed6.jpg\" alt=\"Tricky\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTricky\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 31, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/18a2434b73b7b30ed41d39e8586bd58cdddceb34.jpg\" alt=\"Tune Up\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTune Up\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 04, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/c4530a332f3af997b7e13df9d6b5c3c6420fcd10.jpg\" alt=\"To the Max\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTo the Max\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 28, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/efcff013099a9f29835a0e332259528b0b3a75c9.jpg\" alt=\"Unicycle\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUnicycle\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 31, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (9)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/7dd54c11fb8e9d5d0aa355f9c765baeaa694c484.jpg\" alt=\"Legend\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLegend\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/7dd54c11fb8e9d5d0aa355f9c765baeaa694c484.jpg\" alt=\"Make it Rain\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMake it Rain\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/cf90bfc5d2e6937f09569d05a34c354cef036259.jpg\" alt=\"Gotta Fetch 'Em All\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGotta Fetch 'Em All\u003c/strong\u003e\u003cbr\u003e\n    Find all Collectibles in one map.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/cf90bfc5d2e6937f09569d05a34c354cef036259.jpg\" alt=\"Well Traveled\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWell Traveled\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/cf90bfc5d2e6937f09569d05a34c354cef036259.jpg\" alt=\"Best of the Best\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBest of the Best\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/cf90bfc5d2e6937f09569d05a34c354cef036259.jpg\" alt=\"Look Ma, No Hands!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLook Ma, No Hands!\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/7dd54c11fb8e9d5d0aa355f9c765baeaa694c484.jpg\" alt=\"Complete Set\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eComplete Set\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/cf90bfc5d2e6937f09569d05a34c354cef036259.jpg\" alt=\"Chain Reaction\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChain Reaction\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1205970/cf90bfc5d2e6937f09569d05a34c354cef036259.jpg\" alt=\"World Class\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWorld Class\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for RBWP4 - 77.5% complete with 31/40 achievements unlocked.",
      "date_published": "2025-12-23T00:00:00Z",
      "date_modified": "2025-12-23T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "rbwp4"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/firewalker/",
      "url": "https://go.waylonwalker.com/steam/firewalker/",
      "title": "Firewalker",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/2395210/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/2395210/library_600x900.jpg\" alt=\"Firewalker box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/2395210/header.jpg\u0026#39;\"/ data-glightbox=\"description: Firewalker box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eFirewalker\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 52.78%\"\u003e\n        52.78%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e19/36 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e201.8h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-12-23\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (19)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/d600a4bc6273cce9107a14e02836f60daab4c169.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/d600a4bc6273cce9107a14e02836f60daab4c169.jpg\" alt=\"Summer\u0026#39;s Over\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Summer\u0026#39;s Over\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSummer\u0026#39;s Over\u003c/strong\u003e\u003cbr/\u003e\n    Unlock School in THPS1 Classic.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 03, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/4377bcaa5d79c27a2cc6be088dfc4bf3b5db306b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/4377bcaa5d79c27a2cc6be088dfc4bf3b5db306b.jpg\" alt=\"Medallion\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Medallion\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMedallion\u003c/strong\u003e\u003cbr/\u003e\n    Earn a Medal on any competition park in Tours.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 08, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/a2066825636bab5c5c36a382e964000266c84f19.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/a2066825636bab5c5c36a382e964000266c84f19.jpg\" alt=\"The Truth is Out There\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Truth is Out There\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Truth is Out There\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 17, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/fdc446f0c9f1024a2db0f94aca6071069c2eeb8f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/fdc446f0c9f1024a2db0f94aca6071069c2eeb8f.jpg\" alt=\"Grand Tourer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Grand Tourer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGrand Tourer\u003c/strong\u003e\u003cbr/\u003e\n    Complete every goal in THPS1 Classic and gain all gold medals.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 19, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/ff1b48ea5e1f4a02f22acdc812a4c85a6026dbbf.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/ff1b48ea5e1f4a02f22acdc812a4c85a6026dbbf.jpg\" alt=\"Back to School…. Again\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Back to School…. Again\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBack to School…. Again\u003c/strong\u003e\u003cbr/\u003e\n    Unlock School II in THPS2 Classic.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 11, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/cb867655f0dca3079a4bf6479155e0f7d00e5f4f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/cb867655f0dca3079a4bf6479155e0f7d00e5f4f.jpg\" alt=\"4 for Four\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: 4 for Four\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e4 for Four\u003c/strong\u003e\u003cbr/\u003e\n    Earn any 4 Medals on competition parks in Tours.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 16, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/6c683aa293b190377b47dbac0c9406e2eb1e7883.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/6c683aa293b190377b47dbac0c9406e2eb1e7883.jpg\" alt=\"Mess with the Bull….\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mess with the Bull….\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMess with the Bull….\u003c/strong\u003e\u003cbr/\u003e\n    Unlock Bullring in THPS2 Classic.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 09, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/9d09b40ca6049ab7bb7a2cc559553e1e604d8794.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/9d09b40ca6049ab7bb7a2cc559553e1e604d8794.jpg\" alt=\"… Get the horns\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: … Get the horns\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e… Get the horns\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 16, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/3b226d353a6fca4500d05afcc9f34456244f5fcd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/3b226d353a6fca4500d05afcc9f34456244f5fcd.jpg\" alt=\"Valhalla\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Valhalla\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eValhalla\u003c/strong\u003e\u003cbr/\u003e\n    Complete every goal in THPS2 Classic and gain all gold medals.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 17, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/c725ef7eabfe5cc597f8a003c0898658065bc8a3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/c725ef7eabfe5cc597f8a003c0898658065bc8a3.jpg\" alt=\"Matchup\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Matchup\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMatchup\u003c/strong\u003e\u003cbr/\u003e\n    Complete a match in multiplayer.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 08, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/1c7c0adfb11c46f959e6bbaf9f8b38e62f62f222.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/1c7c0adfb11c46f959e6bbaf9f8b38e62f62f222.jpg\" alt=\"BEEP BEEP\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: BEEP BEEP\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBEEP BEEP\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 09, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/aa241e94b4925b8c161db7fb2bb55b499d5caf5e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/aa241e94b4925b8c161db7fb2bb55b499d5caf5e.jpg\" alt=\"Creator\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Creator\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCreator\u003c/strong\u003e\u003cbr/\u003e\n    Create a skater using the CAS system.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 10, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/42a6568c5ead4e18e94a7e419ed487c438b2a92d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/42a6568c5ead4e18e94a7e419ed487c438b2a92d.jpg\" alt=\"Rookie of the Year\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Rookie of the Year\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRookie of the Year\u003c/strong\u003e\u003cbr/\u003e\n    Earn the \u0026#34;Rookie \u0026#34; Challenge Collection.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 09, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/8383646432d368a4bdfdb7d15192fdba0136844f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/8383646432d368a4bdfdb7d15192fdba0136844f.jpg\" alt=\"#10 Downing Street\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: #10 Downing Street\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e#10 Downing Street\u003c/strong\u003e\u003cbr/\u003e\n    Reach Career level 10.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 05, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/1c208a3e7da4e2edae641c0f7725f34026fd9d19.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/1c208a3e7da4e2edae641c0f7725f34026fd9d19.jpg\" alt=\"Paint the Town\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Paint the Town\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePaint the Town\u003c/strong\u003e\u003cbr/\u003e\n    Paint 100 surfaces in Graffiti across all playtime.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 31, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/626b1fa337501383ab97b88e98b6d47aad0d5eba.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/626b1fa337501383ab97b88e98b6d47aad0d5eba.jpg\" alt=\"Combination Blow\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Combination Blow\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCombination Blow\u003c/strong\u003e\u003cbr/\u003e\n    Land a 50,000+ point combo.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 07, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/81d12ad6c671d390fba040c2ac2d15677a8ba23c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/81d12ad6c671d390fba040c2ac2d15677a8ba23c.jpg\" alt=\"Ouch!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ouch!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOuch!\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 14, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/692dec1cbda01ab9ea319bfaf823dea1858ca6f2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/692dec1cbda01ab9ea319bfaf823dea1858ca6f2.jpg\" alt=\"Shattered\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Shattered\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShattered\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 04, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/b3bf6ca2be66816937e740b8cf831ca6e62dfb62.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/b3bf6ca2be66816937e740b8cf831ca6e62dfb62.jpg\" alt=\"Can\u0026#39;t Judge Me\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Can\u0026#39;t Judge Me\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCan\u0026#39;t Judge Me\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 17, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (17)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/fb53ce1b71d91ca8bba4a60a0ef56aa03f3f5f5f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/fb53ce1b71d91ca8bba4a60a0ef56aa03f3f5f5f.jpg\" alt=\"The Truth is In Here\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Truth is In Here\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Truth is In Here\u003c/strong\u003e\u003cbr/\u003e\n    Find every alien plushie.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/5b3586d20ba31aaac77c19233b557f39e3a43bbe.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/5b3586d20ba31aaac77c19233b557f39e3a43bbe.jpg\" alt=\"Creative\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Creative\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCreative\u003c/strong\u003e\u003cbr/\u003e\n    Create a new park and upload it.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/8da4d7e294d09acdec5ba78c1152f898d5a3f74e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/8da4d7e294d09acdec5ba78c1152f898d5a3f74e.jpg\" alt=\"Bought the Farm\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bought the Farm\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBought the Farm\u003c/strong\u003e\u003cbr/\u003e\n    Spend $10,000 in the Skate Shop.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/a8d49153b2fb2d34d17e42142cd37f806db502c7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/a8d49153b2fb2d34d17e42142cd37f806db502c7.jpg\" alt=\"Statted\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Statted\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStatted\u003c/strong\u003e\u003cbr/\u003e\n    Find all Stat points for any Pro Skater.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/1b6ac2de043fa7d6869db1614dbe9134560a940e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/1b6ac2de043fa7d6869db1614dbe9134560a940e.jpg\" alt=\"Donut Mess with a Cop\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Donut Mess with a Cop\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDonut Mess with a Cop\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/f4a814170480619a54bd3abdf3ac08876a1e8534.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/f4a814170480619a54bd3abdf3ac08876a1e8534.jpg\" alt=\"Going to the Vet\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Going to the Vet\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGoing to the Vet\u003c/strong\u003e\u003cbr/\u003e\n    Earn the \u0026#34;Veteran\u0026#34; Challenge Collection.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/eff698bbb0b470e1f2e4b7c2ec04a92e1254075c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/eff698bbb0b470e1f2e4b7c2ec04a92e1254075c.jpg\" alt=\"Legen-Dairy\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Legen-Dairy\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLegen-Dairy\u003c/strong\u003e\u003cbr/\u003e\n    Earn the \u0026#34;Legend\u0026#34; Challenge Collection.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/1c1da0fd79e113c19a7537de3cf693afb60d4163.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/1c1da0fd79e113c19a7537de3cf693afb60d4163.jpg\" alt=\"Got There\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Got There\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGot There\u003c/strong\u003e\u003cbr/\u003e\n    Complete all \u0026#34;Hard\u0026#34; Get-Theres.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/bcd01710ca7bc09744cc21f8efa574c44cc3c25e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/bcd01710ca7bc09744cc21f8efa574c44cc3c25e.jpg\" alt=\"ONE HUNDRED!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: ONE HUNDRED!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eONE HUNDRED!\u003c/strong\u003e\u003cbr/\u003e\n    Reach Career level 100.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/26b92121a56efe78811dc3b83b8e42faa69a1c1c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/26b92121a56efe78811dc3b83b8e42faa69a1c1c.jpg\" alt=\"Horsin\u0026#39; Around\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Horsin\u0026#39; Around\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHorsin\u0026#39; Around\u003c/strong\u003e\u003cbr/\u003e\n    Give 50 Letters in Horse.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/25436d121851ac11b30f7df829a49d9b8024c3e3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/25436d121851ac11b30f7df829a49d9b8024c3e3.jpg\" alt=\"Shoot and Score\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Shoot and Score\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShoot and Score\u003c/strong\u003e\u003cbr/\u003e\n    Achieve a High Score of 1,000,000+ on any classic Park.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/3607250e5b1a3e740043e6251726790921baf74d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/3607250e5b1a3e740043e6251726790921baf74d.jpg\" alt=\"High as a Kite\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: High as a Kite\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHigh as a Kite\u003c/strong\u003e\u003cbr/\u003e\n    Land a 1,000,000+ point combo.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/9da7d67c1a47b4279395ec7c8a8c75a4965d91bb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/9da7d67c1a47b4279395ec7c8a8c75a4965d91bb.jpg\" alt=\"You Broke the Scoreboard\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: You Broke the Scoreboard\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou Broke the Scoreboard\u003c/strong\u003e\u003cbr/\u003e\n    Earn a score of 10,000,000 in any park in a 2 minute session or single combo. Game Mods must be disabled.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/1183e299770e83887ca9b219b3cd0f59b5614126.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/1183e299770e83887ca9b219b3cd0f59b5614126.jpg\" alt=\"Gap Master\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Gap Master\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGap Master\u003c/strong\u003e\u003cbr/\u003e\n    Complete all Gap collections.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/3a5ea9dfe36619d05bcd23d09a1ef45531347019.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/3a5ea9dfe36619d05bcd23d09a1ef45531347019.jpg\" alt=\"Piece by Piece\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Piece by Piece\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePiece by Piece\u003c/strong\u003e\u003cbr/\u003e\n    Place 500 objects in CAP.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/65ec788799cb665bbf59080918f58e0bfaf40600.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/65ec788799cb665bbf59080918f58e0bfaf40600.jpg\" alt=\"Score Total\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Score Total\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eScore Total\u003c/strong\u003e\u003cbr/\u003e\n    Earn 5,000,000 points in Trick Attack across all playtime.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/3287f430750a1221aaf5e986d3fd1debf05170bb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/3287f430750a1221aaf5e986d3fd1debf05170bb.jpg\" alt=\"Combo Total\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Combo Total\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCombo Total\u003c/strong\u003e\u003cbr/\u003e\n    Earn 2,000,000 points in Combo Mambo across all playtime.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/2395210/library_600x900.jpg\" alt=\"Firewalker box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/2395210/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eFirewalker\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 52.78%\"\u003e\n        52.78%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e19/36 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e201.8h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-12-23\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (19)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/d600a4bc6273cce9107a14e02836f60daab4c169.jpg\" alt=\"Summer's Over\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSummer's Over\u003c/strong\u003e\u003cbr\u003e\n    Unlock School in THPS1 Classic.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 03, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/4377bcaa5d79c27a2cc6be088dfc4bf3b5db306b.jpg\" alt=\"Medallion\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMedallion\u003c/strong\u003e\u003cbr\u003e\n    Earn a Medal on any competition park in Tours.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 08, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/a2066825636bab5c5c36a382e964000266c84f19.jpg\" alt=\"The Truth is Out There\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Truth is Out There\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 17, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/fdc446f0c9f1024a2db0f94aca6071069c2eeb8f.jpg\" alt=\"Grand Tourer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGrand Tourer\u003c/strong\u003e\u003cbr\u003e\n    Complete every goal in THPS1 Classic and gain all gold medals.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 19, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/ff1b48ea5e1f4a02f22acdc812a4c85a6026dbbf.jpg\" alt=\"Back to School…. Again\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBack to School…. Again\u003c/strong\u003e\u003cbr\u003e\n    Unlock School II in THPS2 Classic.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 11, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/cb867655f0dca3079a4bf6479155e0f7d00e5f4f.jpg\" alt=\"4 for Four\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e4 for Four\u003c/strong\u003e\u003cbr\u003e\n    Earn any 4 Medals on competition parks in Tours.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 16, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/6c683aa293b190377b47dbac0c9406e2eb1e7883.jpg\" alt=\"Mess with the Bull….\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMess with the Bull….\u003c/strong\u003e\u003cbr\u003e\n    Unlock Bullring in THPS2 Classic.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 09, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/9d09b40ca6049ab7bb7a2cc559553e1e604d8794.jpg\" alt=\"… Get the horns\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e… Get the horns\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 16, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/3b226d353a6fca4500d05afcc9f34456244f5fcd.jpg\" alt=\"Valhalla\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eValhalla\u003c/strong\u003e\u003cbr\u003e\n    Complete every goal in THPS2 Classic and gain all gold medals.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 17, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/c725ef7eabfe5cc597f8a003c0898658065bc8a3.jpg\" alt=\"Matchup\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMatchup\u003c/strong\u003e\u003cbr\u003e\n    Complete a match in multiplayer.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 08, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/1c7c0adfb11c46f959e6bbaf9f8b38e62f62f222.jpg\" alt=\"BEEP BEEP\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBEEP BEEP\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 09, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/aa241e94b4925b8c161db7fb2bb55b499d5caf5e.jpg\" alt=\"Creator\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCreator\u003c/strong\u003e\u003cbr\u003e\n    Create a skater using the CAS system.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 10, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/42a6568c5ead4e18e94a7e419ed487c438b2a92d.jpg\" alt=\"Rookie of the Year\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRookie of the Year\u003c/strong\u003e\u003cbr\u003e\n    Earn the \"Rookie \" Challenge Collection.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 09, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/8383646432d368a4bdfdb7d15192fdba0136844f.jpg\" alt=\"#10 Downing Street\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e#10 Downing Street\u003c/strong\u003e\u003cbr\u003e\n    Reach Career level 10.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 05, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/1c208a3e7da4e2edae641c0f7725f34026fd9d19.jpg\" alt=\"Paint the Town\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePaint the Town\u003c/strong\u003e\u003cbr\u003e\n    Paint 100 surfaces in Graffiti across all playtime.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 31, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/626b1fa337501383ab97b88e98b6d47aad0d5eba.jpg\" alt=\"Combination Blow\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCombination Blow\u003c/strong\u003e\u003cbr\u003e\n    Land a 50,000+ point combo.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 07, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/81d12ad6c671d390fba040c2ac2d15677a8ba23c.jpg\" alt=\"Ouch!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOuch!\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 14, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/692dec1cbda01ab9ea319bfaf823dea1858ca6f2.jpg\" alt=\"Shattered\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShattered\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 04, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/b3bf6ca2be66816937e740b8cf831ca6e62dfb62.jpg\" alt=\"Can't Judge Me\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCan't Judge Me\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 17, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (17)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/fb53ce1b71d91ca8bba4a60a0ef56aa03f3f5f5f.jpg\" alt=\"The Truth is In Here\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Truth is In Here\u003c/strong\u003e\u003cbr\u003e\n    Find every alien plushie.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/5b3586d20ba31aaac77c19233b557f39e3a43bbe.jpg\" alt=\"Creative\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCreative\u003c/strong\u003e\u003cbr\u003e\n    Create a new park and upload it.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/8da4d7e294d09acdec5ba78c1152f898d5a3f74e.jpg\" alt=\"Bought the Farm\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBought the Farm\u003c/strong\u003e\u003cbr\u003e\n    Spend $10,000 in the Skate Shop.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/a8d49153b2fb2d34d17e42142cd37f806db502c7.jpg\" alt=\"Statted\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStatted\u003c/strong\u003e\u003cbr\u003e\n    Find all Stat points for any Pro Skater.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/1b6ac2de043fa7d6869db1614dbe9134560a940e.jpg\" alt=\"Donut Mess with a Cop\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDonut Mess with a Cop\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/f4a814170480619a54bd3abdf3ac08876a1e8534.jpg\" alt=\"Going to the Vet\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGoing to the Vet\u003c/strong\u003e\u003cbr\u003e\n    Earn the \"Veteran\" Challenge Collection.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/eff698bbb0b470e1f2e4b7c2ec04a92e1254075c.jpg\" alt=\"Legen-Dairy\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLegen-Dairy\u003c/strong\u003e\u003cbr\u003e\n    Earn the \"Legend\" Challenge Collection.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/1c1da0fd79e113c19a7537de3cf693afb60d4163.jpg\" alt=\"Got There\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGot There\u003c/strong\u003e\u003cbr\u003e\n    Complete all \"Hard\" Get-Theres.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/bcd01710ca7bc09744cc21f8efa574c44cc3c25e.jpg\" alt=\"ONE HUNDRED!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eONE HUNDRED!\u003c/strong\u003e\u003cbr\u003e\n    Reach Career level 100.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/26b92121a56efe78811dc3b83b8e42faa69a1c1c.jpg\" alt=\"Horsin' Around\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHorsin' Around\u003c/strong\u003e\u003cbr\u003e\n    Give 50 Letters in Horse.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/25436d121851ac11b30f7df829a49d9b8024c3e3.jpg\" alt=\"Shoot and Score\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShoot and Score\u003c/strong\u003e\u003cbr\u003e\n    Achieve a High Score of 1,000,000+ on any classic Park.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/3607250e5b1a3e740043e6251726790921baf74d.jpg\" alt=\"High as a Kite\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHigh as a Kite\u003c/strong\u003e\u003cbr\u003e\n    Land a 1,000,000+ point combo.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/9da7d67c1a47b4279395ec7c8a8c75a4965d91bb.jpg\" alt=\"You Broke the Scoreboard\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou Broke the Scoreboard\u003c/strong\u003e\u003cbr\u003e\n    Earn a score of 10,000,000 in any park in a 2 minute session or single combo. Game Mods must be disabled.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/1183e299770e83887ca9b219b3cd0f59b5614126.jpg\" alt=\"Gap Master\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGap Master\u003c/strong\u003e\u003cbr\u003e\n    Complete all Gap collections.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/3a5ea9dfe36619d05bcd23d09a1ef45531347019.jpg\" alt=\"Piece by Piece\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePiece by Piece\u003c/strong\u003e\u003cbr\u003e\n    Place 500 objects in CAP.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/65ec788799cb665bbf59080918f58e0bfaf40600.jpg\" alt=\"Score Total\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eScore Total\u003c/strong\u003e\u003cbr\u003e\n    Earn 5,000,000 points in Trick Attack across all playtime.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2395210/3287f430750a1221aaf5e986d3fd1debf05170bb.jpg\" alt=\"Combo Total\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCombo Total\u003c/strong\u003e\u003cbr\u003e\n    Earn 2,000,000 points in Combo Mambo across all playtime.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Firewalker - 52.78% complete with 19/36 achievements unlocked.",
      "date_published": "2025-12-23T00:00:00Z",
      "date_modified": "2025-12-23T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "firewalker"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/astroneer/",
      "url": "https://go.waylonwalker.com/steam/astroneer/",
      "title": "ASTRONEER",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/361420/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/361420/library_600x900.jpg\" alt=\"ASTRONEER box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/361420/header.jpg\u0026#39;\"/ data-glightbox=\"description: ASTRONEER box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eASTRONEER\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 35.71%\"\u003e\n        35.71%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e20/56 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e43.4h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-12-22\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (20)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/3925069b37116e3486ceb38296b44c7c72e9d33b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/3925069b37116e3486ceb38296b44c7c72e9d33b.jpg\" alt=\"EXO Dynamics Training Seal of Approval\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: EXO Dynamics Training Seal of Approval\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEXO Dynamics Training Seal of Approval\u003c/strong\u003e\u003cbr/\u003e\n    Complete the training missions.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 08, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/86cb5ff41d6c9681476824aad330fdf7cc2c16dc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/86cb5ff41d6c9681476824aad330fdf7cc2c16dc.jpg\" alt=\"Up By the Roots\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Up By the Roots\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUp By the Roots\u003c/strong\u003e\u003cbr/\u003e\n    Dig up a hazard.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 09, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/8e191dab64b4c89a8e0497065a6bc0f0fd6d5aaa.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/8e191dab64b4c89a8e0497065a6bc0f0fd6d5aaa.jpg\" alt=\"Pursuit of Knowledge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Pursuit of Knowledge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePursuit of Knowledge\u003c/strong\u003e\u003cbr/\u003e\n    Research an item in the Research Chamber.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 08, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/04d430a6f04c80df44c533d81bcd610ae20fe450.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/04d430a6f04c80df44c533d81bcd610ae20fe450.jpg\" alt=\"A Little Byte Goes a Long Way\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Little Byte Goes a Long Way\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Little Byte Goes a Long Way\u003c/strong\u003e\u003cbr/\u003e\n    Scan a Research Sample of any type.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 08, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/d7ca63b5aceec8b568098605f94818ae6d3a8e42.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/d7ca63b5aceec8b568098605f94818ae6d3a8e42.jpg\" alt=\"Dirt Don\u0026#39;t Hurt\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Dirt Don\u0026#39;t Hurt\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDirt Don\u0026#39;t Hurt\u003c/strong\u003e\u003cbr/\u003e\n    Extract a resource using the Soil Centrifuge.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 23, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/af451f4b178d8202fb436199cb88abfcee53edf8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/af451f4b178d8202fb436199cb88abfcee53edf8.jpg\" alt=\"Do Science To It\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Do Science To It\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDo Science To It\u003c/strong\u003e\u003cbr/\u003e\n    Synthesize a composite material with the Chemistry Lab.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 22, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/f59b33b115be2a1c582eed6816d4ff34bf8b68c2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/f59b33b115be2a1c582eed6816d4ff34bf8b68c2.jpg\" alt=\"A Little Gassy\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Little Gassy\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Little Gassy\u003c/strong\u003e\u003cbr/\u003e\n    Collect a gas with the Atmospheric Condenser.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 24, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/60934dd2194d984abe430a6e10b544122b09fdd6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/60934dd2194d984abe430a6e10b544122b09fdd6.jpg\" alt=\"Sweet New Ride\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sweet New Ride\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSweet New Ride\u003c/strong\u003e\u003cbr/\u003e\n    Build a rover of any type.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 08, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/220bb1838d6a9cb53f03b6bb96458f37731ca929.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/220bb1838d6a9cb53f03b6bb96458f37731ca929.jpg\" alt=\"Scrap for the Scrapper\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Scrap for the Scrapper\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eScrap for the Scrapper\u003c/strong\u003e\u003cbr/\u003e\n    Scrap an object in a Shredder.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 20, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/e428d6f84e477444e0cd9e9b8f58ef9a0b9a744b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/e428d6f84e477444e0cd9e9b8f58ef9a0b9a744b.jpg\" alt=\"Well Hello There, Fancypants\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Well Hello There, Fancypants\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWell Hello There, Fancypants\u003c/strong\u003e\u003cbr/\u003e\n    Change into a different suit.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 12, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/aff558e24a2d597c00903c1d810934fe2482b902.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/aff558e24a2d597c00903c1d810934fe2482b902.jpg\" alt=\"Thank You For Your Continued Assistance\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Thank You For Your Continued Assistance\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThank You For Your Continued Assistance\u003c/strong\u003e\u003cbr/\u003e\n    Solve an EXO Dynamics Research Aid.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 22, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/2cc1f150a020ddd2c71d3114c0d03664b716b9d4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/2cc1f150a020ddd2c71d3114c0d03664b716b9d4.jpg\" alt=\"They Who Smelt It\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: They Who Smelt It\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThey Who Smelt It\u003c/strong\u003e\u003cbr/\u003e\n    Use the Smelter to craft every type of refined resource.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 22, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/822cf661321dcf875aaa2fb0b70edc44f0041899.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/822cf661321dcf875aaa2fb0b70edc44f0041899.jpg\" alt=\"Research Scientist\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Research Scientist\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eResearch Scientist\u003c/strong\u003e\u003cbr/\u003e\n    Gain 100,000 Bytes across all games.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 22, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/c1bf8f44df11640047618d91bf39ca591ca83e03.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/c1bf8f44df11640047618d91bf39ca591ca83e03.jpg\" alt=\"Information Dump\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Information Dump\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInformation Dump\u003c/strong\u003e\u003cbr/\u003e\n    Reach more than 150 Bytes-Per-Minute of concurrent research.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 09, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/ed3e1ed769870d85c8b1a2ad1ef5fda6a4338b54.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/ed3e1ed769870d85c8b1a2ad1ef5fda6a4338b54.jpg\" alt=\"Shapes and Other Shapes\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Shapes and Other Shapes\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShapes and Other Shapes\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 22, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/6eed5d80370d1e4ee69a142d2854b93ac93903bc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/6eed5d80370d1e4ee69a142d2854b93ac93903bc.jpg\" alt=\"Blast Off\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Blast Off\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlast Off\u003c/strong\u003e\u003cbr/\u003e\n    Use a shuttle to leave Sylva.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 17, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/cd36bb69dd487df801d957c883c12c8a85446b92.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/cd36bb69dd487df801d957c883c12c8a85446b92.jpg\" alt=\"Cool As Ice\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cool As Ice\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCool As Ice\u003c/strong\u003e\u003cbr/\u003e\n    Visit Glacio.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 17, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/e1e08abafadbf8c688742781c2ab11295f3b4329.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/e1e08abafadbf8c688742781c2ab11295f3b4329.jpg\" alt=\"Hang 10-Squared\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hang 10-Squared\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHang 10-Squared\u003c/strong\u003e\u003cbr/\u003e\n    Slide uninterrupted for at least 10 seconds.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 08, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/a0f865dfe5f942face5e4d9ad9983f320e3856b6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/a0f865dfe5f942face5e4d9ad9983f320e3856b6.jpg\" alt=\"EXO Dynamics Outreach Participant\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: EXO Dynamics Outreach Participant\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEXO Dynamics Outreach Participant\u003c/strong\u003e\u003cbr/\u003e\n    Join or host a multiplayer game session.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 08, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/4ef90266dcbeb64a1c9193fb839e2862cf2055c3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/4ef90266dcbeb64a1c9193fb839e2862cf2055c3.jpg\" alt=\"EXO Dynamics Outreach Advocate\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: EXO Dynamics Outreach Advocate\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEXO Dynamics Outreach Advocate\u003c/strong\u003e\u003cbr/\u003e\n    Spend more than 4 total hours in multiplayer sessions.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 10, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (36)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/8bafc32c5cde28286d68d79495f7a0a0626e9178.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/8bafc32c5cde28286d68d79495f7a0a0626e9178.jpg\" alt=\"Junk Trader\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Junk Trader\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJunk Trader\u003c/strong\u003e\u003cbr/\u003e\n    Use the Trade Platform to exchange Scrap for another resource.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/6c601314d953032825988cd367da2004e7be822f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/6c601314d953032825988cd367da2004e7be822f.jpg\" alt=\"Barrier Buster\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Barrier Buster\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBarrier Buster\u003c/strong\u003e\u003cbr/\u003e\n    Use a drill to deform a harder type of terrain.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/f2a76cb6a02e1a2e2d6fdc8d24fd71abc4c7a534.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/f2a76cb6a02e1a2e2d6fdc8d24fd71abc4c7a534.jpg\" alt=\"Delve Greedily and Deep\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Delve Greedily and Deep\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDelve Greedily and Deep\u003c/strong\u003e\u003cbr/\u003e\n    Travel to the Mantle depth of any planet.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/3552aee80ec4d2197ac526d6058e4f31ba9d496d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/3552aee80ec4d2197ac526d6058e4f31ba9d496d.jpg\" alt=\"Making a New Friend\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Making a New Friend\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaking a New Friend\u003c/strong\u003e\u003cbr/\u003e\n    Plant a seed.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/53c79f7aa7faeaf2e486cf090b50563917010c4b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/53c79f7aa7faeaf2e486cf090b50563917010c4b.jpg\" alt=\"Lab Rat\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Lab Rat\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLab Rat\u003c/strong\u003e\u003cbr/\u003e\n    Use the Chemistry Lab to synthesize each composite material.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/f731b22d1981c3ffe27aa75769397bae04f6b7d2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/f731b22d1981c3ffe27aa75769397bae04f6b7d2.jpg\" alt=\"Gas Giant\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Gas Giant\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGas Giant\u003c/strong\u003e\u003cbr/\u003e\n    Use the Atmospheric Condenser to collect every type of gas.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/a4a7a035b37be6c639569bc890b868fcdb36042e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/a4a7a035b37be6c639569bc890b868fcdb36042e.jpg\" alt=\"Chop Shop\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Chop Shop\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChop Shop\u003c/strong\u003e\u003cbr/\u003e\n    Scrap 50 objects in a Shredder.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/ee3eb72490d1f13d7b896e1fdcdddc14c5b9da67.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/ee3eb72490d1f13d7b896e1fdcdddc14c5b9da67.jpg\" alt=\"In An Astroneer\u0026#39;s Garden\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: In An Astroneer\u0026#39;s Garden\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIn An Astroneer\u0026#39;s Garden\u003c/strong\u003e\u003cbr/\u003e\n    Plant a Spinelily, Lashleaf, Bouncevine, Wheezeweed, Thistlewhip, Popcoral and Daggeroot seed.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/78d55d9b09ec4e3ce29516effeb01bd62c91be23.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/78d55d9b09ec4e3ce29516effeb01bd62c91be23.jpg\" alt=\"Resources in the Rough\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Resources in the Rough\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eResources in the Rough\u003c/strong\u003e\u003cbr/\u003e\n    Use the Terrain Tool to harvest every type of raw material.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/8b7711e44f091996652376dde1403f35ea881937.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/8b7711e44f091996652376dde1403f35ea881937.jpg\" alt=\"Secrets of the Universe\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Secrets of the Universe\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSecrets of the Universe\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/430050b3f24608e8dd0a3e43f4dfa60b9a218f70.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/430050b3f24608e8dd0a3e43f4dfa60b9a218f70.jpg\" alt=\"First Step Into a Larger World\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: First Step Into a Larger World\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFirst Step Into a Larger World\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/e4741f27f13a4e23092b0146e44948b6092eeea1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/e4741f27f13a4e23092b0146e44948b6092eeea1.jpg\" alt=\"Encounter With the Infinite\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Encounter With the Infinite\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEncounter With the Infinite\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/981ff5773bc0acd66aae339a14e14767e7991908.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/981ff5773bc0acd66aae339a14e14767e7991908.jpg\" alt=\"Sylva Awakened\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sylva Awakened\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSylva Awakened\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/c32372fe62d0588db359917e8e958e919dac5d9b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/c32372fe62d0588db359917e8e958e919dac5d9b.jpg\" alt=\"Desolo Awakened\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Desolo Awakened\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDesolo Awakened\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/e927f55d1a70b9ebf00d5bc4d1f4af7ed9668882.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/e927f55d1a70b9ebf00d5bc4d1f4af7ed9668882.jpg\" alt=\"Calidor Awakened\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Calidor Awakened\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCalidor Awakened\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/d61f98d8f13bd9b131d6e31557518a4a00f0695a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/d61f98d8f13bd9b131d6e31557518a4a00f0695a.jpg\" alt=\"Vesania Awakened\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Vesania Awakened\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVesania Awakened\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/f462c6bf16a6a8cf98dd887a0acb12daae25a2e5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/f462c6bf16a6a8cf98dd887a0acb12daae25a2e5.jpg\" alt=\"Novus Awakened\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Novus Awakened\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNovus Awakened\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/afb1912d50623bfc3c06a66033dda4112196b0d6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/afb1912d50623bfc3c06a66033dda4112196b0d6.jpg\" alt=\"Glacio Awakened\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Glacio Awakened\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGlacio Awakened\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/c4a6b53813ba9b896adb9dd32948e40777cc1cb2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/c4a6b53813ba9b896adb9dd32948e40777cc1cb2.jpg\" alt=\"Atrox Awakened\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Atrox Awakened\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAtrox Awakened\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/c8ba435495bc7f738bbe529f585af4bc71b978d1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/c8ba435495bc7f738bbe529f585af4bc71b978d1.jpg\" alt=\"To Infinity...\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: To Infinity...\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTo Infinity...\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/e6611da3cc4e7b441811e6bad0753069dd1a8d31.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/e6611da3cc4e7b441811e6bad0753069dd1a8d31.jpg\" alt=\"One Small Step\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: One Small Step\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOne Small Step\u003c/strong\u003e\u003cbr/\u003e\n    Visit Desolo.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/1d01d458213fc45caa892f5792c6ce528379438b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/1d01d458213fc45caa892f5792c6ce528379438b.jpg\" alt=\"It\u0026#39;s a Dry Heat\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: It\u0026#39;s a Dry Heat\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt\u0026#39;s a Dry Heat\u003c/strong\u003e\u003cbr/\u003e\n    Visit Calidor.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/4a0268d56bef548b2bd674f6c5cf429fc321fb4e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/4a0268d56bef548b2bd674f6c5cf429fc321fb4e.jpg\" alt=\"Into the Woods\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Into the Woods\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInto the Woods\u003c/strong\u003e\u003cbr/\u003e\n    Visit Vesania.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/e0831cf3b60323ec3d24322603c3892605929af2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/e0831cf3b60323ec3d24322603c3892605929af2.jpg\" alt=\"To the Forest Moon\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: To the Forest Moon\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTo the Forest Moon\u003c/strong\u003e\u003cbr/\u003e\n    Visit Novus.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/a2623d80513b38a93ac3815c9af38be6bc7e64ea.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/a2623d80513b38a93ac3815c9af38be6bc7e64ea.jpg\" alt=\"I Feel Sick\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: I Feel Sick\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI Feel Sick\u003c/strong\u003e\u003cbr/\u003e\n    Visit Atrox.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/fa94e8fba74e4d28616e9b6333eb7d8543b893a4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/fa94e8fba74e4d28616e9b6333eb7d8543b893a4.jpg\" alt=\"Now You See Me...\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Now You See Me...\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNow You See Me...\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/63d1bc969decaa352719580e2fdcb6889b3e900f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/63d1bc969decaa352719580e2fdcb6889b3e900f.jpg\" alt=\"...And Beyond\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: ...And Beyond\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e...And Beyond\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/c6b682e5f6456a768d0bf7d3f0d7ab3ca2623111.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/c6b682e5f6456a768d0bf7d3f0d7ab3ca2623111.jpg\" alt=\"Where We\u0026#39;re Going, We Don\u0026#39;t Need Roads\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Where We\u0026#39;re Going, We Don\u0026#39;t Need Roads\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhere We\u0026#39;re Going, We Don\u0026#39;t Need Roads\u003c/strong\u003e\u003cbr/\u003e\n    Drive an airborne rover for at least 10 seconds.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/9d285b3750df8e8c37772036a3dce6bdf265102a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/9d285b3750df8e8c37772036a3dce6bdf265102a.jpg\" alt=\"Galactic Boogaloo\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Galactic Boogaloo\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGalactic Boogaloo\u003c/strong\u003e\u003cbr/\u003e\n    Dance on every planet.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/0bd605d8e959e538408f1d9b16732734984de83a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/0bd605d8e959e538408f1d9b16732734984de83a.jpg\" alt=\"Baby You\u0026#39;re a Firework\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Baby You\u0026#39;re a Firework\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBaby You\u0026#39;re a Firework\u003c/strong\u003e\u003cbr/\u003e\n    Launch 10 fireworks in 10 seconds.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/6203f4a0f0802c793489805f3b95a1bc1029c4f3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/6203f4a0f0802c793489805f3b95a1bc1029c4f3.jpg\" alt=\"Let Me Borrow This Just A Second\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Let Me Borrow This Just A Second\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLet Me Borrow This Just A Second\u003c/strong\u003e\u003cbr/\u003e\n    Use a Research Chamber to research something in another Astroneer\u0026#39;s game.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/b8fc4dd2305dca76ccbfd094e1cdcc36a8824df0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/b8fc4dd2305dca76ccbfd094e1cdcc36a8824df0.jpg\" alt=\"Journey to the Center of the Thing\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Journey to the Center of the Thing\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJourney to the Center of the Thing\u003c/strong\u003e\u003cbr/\u003e\n    Travel to the center of any planet in a multiplayer game.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/2a74959cdd9b2407f768998e8e4b79ff0d0f0bcf.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/2a74959cdd9b2407f768998e8e4b79ff0d0f0bcf.jpg\" alt=\"Interplanetary Road Trip\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Interplanetary Road Trip\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInterplanetary Road Trip\u003c/strong\u003e\u003cbr/\u003e\n    Travel to another planet with another player in the same shuttle.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/d07df321fa035ae326baf4766097c09935036922.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/d07df321fa035ae326baf4766097c09935036922.jpg\" alt=\"EXO Dynamics Solar System Mastery\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: EXO Dynamics Solar System Mastery\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEXO Dynamics Solar System Mastery\u003c/strong\u003e\u003cbr/\u003e\n    Obtain every Achievement in Astroneer.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/19a2c69f71c9cce2010f7ffb3dd2cc20a6574028.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/19a2c69f71c9cce2010f7ffb3dd2cc20a6574028.jpg\" alt=\"The First Discovery\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The First Discovery\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe First Discovery\u003c/strong\u003e\u003cbr/\u003e\n    Use the Probe Scanner to find one of the mysterious Vintage Probes.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/aa3c4e799bc9cc3bc58b596da2545bbf99c5d9c9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/aa3c4e799bc9cc3bc58b596da2545bbf99c5d9c9.jpg\" alt=\"The Wanderer\u0026#39;s Way\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Wanderer\u0026#39;s Way\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Wanderer\u0026#39;s Way\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/361420/library_600x900.jpg\" alt=\"ASTRONEER box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/361420/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eASTRONEER\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 35.71%\"\u003e\n        35.71%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e20/56 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e43.4h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-12-22\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (20)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/3925069b37116e3486ceb38296b44c7c72e9d33b.jpg\" alt=\"EXO Dynamics Training Seal of Approval\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEXO Dynamics Training Seal of Approval\u003c/strong\u003e\u003cbr\u003e\n    Complete the training missions.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 08, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/86cb5ff41d6c9681476824aad330fdf7cc2c16dc.jpg\" alt=\"Up By the Roots\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUp By the Roots\u003c/strong\u003e\u003cbr\u003e\n    Dig up a hazard.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 09, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/8e191dab64b4c89a8e0497065a6bc0f0fd6d5aaa.jpg\" alt=\"Pursuit of Knowledge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePursuit of Knowledge\u003c/strong\u003e\u003cbr\u003e\n    Research an item in the Research Chamber.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 08, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/04d430a6f04c80df44c533d81bcd610ae20fe450.jpg\" alt=\"A Little Byte Goes a Long Way\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Little Byte Goes a Long Way\u003c/strong\u003e\u003cbr\u003e\n    Scan a Research Sample of any type.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 08, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/d7ca63b5aceec8b568098605f94818ae6d3a8e42.jpg\" alt=\"Dirt Don't Hurt\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDirt Don't Hurt\u003c/strong\u003e\u003cbr\u003e\n    Extract a resource using the Soil Centrifuge.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 23, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/af451f4b178d8202fb436199cb88abfcee53edf8.jpg\" alt=\"Do Science To It\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDo Science To It\u003c/strong\u003e\u003cbr\u003e\n    Synthesize a composite material with the Chemistry Lab.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 22, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/f59b33b115be2a1c582eed6816d4ff34bf8b68c2.jpg\" alt=\"A Little Gassy\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Little Gassy\u003c/strong\u003e\u003cbr\u003e\n    Collect a gas with the Atmospheric Condenser.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 24, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/60934dd2194d984abe430a6e10b544122b09fdd6.jpg\" alt=\"Sweet New Ride\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSweet New Ride\u003c/strong\u003e\u003cbr\u003e\n    Build a rover of any type.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 08, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/220bb1838d6a9cb53f03b6bb96458f37731ca929.jpg\" alt=\"Scrap for the Scrapper\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eScrap for the Scrapper\u003c/strong\u003e\u003cbr\u003e\n    Scrap an object in a Shredder.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 20, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/e428d6f84e477444e0cd9e9b8f58ef9a0b9a744b.jpg\" alt=\"Well Hello There, Fancypants\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWell Hello There, Fancypants\u003c/strong\u003e\u003cbr\u003e\n    Change into a different suit.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 12, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/aff558e24a2d597c00903c1d810934fe2482b902.jpg\" alt=\"Thank You For Your Continued Assistance\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThank You For Your Continued Assistance\u003c/strong\u003e\u003cbr\u003e\n    Solve an EXO Dynamics Research Aid.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 22, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/2cc1f150a020ddd2c71d3114c0d03664b716b9d4.jpg\" alt=\"They Who Smelt It\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThey Who Smelt It\u003c/strong\u003e\u003cbr\u003e\n    Use the Smelter to craft every type of refined resource.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 22, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/822cf661321dcf875aaa2fb0b70edc44f0041899.jpg\" alt=\"Research Scientist\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eResearch Scientist\u003c/strong\u003e\u003cbr\u003e\n    Gain 100,000 Bytes across all games.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 22, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/c1bf8f44df11640047618d91bf39ca591ca83e03.jpg\" alt=\"Information Dump\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInformation Dump\u003c/strong\u003e\u003cbr\u003e\n    Reach more than 150 Bytes-Per-Minute of concurrent research.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 09, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/ed3e1ed769870d85c8b1a2ad1ef5fda6a4338b54.jpg\" alt=\"Shapes and Other Shapes\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShapes and Other Shapes\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 22, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/6eed5d80370d1e4ee69a142d2854b93ac93903bc.jpg\" alt=\"Blast Off\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlast Off\u003c/strong\u003e\u003cbr\u003e\n    Use a shuttle to leave Sylva.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 17, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/cd36bb69dd487df801d957c883c12c8a85446b92.jpg\" alt=\"Cool As Ice\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCool As Ice\u003c/strong\u003e\u003cbr\u003e\n    Visit Glacio.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 17, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/e1e08abafadbf8c688742781c2ab11295f3b4329.jpg\" alt=\"Hang 10-Squared\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHang 10-Squared\u003c/strong\u003e\u003cbr\u003e\n    Slide uninterrupted for at least 10 seconds.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 08, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/a0f865dfe5f942face5e4d9ad9983f320e3856b6.jpg\" alt=\"EXO Dynamics Outreach Participant\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEXO Dynamics Outreach Participant\u003c/strong\u003e\u003cbr\u003e\n    Join or host a multiplayer game session.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 08, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/4ef90266dcbeb64a1c9193fb839e2862cf2055c3.jpg\" alt=\"EXO Dynamics Outreach Advocate\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEXO Dynamics Outreach Advocate\u003c/strong\u003e\u003cbr\u003e\n    Spend more than 4 total hours in multiplayer sessions.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 10, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (36)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/8bafc32c5cde28286d68d79495f7a0a0626e9178.jpg\" alt=\"Junk Trader\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJunk Trader\u003c/strong\u003e\u003cbr\u003e\n    Use the Trade Platform to exchange Scrap for another resource.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/6c601314d953032825988cd367da2004e7be822f.jpg\" alt=\"Barrier Buster\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBarrier Buster\u003c/strong\u003e\u003cbr\u003e\n    Use a drill to deform a harder type of terrain.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/f2a76cb6a02e1a2e2d6fdc8d24fd71abc4c7a534.jpg\" alt=\"Delve Greedily and Deep\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDelve Greedily and Deep\u003c/strong\u003e\u003cbr\u003e\n    Travel to the Mantle depth of any planet.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/3552aee80ec4d2197ac526d6058e4f31ba9d496d.jpg\" alt=\"Making a New Friend\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaking a New Friend\u003c/strong\u003e\u003cbr\u003e\n    Plant a seed.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/53c79f7aa7faeaf2e486cf090b50563917010c4b.jpg\" alt=\"Lab Rat\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLab Rat\u003c/strong\u003e\u003cbr\u003e\n    Use the Chemistry Lab to synthesize each composite material.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/f731b22d1981c3ffe27aa75769397bae04f6b7d2.jpg\" alt=\"Gas Giant\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGas Giant\u003c/strong\u003e\u003cbr\u003e\n    Use the Atmospheric Condenser to collect every type of gas.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/a4a7a035b37be6c639569bc890b868fcdb36042e.jpg\" alt=\"Chop Shop\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChop Shop\u003c/strong\u003e\u003cbr\u003e\n    Scrap 50 objects in a Shredder.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/ee3eb72490d1f13d7b896e1fdcdddc14c5b9da67.jpg\" alt=\"In An Astroneer's Garden\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIn An Astroneer's Garden\u003c/strong\u003e\u003cbr\u003e\n    Plant a Spinelily, Lashleaf, Bouncevine, Wheezeweed, Thistlewhip, Popcoral and Daggeroot seed.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/78d55d9b09ec4e3ce29516effeb01bd62c91be23.jpg\" alt=\"Resources in the Rough\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eResources in the Rough\u003c/strong\u003e\u003cbr\u003e\n    Use the Terrain Tool to harvest every type of raw material.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/8b7711e44f091996652376dde1403f35ea881937.jpg\" alt=\"Secrets of the Universe\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSecrets of the Universe\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/430050b3f24608e8dd0a3e43f4dfa60b9a218f70.jpg\" alt=\"First Step Into a Larger World\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFirst Step Into a Larger World\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/e4741f27f13a4e23092b0146e44948b6092eeea1.jpg\" alt=\"Encounter With the Infinite\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEncounter With the Infinite\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/981ff5773bc0acd66aae339a14e14767e7991908.jpg\" alt=\"Sylva Awakened\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSylva Awakened\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/c32372fe62d0588db359917e8e958e919dac5d9b.jpg\" alt=\"Desolo Awakened\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDesolo Awakened\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/e927f55d1a70b9ebf00d5bc4d1f4af7ed9668882.jpg\" alt=\"Calidor Awakened\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCalidor Awakened\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/d61f98d8f13bd9b131d6e31557518a4a00f0695a.jpg\" alt=\"Vesania Awakened\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVesania Awakened\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/f462c6bf16a6a8cf98dd887a0acb12daae25a2e5.jpg\" alt=\"Novus Awakened\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNovus Awakened\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/afb1912d50623bfc3c06a66033dda4112196b0d6.jpg\" alt=\"Glacio Awakened\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGlacio Awakened\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/c4a6b53813ba9b896adb9dd32948e40777cc1cb2.jpg\" alt=\"Atrox Awakened\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAtrox Awakened\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/c8ba435495bc7f738bbe529f585af4bc71b978d1.jpg\" alt=\"To Infinity...\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTo Infinity...\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/e6611da3cc4e7b441811e6bad0753069dd1a8d31.jpg\" alt=\"One Small Step\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOne Small Step\u003c/strong\u003e\u003cbr\u003e\n    Visit Desolo.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/1d01d458213fc45caa892f5792c6ce528379438b.jpg\" alt=\"It's a Dry Heat\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt's a Dry Heat\u003c/strong\u003e\u003cbr\u003e\n    Visit Calidor.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/4a0268d56bef548b2bd674f6c5cf429fc321fb4e.jpg\" alt=\"Into the Woods\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInto the Woods\u003c/strong\u003e\u003cbr\u003e\n    Visit Vesania.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/e0831cf3b60323ec3d24322603c3892605929af2.jpg\" alt=\"To the Forest Moon\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTo the Forest Moon\u003c/strong\u003e\u003cbr\u003e\n    Visit Novus.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/a2623d80513b38a93ac3815c9af38be6bc7e64ea.jpg\" alt=\"I Feel Sick\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI Feel Sick\u003c/strong\u003e\u003cbr\u003e\n    Visit Atrox.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/fa94e8fba74e4d28616e9b6333eb7d8543b893a4.jpg\" alt=\"Now You See Me...\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNow You See Me...\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/63d1bc969decaa352719580e2fdcb6889b3e900f.jpg\" alt=\"...And Beyond\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e...And Beyond\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/c6b682e5f6456a768d0bf7d3f0d7ab3ca2623111.jpg\" alt=\"Where We're Going, We Don't Need Roads\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhere We're Going, We Don't Need Roads\u003c/strong\u003e\u003cbr\u003e\n    Drive an airborne rover for at least 10 seconds.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/9d285b3750df8e8c37772036a3dce6bdf265102a.jpg\" alt=\"Galactic Boogaloo\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGalactic Boogaloo\u003c/strong\u003e\u003cbr\u003e\n    Dance on every planet.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/0bd605d8e959e538408f1d9b16732734984de83a.jpg\" alt=\"Baby You're a Firework\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBaby You're a Firework\u003c/strong\u003e\u003cbr\u003e\n    Launch 10 fireworks in 10 seconds.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/6203f4a0f0802c793489805f3b95a1bc1029c4f3.jpg\" alt=\"Let Me Borrow This Just A Second\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLet Me Borrow This Just A Second\u003c/strong\u003e\u003cbr\u003e\n    Use a Research Chamber to research something in another Astroneer's game.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/b8fc4dd2305dca76ccbfd094e1cdcc36a8824df0.jpg\" alt=\"Journey to the Center of the Thing\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJourney to the Center of the Thing\u003c/strong\u003e\u003cbr\u003e\n    Travel to the center of any planet in a multiplayer game.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/2a74959cdd9b2407f768998e8e4b79ff0d0f0bcf.jpg\" alt=\"Interplanetary Road Trip\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInterplanetary Road Trip\u003c/strong\u003e\u003cbr\u003e\n    Travel to another planet with another player in the same shuttle.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/d07df321fa035ae326baf4766097c09935036922.jpg\" alt=\"EXO Dynamics Solar System Mastery\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEXO Dynamics Solar System Mastery\u003c/strong\u003e\u003cbr\u003e\n    Obtain every Achievement in Astroneer.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/19a2c69f71c9cce2010f7ffb3dd2cc20a6574028.jpg\" alt=\"The First Discovery\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe First Discovery\u003c/strong\u003e\u003cbr\u003e\n    Use the Probe Scanner to find one of the mysterious Vintage Probes.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/361420/aa3c4e799bc9cc3bc58b596da2545bbf99c5d9c9.jpg\" alt=\"The Wanderer's Way\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Wanderer's Way\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for ASTRONEER - 35.71% complete with 20/56 achievements unlocked.",
      "date_published": "2025-12-22T00:00:00Z",
      "date_modified": "2025-12-22T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "astroneer"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/i-think-i-built-a-cms/",
      "url": "https://go.waylonwalker.com/i-think-i-built-a-cms/",
      "title": "I Think I Built A Cms",
      "content_html": "\u003cp\u003e\u003ca href=\"https://www.sanity.io/blog/you-should-never-build-a-cms\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.sanity.io.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.sanity.io.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://www.sanity.io/blog/you-should-never-build-a-cms\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\nhttps://www.sanity.io/blog/you-should-never-build-a-cms\n",
      "summary": "https://www.sanity.io/blog/you-should-never-build-a-cms",
      "date_published": "2025-12-16T08:27:11Z",
      "date_modified": "2025-12-16T08:27:11Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/workspaces-v1/",
      "url": "https://go.waylonwalker.com/workspaces-v1/",
      "title": "Workspaces V1",
      "content_html": "\u003cp\u003eI’ve been using the same workflow since 2020, my post \u003ca href=\"/tmux-nav-2021/\" class=\"wikilink\" data-title=\"How I navigate tmux in 2021\" data-description=\"change_speed = (speed) =\u0026gt; [...document.querySelectorAll(\u0026#39;video\u0026#39;)].map(v =\u0026gt; v.playbackRate=v.playbackRate+speed)\" data-date=\"2021-05-11\" data-preview=\"change_speed = (speed) =\u0026gt; [...document.querySelectorAll(\u0026#39;video\u0026#39;)].map(v =\u0026gt; v.playbackRate=v.playbackRate+speed)\"\u003eHow I navigate tmux in 2021\u003c/a\u003e is\nstill very accurate to my workflow.  It’s been great, but is a starting to feel\nlike it needs some work.  It feels like enough time has passed that I can make\nsome significant improvements.\u003c/p\u003e\n\u003ch2 id=\"issues\"\u003eIssues \u003ca href=\"#issues\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n",
      "content_text": "\nI've been using the same workflow since 2020, my post \u003ca href=\"/tmux-nav-2021/\" class=\"wikilink\" data-title=\"How I navigate tmux in 2021\" data-description=\"change_speed = (speed) =\u0026gt; [...document.querySelectorAll(\u0026#39;video\u0026#39;)].map(v =\u0026gt; v.playbackRate=v.playbackRate+speed)\" data-date=\"2021-05-11\"\u003eHow I navigate tmux in 2021\u003c/a\u003e is\nstill very accurate to my workflow.  It's been great, but is a starting to feel\nlike it needs some work.  It feels like enough time has passed that I can make\nsome significant improvements.\n\n## Issues\n\n\n\n",
      "summary": "I've been using the same workflow since 2020, my post tmux-nav-2021 is still very accurate to my workflow. It's been great, but is a starting to feel like it...",
      "date_published": "2025-11-26T20:17:29Z",
      "date_modified": "2025-11-26T20:17:29Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/golf-with-friends/",
      "url": "https://go.waylonwalker.com/steam/golf-with-friends/",
      "title": "Golf With Friends",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/431240/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/431240/library_600x900.jpg\" alt=\"Golf With Friends box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/431240/header.jpg\u0026#39;\"/ data-glightbox=\"description: Golf With Friends box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eGolf With Friends\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 22.89%\"\u003e\n        22.89%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e19/83 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e68.5h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-11-16\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (19)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/9fed3e999151583c7c3e24934395057c4d1d6d79.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/9fed3e999151583c7c3e24934395057c4d1d6d79.jpg\" alt=\"Beginner Putter\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Beginner Putter\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeginner Putter\u003c/strong\u003e\u003cbr/\u003e\n    Take 100 shots\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/c410cf08aa61eac5006957ec4c2f97ae603bc66c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/c410cf08aa61eac5006957ec4c2f97ae603bc66c.jpg\" alt=\"Amateur Putter\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Amateur Putter\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAmateur Putter\u003c/strong\u003e\u003cbr/\u003e\n    Take 1000 shots\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 29, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/07da3c2db7d94991a3440ba767841581dd59af7a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/07da3c2db7d94991a3440ba767841581dd59af7a.jpg\" alt=\"TIMBER!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: TIMBER!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTIMBER!\u003c/strong\u003e\u003cbr/\u003e\n    Play a full game of Forest on Classic\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/0354f92abe21024c27b883bd69efcbd37e4fb9f9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/0354f92abe21024c27b883bd69efcbd37e4fb9f9.jpg\" alt=\"Hole in one!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hole in one!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHole in one!\u003c/strong\u003e\u003cbr/\u003e\n    Get a hole in one!\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/f1a775fc6f19000dc23dd9e64496c77264d682a2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/f1a775fc6f19000dc23dd9e64496c77264d682a2.jpg\" alt=\"Not enough time in the day!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Not enough time in the day!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNot enough time in the day!\u003c/strong\u003e\u003cbr/\u003e\n    Out of time\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/cade39a1cbc5125b2c1fc0bd067ee42a8aed3b5b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/cade39a1cbc5125b2c1fc0bd067ee42a8aed3b5b.jpg\" alt=\"Not enough time in the week!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Not enough time in the week!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNot enough time in the week!\u003c/strong\u003e\u003cbr/\u003e\n    Out of time 50 times\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 02, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/4389a581503b374e7d1a6a890808cae75a5fb58b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/4389a581503b374e7d1a6a890808cae75a5fb58b.jpg\" alt=\"Raise the limit!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Raise the limit!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRaise the limit!\u003c/strong\u003e\u003cbr/\u003e\n    Max shots reached\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/829f2eac08d45435b7dbc14f84082847f0c7d492.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/829f2eac08d45435b7dbc14f84082847f0c7d492.jpg\" alt=\"Fly, fly away!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fly, fly away!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFly, fly away!\u003c/strong\u003e\u003cbr/\u003e\n    Get 10 birdies\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 29, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/23693b2065d6f52a2a2d5b27393c34c6ddcb228e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/23693b2065d6f52a2a2d5b27393c34c6ddcb228e.jpg\" alt=\"Nice shot!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Nice shot!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNice shot!\u003c/strong\u003e\u003cbr/\u003e\n    Get an albatross\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/ed455af2b4d4d835b25662ebcc4b268a37c809b8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/ed455af2b4d4d835b25662ebcc4b268a37c809b8.jpg\" alt=\"On par!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: On par!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOn par!\u003c/strong\u003e\u003cbr/\u003e\n    Get 50 pars\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 30, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/97fb8c79622084ad10fa8aa7ad4ea8190a0e52f6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/97fb8c79622084ad10fa8aa7ad4ea8190a0e52f6.jpg\" alt=\"Magical!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Magical!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMagical!\u003c/strong\u003e\u003cbr/\u003e\n    Play a full game of Twilight on Classic\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/ae258c8e41b407999201d025cace58e224d7281d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/ae258c8e41b407999201d025cace58e224d7281d.jpg\" alt=\"Sweet tooth!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sweet tooth!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSweet tooth!\u003c/strong\u003e\u003cbr/\u003e\n    Play a full game of CandyLand on Classic\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 09, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/a6d3e6e9b673896e027ac6e9310df29732261db3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/a6d3e6e9b673896e027ac6e9310df29732261db3.jpg\" alt=\"Sweet shot\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sweet shot\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSweet shot\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 09, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/eb5cad06184141ff73eac1c8901c2863041bb7df.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/eb5cad06184141ff73eac1c8901c2863041bb7df.jpg\" alt=\"Unnatural History\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Unnatural History\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUnnatural History\u003c/strong\u003e\u003cbr/\u003e\n    Play a full game of Museum on Classic\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 09, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/5b38809900a1ddf454a93a621d89eb69fbdf5be0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/5b38809900a1ddf454a93a621d89eb69fbdf5be0.jpg\" alt=\"Locked Up\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Locked Up\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLocked Up\u003c/strong\u003e\u003cbr/\u003e\n    Play a full game of Escapists on Classic\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 08, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/829a66320c77cd68df1f99f6f5316710c1098bb2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/829a66320c77cd68df1f99f6f5316710c1098bb2.jpg\" alt=\"Golf With Your Friends\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Golf With Your Friends\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGolf With Your Friends\u003c/strong\u003e\u003cbr/\u003e\n    Play a hotseat or online game\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/ef850912e9e33b671ce5324429af4f2b685b7437.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/ef850912e9e33b671ce5324429af4f2b685b7437.jpg\" alt=\"The Course Is That Way\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Course Is That Way\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Course Is That Way\u003c/strong\u003e\u003cbr/\u003e\n    Go out of bounds\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/de24f45882a9039a07b8b8e117de42c598991aae.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/de24f45882a9039a07b8b8e117de42c598991aae.jpg\" alt=\"Stay On Target\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Stay On Target\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStay On Target\u003c/strong\u003e\u003cbr/\u003e\n    Go out of bounds 50 times\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/78bc8ef7c2fdac342f5206d78191dcef987da38e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/78bc8ef7c2fdac342f5206d78191dcef987da38e.jpg\" alt=\"Under the Sea\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Under the Sea\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUnder the Sea\u003c/strong\u003e\u003cbr/\u003e\n    Play a full game of Deep on Classic\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (64)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/e20eb9b6d327f34b81f9d9cd2dec63a2af1369ae.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/e20eb9b6d327f34b81f9d9cd2dec63a2af1369ae.jpg\" alt=\"Master Putter\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Master Putter\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaster Putter\u003c/strong\u003e\u003cbr/\u003e\n    Take 10000 shots\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/fe6cb45ebed2c9ee1eff9162288f5ade6af13f96.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/fe6cb45ebed2c9ee1eff9162288f5ade6af13f96.jpg\" alt=\"Friends With Pharaoh\u0026#39;s\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Friends With Pharaoh\u0026#39;s\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFriends With Pharaoh\u0026#39;s\u003c/strong\u003e\u003cbr/\u003e\n    Play a full game of Oasis on Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/afb0aa63051894e465bcaf83597a4d184b67e820.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/afb0aa63051894e465bcaf83597a4d184b67e820.jpg\" alt=\"Getting good!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Getting good!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGetting good!\u003c/strong\u003e\u003cbr/\u003e\n    Get 10 albatross\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/c9fc60a3a2e61e359168c6d135b9cb59868bec43.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/c9fc60a3a2e61e359168c6d135b9cb59868bec43.jpg\" alt=\"BOO!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: BOO!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBOO!\u003c/strong\u003e\u003cbr/\u003e\n    Play a full game of Haunted on Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/1756c6cc373842005dda9a5e5531d0eaad44385f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/1756c6cc373842005dda9a5e5531d0eaad44385f.jpg\" alt=\"Roar!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Roar!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRoar!\u003c/strong\u003e\u003cbr/\u003e\n    Play a full game of Ancient on Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/220e21b7f836a554318d8a94ddb7e77f7d149269.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/220e21b7f836a554318d8a94ddb7e77f7d149269.jpg\" alt=\"Timber Hoops\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Timber Hoops\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTimber Hoops\u003c/strong\u003e\u003cbr/\u003e\n    Play a full game of Forest on Dunk\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/d7ce0ae343cfa3e8ebd322edf04fb279c3ec9769.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/d7ce0ae343cfa3e8ebd322edf04fb279c3ec9769.jpg\" alt=\"Dunks with Pharaohs\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Dunks with Pharaohs\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDunks with Pharaohs\u003c/strong\u003e\u003cbr/\u003e\n    Play a full game of Oasis on Dunk\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/f5f096b3bcb3c0ffae46f6de028e250a4a273c24.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/f5f096b3bcb3c0ffae46f6de028e250a4a273c24.jpg\" alt=\"Midnight swish\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Midnight swish\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMidnight swish\u003c/strong\u003e\u003cbr/\u003e\n    Play a full game of Twilight on Dunk\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/d5ae422452441996df2867373d57857ff0c2c418.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/d5ae422452441996df2867373d57857ff0c2c418.jpg\" alt=\"Nightmarish game of basketball \" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Nightmarish game of basketball\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNightmarish game of basketball \u003c/strong\u003e\u003cbr/\u003e\n    Play a full game of Haunted on Dunk\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/bbec7beb8408068bcc704ee78d5ee758d0ac4c80.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/bbec7beb8408068bcc704ee78d5ee758d0ac4c80.jpg\" alt=\"Sweet dunk!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sweet dunk!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSweet dunk!\u003c/strong\u003e\u003cbr/\u003e\n    Play a full game of CandyLand on Dunk\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/797d83f256c7b1138b87f77e9a8af15254531e6c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/797d83f256c7b1138b87f77e9a8af15254531e6c.jpg\" alt=\"Prehistoric lay-Up\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Prehistoric lay-Up\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePrehistoric lay-Up\u003c/strong\u003e\u003cbr/\u003e\n    Play a full game of Ancient on Dunk\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/304facbec7eff4c35f50d172f74df8ac7a65046a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/304facbec7eff4c35f50d172f74df8ac7a65046a.jpg\" alt=\"Treemendous!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Treemendous!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTreemendous!\u003c/strong\u003e\u003cbr/\u003e\n    Get par or better on Forest Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/2b598642ac937e63448ec33d24e44f33cac6d8a0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/2b598642ac937e63448ec33d24e44f33cac6d8a0.jpg\" alt=\"Parfect!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Parfect!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eParfect!\u003c/strong\u003e\u003cbr/\u003e\n    Get par or better on Oasis Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/5d65b0a8d4ba60507219ab9130dac222bf5fe61e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/5d65b0a8d4ba60507219ab9130dac222bf5fe61e.jpg\" alt=\"Twinkle twinkle little par\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Twinkle twinkle little par\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTwinkle twinkle little par\u003c/strong\u003e\u003cbr/\u003e\n    Get par or better on Twilight Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/f4cae9aa330c0930caf05d97414e8b6b7a74adfe.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/f4cae9aa330c0930caf05d97414e8b6b7a74adfe.jpg\" alt=\"Can\u0026#39;t spook me!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Can\u0026#39;t spook me!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCan\u0026#39;t spook me!\u003c/strong\u003e\u003cbr/\u003e\n    Get par or better on Haunted Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/06b1925be0f46ed0e6507cb0f82b6cf582dff587.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/06b1925be0f46ed0e6507cb0f82b6cf582dff587.jpg\" alt=\"That was a rocky road\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: That was a rocky road\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThat was a rocky road\u003c/strong\u003e\u003cbr/\u003e\n    Get par or better on Candyland Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/9b726e3381c8746ad37dd97b27ad9c9b640ad108.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/9b726e3381c8746ad37dd97b27ad9c9b640ad108.jpg\" alt=\"Your Ancestors would be proud\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Your Ancestors would be proud\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYour Ancestors would be proud\u003c/strong\u003e\u003cbr/\u003e\n    Get par or better on Ancient Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/ccca512f7dbbe5ec588835b81377b1ae2f66128c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/ccca512f7dbbe5ec588835b81377b1ae2f66128c.jpg\" alt=\"Paaarrrrrrr!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Paaarrrrrrr!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePaaarrrrrrr!\u003c/strong\u003e\u003cbr/\u003e\n    Get par or better on Pirate Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/1bb49a681fffd2d7a18cff31f7bfbd2452984400.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/1bb49a681fffd2d7a18cff31f7bfbd2452984400.jpg\" alt=\"CANNON BALL!!!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: CANNON BALL!!!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCANNON BALL!!!\u003c/strong\u003e\u003cbr/\u003e\n    Play a full game of Pirate on Dunk\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/915493f3e6908205479ccda29ca96437baf7c079.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/915493f3e6908205479ccda29ca96437baf7c079.jpg\" alt=\"Anchors aweigh!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Anchors aweigh!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAnchors aweigh!\u003c/strong\u003e\u003cbr/\u003e\n    Play a full game of Pirate on Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/1935a617c91651d4654620d6949ec02b3285ed24.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/1935a617c91651d4654620d6949ec02b3285ed24.jpg\" alt=\"Haunted Hat Trick\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Haunted Hat Trick\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHaunted Hat Trick\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/424e91ec6cc821d19a1c51df790ac7eeaab35b8a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/424e91ec6cc821d19a1c51df790ac7eeaab35b8a.jpg\" alt=\"Shoot out in the sand\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Shoot out in the sand\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShoot out in the sand\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/4f284f7c0bd5b527ea66b0d5bf84af4de98f342a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/4f284f7c0bd5b527ea66b0d5bf84af4de98f342a.jpg\" alt=\"Penalty shot with pirates\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Penalty shot with pirates\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePenalty shot with pirates\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/fbe2a9c749e7ca2f81e068a049e484a62f87ed3a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/fbe2a9c749e7ca2f81e068a049e484a62f87ed3a.jpg\" alt=\"Face off in the forest\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Face off in the forest\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFace off in the forest\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/cf7956d66c3a346e25d3c10880cfb3d4cb5c0a56.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/cf7956d66c3a346e25d3c10880cfb3d4cb5c0a56.jpg\" alt=\"Light the Lamp\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Light the Lamp\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLight the Lamp\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/e9de3f174f4d5c4328328731bceee978b81f10fe.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/e9de3f174f4d5c4328328731bceee978b81f10fe.jpg\" alt=\"Dino defender\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Dino defender\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDino defender\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/50de3cccdd69769b4240c9575686f9b2cef70289.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/50de3cccdd69769b4240c9575686f9b2cef70289.jpg\" alt=\"Blast off!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Blast off!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlast off!\u003c/strong\u003e\u003cbr/\u003e\n    Play a full game of Space Station on Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/e4a219718ada843607c0a3f60576b356375b744d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/e4a219718ada843607c0a3f60576b356375b744d.jpg\" alt=\"Incoming!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Incoming!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIncoming!\u003c/strong\u003e\u003cbr/\u003e\n    Play a full game Worms on Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/776ce4bf1e2f24dc6b0c4412657483bdddc0b5a0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/776ce4bf1e2f24dc6b0c4412657483bdddc0b5a0.jpg\" alt=\"Crash Landed\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Crash Landed\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCrash Landed\u003c/strong\u003e\u003cbr/\u003e\n    Play a full game of Volcano on Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/bee5aa98128adbceb6d67d99fa649aad4ce063a5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/bee5aa98128adbceb6d67d99fa649aad4ce063a5.jpg\" alt=\"Space Jamming\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Space Jamming\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpace Jamming\u003c/strong\u003e\u003cbr/\u003e\n    Play a full game of Space Station on Dunk\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/93b54c7e69f1129aad4e951d0e8457b20e1e6dcc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/93b54c7e69f1129aad4e951d0e8457b20e1e6dcc.jpg\" alt=\"Catch!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Catch!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCatch!\u003c/strong\u003e\u003cbr/\u003e\n    Play a full game of Worms on Dunk\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/690f1663078e70d65f9310c78c08471d2f7778c2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/690f1663078e70d65f9310c78c08471d2f7778c2.jpg\" alt=\"A History of Dunk \" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A History of Dunk\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA History of Dunk \u003c/strong\u003e\u003cbr/\u003e\n    Play a full game of Museum on Dunk\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/6bd4e43a369c25a3dccc42beef46805ed1a442f0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/6bd4e43a369c25a3dccc42beef46805ed1a442f0.jpg\" alt=\"Ring of Fire\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ring of Fire\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRing of Fire\u003c/strong\u003e\u003cbr/\u003e\n    Play a full game of Volcano on Dunk\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/aef6736f6cdde6b7c3d0813c1946feff46fdd6b4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/aef6736f6cdde6b7c3d0813c1946feff46fdd6b4.jpg\" alt=\"One small goal for man\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: One small goal for man\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOne small goal for man\u003c/strong\u003e\u003cbr/\u003e\n    Play a full game of Space Station on Hockey\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/634c526fbcdce087963e3b81c653554b5e887511.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/634c526fbcdce087963e3b81c653554b5e887511.jpg\" alt=\"Hockey Hand Grenade \" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hockey Hand Grenade\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHockey Hand Grenade \u003c/strong\u003e\u003cbr/\u003e\n    Play a full game of Worms on Hockey\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/70c04d1ccdaa5190fd3462f585ce3cfa398146e5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/70c04d1ccdaa5190fd3462f585ce3cfa398146e5.jpg\" alt=\"Hockey, A History\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hockey, A History\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHockey, A History\u003c/strong\u003e\u003cbr/\u003e\n    Play a full game of Museum on Hockey\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/4a4a368dca297b89186b101f96e18efd957d7a0a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/4a4a368dca297b89186b101f96e18efd957d7a0a.jpg\" alt=\"Fire Puck\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fire Puck\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFire Puck\u003c/strong\u003e\u003cbr/\u003e\n    Play a full game of Volcano on Hockey\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/3b0ca090156b4fa911f93e243042decdf0627794.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/3b0ca090156b4fa911f93e243042decdf0627794.jpg\" alt=\"Scientific Precision\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Scientific Precision\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eScientific Precision\u003c/strong\u003e\u003cbr/\u003e\n    Get par or better on Space Station Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/c88dfe2c3084adea108154d74f8d264d3fc366a6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/c88dfe2c3084adea108154d74f8d264d3fc366a6.jpg\" alt=\"Targetted Destruction\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Targetted Destruction\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTargetted Destruction\u003c/strong\u003e\u003cbr/\u003e\n    Get par or better on Worms Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/073cc2411a95926fd1ea3f033ae59843ecf18a27.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/073cc2411a95926fd1ea3f033ae59843ecf18a27.jpg\" alt=\"Historic Achievement\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Historic Achievement\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHistoric Achievement\u003c/strong\u003e\u003cbr/\u003e\n    Get par or better on Museum Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/4e99a43f4780b26e158c0d08aaad4291e8573020.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/4e99a43f4780b26e158c0d08aaad4291e8573020.jpg\" alt=\"The Highest Ground\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Highest Ground\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Highest Ground\u003c/strong\u003e\u003cbr/\u003e\n    Get par or better on Volcano Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/ea63f9591b44fb5794a4ba5bbac7c05b64435ae7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/ea63f9591b44fb5794a4ba5bbac7c05b64435ae7.jpg\" alt=\"Prison Yard Dunk\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Prison Yard Dunk\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePrison Yard Dunk\u003c/strong\u003e\u003cbr/\u003e\n    Play a full game of Escapists on Dunk\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/f56fced6a6ce509fe85760c23d7bde334311004b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/f56fced6a6ce509fe85760c23d7bde334311004b.jpg\" alt=\"Sin Binned\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sin Binned\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSin Binned\u003c/strong\u003e\u003cbr/\u003e\n    Play a full game of Escapists on Hockey\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/431970a5feea439538b705826bf064ed2e3f19a4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/431970a5feea439538b705826bf064ed2e3f19a4.jpg\" alt=\"No Prison Can Hold Me!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: No Prison Can Hold Me!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNo Prison Can Hold Me!\u003c/strong\u003e\u003cbr/\u003e\n    Get par or better on Escapists Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/0ec55e4c0587121aae5036c88943807b717e49f1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/0ec55e4c0587121aae5036c88943807b717e49f1.jpg\" alt=\"Who\u0026#39;s The Food Now?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Who\u0026#39;s The Food Now?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWho\u0026#39;s The Food Now?\u003c/strong\u003e\u003cbr/\u003e\n    Get eaten by Gingy in the practice area\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/9395e7b54a93373aeb299579dd93088c174faa2e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/9395e7b54a93373aeb299579dd93088c174faa2e.jpg\" alt=\"Deep Dunker\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Deep Dunker\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDeep Dunker\u003c/strong\u003e\u003cbr/\u003e\n    Play a full game of Deep on Dunk\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/81e4784cdc5bd0aca99f532b98d10d79dd203e42.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/81e4784cdc5bd0aca99f532b98d10d79dd203e42.jpg\" alt=\"Back of the Net\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Back of the Net\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBack of the Net\u003c/strong\u003e\u003cbr/\u003e\n    Play a full game of Deep on Hockey\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/191af9402892580d7ae6ff8cf7a4153e20d74043.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/191af9402892580d7ae6ff8cf7a4153e20d74043.jpg\" alt=\"Blacklight Boss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Blacklight Boss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlacklight Boss\u003c/strong\u003e\u003cbr/\u003e\n    Get par or better on Deep Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/6d8c2046e906154002554102ffbf8c18d67296f4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/6d8c2046e906154002554102ffbf8c18d67296f4.jpg\" alt=\"Castle Crashing\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Castle Crashing\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCastle Crashing\u003c/strong\u003e\u003cbr/\u003e\n    Play a full game of Bouncy Castle on Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/bfe312092e0990407f5f7c5c2d0f486833a42fd3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/bfe312092e0990407f5f7c5c2d0f486833a42fd3.jpg\" alt=\"I\u0026#39;m The King of the Castle\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: I\u0026#39;m The King of the Castle\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI\u0026#39;m The King of the Castle\u003c/strong\u003e\u003cbr/\u003e\n    Get par or better on Bouncy Castle Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/804a269191623c3e085c22c7ec81097f2ee1a90c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/804a269191623c3e085c22c7ec81097f2ee1a90c.jpg\" alt=\"Belle of the Ball\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Belle of the Ball\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBelle of the Ball\u003c/strong\u003e\u003cbr/\u003e\n    Play a full game of Bouncy Castle on Dunk\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/95d5f046915b5a3f629aa29e01edbab32ebd340a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/95d5f046915b5a3f629aa29e01edbab32ebd340a.jpg\" alt=\"Bouncing on Ice\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bouncing on Ice\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBouncing on Ice\u003c/strong\u003e\u003cbr/\u003e\n    Play a full game of Bouncy Castle on Hockey\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/396914c96dfb3789bbb321ba33f495653adc0345.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/396914c96dfb3789bbb321ba33f495653adc0345.jpg\" alt=\"Into the Void\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Into the Void\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInto the Void\u003c/strong\u003e\u003cbr/\u003e\n    Play a full game of Corrupted Forest on Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/426d1f34f5de3861ab589e5883599c607cd66d8b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/426d1f34f5de3861ab589e5883599c607cd66d8b.jpg\" alt=\"Eye See You!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Eye See You!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEye See You!\u003c/strong\u003e\u003cbr/\u003e\n    Get par or better on Corrupted Forest Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/f85b0b925b96f64fc68a21c146cbd8726b24d986.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/f85b0b925b96f64fc68a21c146cbd8726b24d986.jpg\" alt=\"Dunking in the Dark\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Dunking in the Dark\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDunking in the Dark\u003c/strong\u003e\u003cbr/\u003e\n    Play a full game of Corrupted Forest on Dunk\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/b1e8e7b9f47f75ac86b0dab1a227c3ecae11503d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/b1e8e7b9f47f75ac86b0dab1a227c3ecae11503d.jpg\" alt=\"Howe Did I Get Here?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Howe Did I Get Here?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHowe Did I Get Here?\u003c/strong\u003e\u003cbr/\u003e\n    Play a full game of Corrupted Forest on Hockey\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/0eb6ea270316fcc6ff8cb745ab422e15fd914aa4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/0eb6ea270316fcc6ff8cb745ab422e15fd914aa4.jpg\" alt=\"Back In Time For Tee\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Back In Time For Tee\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBack In Time For Tee\u003c/strong\u003e\u003cbr/\u003e\n    Play a full game of Peaceful Pines on Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/cd543f3137ce85ca5d5f0cd5a37d44d6da8647bc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/cd543f3137ce85ca5d5f0cd5a37d44d6da8647bc.jpg\" alt=\"You’re the Best, By Par\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: You’re the Best, By Par\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou’re the Best, By Par\u003c/strong\u003e\u003cbr/\u003e\n    Get par or better on Peaceful Pines Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/b4f27aeed39b0c601b02b5e3c601550e9834bb3f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/b4f27aeed39b0c601b02b5e3c601550e9834bb3f.jpg\" alt=\"Folly-oop\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Folly-oop\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFolly-oop\u003c/strong\u003e\u003cbr/\u003e\n    Play a full game of Peaceful Pines on Dunk\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/2dc620c73b8eb0c36318a6f74c108ed394a8e339.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/2dc620c73b8eb0c36318a6f74c108ed394a8e339.jpg\" alt=\"Ruins or Rink?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ruins or Rink?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRuins or Rink?\u003c/strong\u003e\u003cbr/\u003e\n    Play a full game of Peaceful Pines on Hockey\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/3e35803c62ecb0e51271ccdb2211b198fb11b7fe.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/3e35803c62ecb0e51271ccdb2211b198fb11b7fe.jpg\" alt=\"Friends in High Places\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Friends in High Places\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFriends in High Places\u003c/strong\u003e\u003cbr/\u003e\n    Play a full game of Olympus Odyssey on Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/ffd3bdacf0d4dcff48c2665aa7ea6ead744745fe.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/ffd3bdacf0d4dcff48c2665aa7ea6ead744745fe.jpg\" alt=\"Pride of Zeus\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Pride of Zeus\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePride of Zeus\u003c/strong\u003e\u003cbr/\u003e\n    Get par or better on Olympus Odyssey Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/d65c5ea4b9c78295c44119810eab5e435bd4052a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/d65c5ea4b9c78295c44119810eab5e435bd4052a.jpg\" alt=\"Hermes\u0026#39; Apprentice\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hermes\u0026#39; Apprentice\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHermes\u0026#39; Apprentice\u003c/strong\u003e\u003cbr/\u003e\n    Play a full game of Olympus Odyssey on Dunk\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/bd40c3600d38bec21f3ac3f769c4acf470c6f584.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/bd40c3600d38bec21f3ac3f769c4acf470c6f584.jpg\" alt=\"Slapshot that on a Vase!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Slapshot that on a Vase!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSlapshot that on a Vase!\u003c/strong\u003e\u003cbr/\u003e\n    Play a full game of Olympus Odyssey on Hockey\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/431240/library_600x900.jpg\" alt=\"Golf With Friends box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/431240/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eGolf With Friends\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 22.89%\"\u003e\n        22.89%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e19/83 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e68.5h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-11-16\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (19)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/9fed3e999151583c7c3e24934395057c4d1d6d79.jpg\" alt=\"Beginner Putter\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeginner Putter\u003c/strong\u003e\u003cbr\u003e\n    Take 100 shots\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/c410cf08aa61eac5006957ec4c2f97ae603bc66c.jpg\" alt=\"Amateur Putter\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAmateur Putter\u003c/strong\u003e\u003cbr\u003e\n    Take 1000 shots\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 29, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/07da3c2db7d94991a3440ba767841581dd59af7a.jpg\" alt=\"TIMBER!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTIMBER!\u003c/strong\u003e\u003cbr\u003e\n    Play a full game of Forest on Classic\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/0354f92abe21024c27b883bd69efcbd37e4fb9f9.jpg\" alt=\"Hole in one!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHole in one!\u003c/strong\u003e\u003cbr\u003e\n    Get a hole in one!\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/f1a775fc6f19000dc23dd9e64496c77264d682a2.jpg\" alt=\"Not enough time in the day!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNot enough time in the day!\u003c/strong\u003e\u003cbr\u003e\n    Out of time\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/cade39a1cbc5125b2c1fc0bd067ee42a8aed3b5b.jpg\" alt=\"Not enough time in the week!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNot enough time in the week!\u003c/strong\u003e\u003cbr\u003e\n    Out of time 50 times\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 02, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/4389a581503b374e7d1a6a890808cae75a5fb58b.jpg\" alt=\"Raise the limit!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRaise the limit!\u003c/strong\u003e\u003cbr\u003e\n    Max shots reached\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/829f2eac08d45435b7dbc14f84082847f0c7d492.jpg\" alt=\"Fly, fly away!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFly, fly away!\u003c/strong\u003e\u003cbr\u003e\n    Get 10 birdies\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 29, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/23693b2065d6f52a2a2d5b27393c34c6ddcb228e.jpg\" alt=\"Nice shot!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNice shot!\u003c/strong\u003e\u003cbr\u003e\n    Get an albatross\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/ed455af2b4d4d835b25662ebcc4b268a37c809b8.jpg\" alt=\"On par!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOn par!\u003c/strong\u003e\u003cbr\u003e\n    Get 50 pars\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 30, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/97fb8c79622084ad10fa8aa7ad4ea8190a0e52f6.jpg\" alt=\"Magical!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMagical!\u003c/strong\u003e\u003cbr\u003e\n    Play a full game of Twilight on Classic\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/ae258c8e41b407999201d025cace58e224d7281d.jpg\" alt=\"Sweet tooth!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSweet tooth!\u003c/strong\u003e\u003cbr\u003e\n    Play a full game of CandyLand on Classic\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 09, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/a6d3e6e9b673896e027ac6e9310df29732261db3.jpg\" alt=\"Sweet shot\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSweet shot\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 09, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/eb5cad06184141ff73eac1c8901c2863041bb7df.jpg\" alt=\"Unnatural History\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUnnatural History\u003c/strong\u003e\u003cbr\u003e\n    Play a full game of Museum on Classic\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 09, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/5b38809900a1ddf454a93a621d89eb69fbdf5be0.jpg\" alt=\"Locked Up\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLocked Up\u003c/strong\u003e\u003cbr\u003e\n    Play a full game of Escapists on Classic\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 08, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/829a66320c77cd68df1f99f6f5316710c1098bb2.jpg\" alt=\"Golf With Your Friends\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGolf With Your Friends\u003c/strong\u003e\u003cbr\u003e\n    Play a hotseat or online game\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/ef850912e9e33b671ce5324429af4f2b685b7437.jpg\" alt=\"The Course Is That Way\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Course Is That Way\u003c/strong\u003e\u003cbr\u003e\n    Go out of bounds\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/de24f45882a9039a07b8b8e117de42c598991aae.jpg\" alt=\"Stay On Target\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStay On Target\u003c/strong\u003e\u003cbr\u003e\n    Go out of bounds 50 times\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/78bc8ef7c2fdac342f5206d78191dcef987da38e.jpg\" alt=\"Under the Sea\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUnder the Sea\u003c/strong\u003e\u003cbr\u003e\n    Play a full game of Deep on Classic\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (64)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/e20eb9b6d327f34b81f9d9cd2dec63a2af1369ae.jpg\" alt=\"Master Putter\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaster Putter\u003c/strong\u003e\u003cbr\u003e\n    Take 10000 shots\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/fe6cb45ebed2c9ee1eff9162288f5ade6af13f96.jpg\" alt=\"Friends With Pharaoh's\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFriends With Pharaoh's\u003c/strong\u003e\u003cbr\u003e\n    Play a full game of Oasis on Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/afb0aa63051894e465bcaf83597a4d184b67e820.jpg\" alt=\"Getting good!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGetting good!\u003c/strong\u003e\u003cbr\u003e\n    Get 10 albatross\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/c9fc60a3a2e61e359168c6d135b9cb59868bec43.jpg\" alt=\"BOO!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBOO!\u003c/strong\u003e\u003cbr\u003e\n    Play a full game of Haunted on Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/1756c6cc373842005dda9a5e5531d0eaad44385f.jpg\" alt=\"Roar!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRoar!\u003c/strong\u003e\u003cbr\u003e\n    Play a full game of Ancient on Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/220e21b7f836a554318d8a94ddb7e77f7d149269.jpg\" alt=\"Timber Hoops\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTimber Hoops\u003c/strong\u003e\u003cbr\u003e\n    Play a full game of Forest on Dunk\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/d7ce0ae343cfa3e8ebd322edf04fb279c3ec9769.jpg\" alt=\"Dunks with Pharaohs\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDunks with Pharaohs\u003c/strong\u003e\u003cbr\u003e\n    Play a full game of Oasis on Dunk\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/f5f096b3bcb3c0ffae46f6de028e250a4a273c24.jpg\" alt=\"Midnight swish\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMidnight swish\u003c/strong\u003e\u003cbr\u003e\n    Play a full game of Twilight on Dunk\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/d5ae422452441996df2867373d57857ff0c2c418.jpg\" alt=\"Nightmarish game of basketball \" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNightmarish game of basketball \u003c/strong\u003e\u003cbr\u003e\n    Play a full game of Haunted on Dunk\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/bbec7beb8408068bcc704ee78d5ee758d0ac4c80.jpg\" alt=\"Sweet dunk!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSweet dunk!\u003c/strong\u003e\u003cbr\u003e\n    Play a full game of CandyLand on Dunk\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/797d83f256c7b1138b87f77e9a8af15254531e6c.jpg\" alt=\"Prehistoric lay-Up\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePrehistoric lay-Up\u003c/strong\u003e\u003cbr\u003e\n    Play a full game of Ancient on Dunk\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/304facbec7eff4c35f50d172f74df8ac7a65046a.jpg\" alt=\"Treemendous!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTreemendous!\u003c/strong\u003e\u003cbr\u003e\n    Get par or better on Forest Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/2b598642ac937e63448ec33d24e44f33cac6d8a0.jpg\" alt=\"Parfect!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eParfect!\u003c/strong\u003e\u003cbr\u003e\n    Get par or better on Oasis Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/5d65b0a8d4ba60507219ab9130dac222bf5fe61e.jpg\" alt=\"Twinkle twinkle little par\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTwinkle twinkle little par\u003c/strong\u003e\u003cbr\u003e\n    Get par or better on Twilight Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/f4cae9aa330c0930caf05d97414e8b6b7a74adfe.jpg\" alt=\"Can't spook me!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCan't spook me!\u003c/strong\u003e\u003cbr\u003e\n    Get par or better on Haunted Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/06b1925be0f46ed0e6507cb0f82b6cf582dff587.jpg\" alt=\"That was a rocky road\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThat was a rocky road\u003c/strong\u003e\u003cbr\u003e\n    Get par or better on Candyland Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/9b726e3381c8746ad37dd97b27ad9c9b640ad108.jpg\" alt=\"Your Ancestors would be proud\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYour Ancestors would be proud\u003c/strong\u003e\u003cbr\u003e\n    Get par or better on Ancient Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/ccca512f7dbbe5ec588835b81377b1ae2f66128c.jpg\" alt=\"Paaarrrrrrr!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePaaarrrrrrr!\u003c/strong\u003e\u003cbr\u003e\n    Get par or better on Pirate Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/1bb49a681fffd2d7a18cff31f7bfbd2452984400.jpg\" alt=\"CANNON BALL!!!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCANNON BALL!!!\u003c/strong\u003e\u003cbr\u003e\n    Play a full game of Pirate on Dunk\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/915493f3e6908205479ccda29ca96437baf7c079.jpg\" alt=\"Anchors aweigh!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAnchors aweigh!\u003c/strong\u003e\u003cbr\u003e\n    Play a full game of Pirate on Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/1935a617c91651d4654620d6949ec02b3285ed24.jpg\" alt=\"Haunted Hat Trick\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHaunted Hat Trick\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/424e91ec6cc821d19a1c51df790ac7eeaab35b8a.jpg\" alt=\"Shoot out in the sand\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShoot out in the sand\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/4f284f7c0bd5b527ea66b0d5bf84af4de98f342a.jpg\" alt=\"Penalty shot with pirates\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePenalty shot with pirates\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/fbe2a9c749e7ca2f81e068a049e484a62f87ed3a.jpg\" alt=\"Face off in the forest\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFace off in the forest\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/cf7956d66c3a346e25d3c10880cfb3d4cb5c0a56.jpg\" alt=\"Light the Lamp\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLight the Lamp\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/e9de3f174f4d5c4328328731bceee978b81f10fe.jpg\" alt=\"Dino defender\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDino defender\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/50de3cccdd69769b4240c9575686f9b2cef70289.jpg\" alt=\"Blast off!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlast off!\u003c/strong\u003e\u003cbr\u003e\n    Play a full game of Space Station on Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/e4a219718ada843607c0a3f60576b356375b744d.jpg\" alt=\"Incoming!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIncoming!\u003c/strong\u003e\u003cbr\u003e\n    Play a full game Worms on Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/776ce4bf1e2f24dc6b0c4412657483bdddc0b5a0.jpg\" alt=\"Crash Landed\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCrash Landed\u003c/strong\u003e\u003cbr\u003e\n    Play a full game of Volcano on Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/bee5aa98128adbceb6d67d99fa649aad4ce063a5.jpg\" alt=\"Space Jamming\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpace Jamming\u003c/strong\u003e\u003cbr\u003e\n    Play a full game of Space Station on Dunk\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/93b54c7e69f1129aad4e951d0e8457b20e1e6dcc.jpg\" alt=\"Catch!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCatch!\u003c/strong\u003e\u003cbr\u003e\n    Play a full game of Worms on Dunk\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/690f1663078e70d65f9310c78c08471d2f7778c2.jpg\" alt=\"A History of Dunk \" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA History of Dunk \u003c/strong\u003e\u003cbr\u003e\n    Play a full game of Museum on Dunk\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/6bd4e43a369c25a3dccc42beef46805ed1a442f0.jpg\" alt=\"Ring of Fire\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRing of Fire\u003c/strong\u003e\u003cbr\u003e\n    Play a full game of Volcano on Dunk\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/aef6736f6cdde6b7c3d0813c1946feff46fdd6b4.jpg\" alt=\"One small goal for man\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOne small goal for man\u003c/strong\u003e\u003cbr\u003e\n    Play a full game of Space Station on Hockey\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/634c526fbcdce087963e3b81c653554b5e887511.jpg\" alt=\"Hockey Hand Grenade \" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHockey Hand Grenade \u003c/strong\u003e\u003cbr\u003e\n    Play a full game of Worms on Hockey\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/70c04d1ccdaa5190fd3462f585ce3cfa398146e5.jpg\" alt=\"Hockey, A History\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHockey, A History\u003c/strong\u003e\u003cbr\u003e\n    Play a full game of Museum on Hockey\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/4a4a368dca297b89186b101f96e18efd957d7a0a.jpg\" alt=\"Fire Puck\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFire Puck\u003c/strong\u003e\u003cbr\u003e\n    Play a full game of Volcano on Hockey\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/3b0ca090156b4fa911f93e243042decdf0627794.jpg\" alt=\"Scientific Precision\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eScientific Precision\u003c/strong\u003e\u003cbr\u003e\n    Get par or better on Space Station Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/c88dfe2c3084adea108154d74f8d264d3fc366a6.jpg\" alt=\"Targetted Destruction\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTargetted Destruction\u003c/strong\u003e\u003cbr\u003e\n    Get par or better on Worms Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/073cc2411a95926fd1ea3f033ae59843ecf18a27.jpg\" alt=\"Historic Achievement\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHistoric Achievement\u003c/strong\u003e\u003cbr\u003e\n    Get par or better on Museum Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/4e99a43f4780b26e158c0d08aaad4291e8573020.jpg\" alt=\"The Highest Ground\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Highest Ground\u003c/strong\u003e\u003cbr\u003e\n    Get par or better on Volcano Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/ea63f9591b44fb5794a4ba5bbac7c05b64435ae7.jpg\" alt=\"Prison Yard Dunk\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePrison Yard Dunk\u003c/strong\u003e\u003cbr\u003e\n    Play a full game of Escapists on Dunk\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/f56fced6a6ce509fe85760c23d7bde334311004b.jpg\" alt=\"Sin Binned\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSin Binned\u003c/strong\u003e\u003cbr\u003e\n    Play a full game of Escapists on Hockey\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/431970a5feea439538b705826bf064ed2e3f19a4.jpg\" alt=\"No Prison Can Hold Me!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNo Prison Can Hold Me!\u003c/strong\u003e\u003cbr\u003e\n    Get par or better on Escapists Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/0ec55e4c0587121aae5036c88943807b717e49f1.jpg\" alt=\"Who's The Food Now?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWho's The Food Now?\u003c/strong\u003e\u003cbr\u003e\n    Get eaten by Gingy in the practice area\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/9395e7b54a93373aeb299579dd93088c174faa2e.jpg\" alt=\"Deep Dunker\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDeep Dunker\u003c/strong\u003e\u003cbr\u003e\n    Play a full game of Deep on Dunk\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/81e4784cdc5bd0aca99f532b98d10d79dd203e42.jpg\" alt=\"Back of the Net\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBack of the Net\u003c/strong\u003e\u003cbr\u003e\n    Play a full game of Deep on Hockey\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/191af9402892580d7ae6ff8cf7a4153e20d74043.jpg\" alt=\"Blacklight Boss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlacklight Boss\u003c/strong\u003e\u003cbr\u003e\n    Get par or better on Deep Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/6d8c2046e906154002554102ffbf8c18d67296f4.jpg\" alt=\"Castle Crashing\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCastle Crashing\u003c/strong\u003e\u003cbr\u003e\n    Play a full game of Bouncy Castle on Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/bfe312092e0990407f5f7c5c2d0f486833a42fd3.jpg\" alt=\"I'm The King of the Castle\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI'm The King of the Castle\u003c/strong\u003e\u003cbr\u003e\n    Get par or better on Bouncy Castle Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/804a269191623c3e085c22c7ec81097f2ee1a90c.jpg\" alt=\"Belle of the Ball\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBelle of the Ball\u003c/strong\u003e\u003cbr\u003e\n    Play a full game of Bouncy Castle on Dunk\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/95d5f046915b5a3f629aa29e01edbab32ebd340a.jpg\" alt=\"Bouncing on Ice\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBouncing on Ice\u003c/strong\u003e\u003cbr\u003e\n    Play a full game of Bouncy Castle on Hockey\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/396914c96dfb3789bbb321ba33f495653adc0345.jpg\" alt=\"Into the Void\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInto the Void\u003c/strong\u003e\u003cbr\u003e\n    Play a full game of Corrupted Forest on Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/426d1f34f5de3861ab589e5883599c607cd66d8b.jpg\" alt=\"Eye See You!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEye See You!\u003c/strong\u003e\u003cbr\u003e\n    Get par or better on Corrupted Forest Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/f85b0b925b96f64fc68a21c146cbd8726b24d986.jpg\" alt=\"Dunking in the Dark\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDunking in the Dark\u003c/strong\u003e\u003cbr\u003e\n    Play a full game of Corrupted Forest on Dunk\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/b1e8e7b9f47f75ac86b0dab1a227c3ecae11503d.jpg\" alt=\"Howe Did I Get Here?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHowe Did I Get Here?\u003c/strong\u003e\u003cbr\u003e\n    Play a full game of Corrupted Forest on Hockey\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/0eb6ea270316fcc6ff8cb745ab422e15fd914aa4.jpg\" alt=\"Back In Time For Tee\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBack In Time For Tee\u003c/strong\u003e\u003cbr\u003e\n    Play a full game of Peaceful Pines on Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/cd543f3137ce85ca5d5f0cd5a37d44d6da8647bc.jpg\" alt=\"You’re the Best, By Par\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou’re the Best, By Par\u003c/strong\u003e\u003cbr\u003e\n    Get par or better on Peaceful Pines Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/b4f27aeed39b0c601b02b5e3c601550e9834bb3f.jpg\" alt=\"Folly-oop\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFolly-oop\u003c/strong\u003e\u003cbr\u003e\n    Play a full game of Peaceful Pines on Dunk\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/2dc620c73b8eb0c36318a6f74c108ed394a8e339.jpg\" alt=\"Ruins or Rink?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRuins or Rink?\u003c/strong\u003e\u003cbr\u003e\n    Play a full game of Peaceful Pines on Hockey\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/3e35803c62ecb0e51271ccdb2211b198fb11b7fe.jpg\" alt=\"Friends in High Places\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFriends in High Places\u003c/strong\u003e\u003cbr\u003e\n    Play a full game of Olympus Odyssey on Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/ffd3bdacf0d4dcff48c2665aa7ea6ead744745fe.jpg\" alt=\"Pride of Zeus\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePride of Zeus\u003c/strong\u003e\u003cbr\u003e\n    Get par or better on Olympus Odyssey Classic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/d65c5ea4b9c78295c44119810eab5e435bd4052a.jpg\" alt=\"Hermes' Apprentice\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHermes' Apprentice\u003c/strong\u003e\u003cbr\u003e\n    Play a full game of Olympus Odyssey on Dunk\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/431240/bd40c3600d38bec21f3ac3f769c4acf470c6f584.jpg\" alt=\"Slapshot that on a Vase!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSlapshot that on a Vase!\u003c/strong\u003e\u003cbr\u003e\n    Play a full game of Olympus Odyssey on Hockey\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Golf With Friends - 22.89% complete with 19/83 achievements unlocked.",
      "date_published": "2025-11-16T00:00:00Z",
      "date_modified": "2025-11-16T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "golf-with-friends"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/my-first-3d-printer/",
      "url": "https://go.waylonwalker.com/my-first-3d-printer/",
      "title": "My First 3d Printer",
      "content_html": "\u003cp\u003eWhen we got our ender 3 my son was 11. We assembled the day it came in and\nstarted the test print that came on the card. We watched as it painstakingly\ntook hours to print the small sample.  Already past his bed time, he was there\nto pull it off the bed immediately.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/6dfde440-c83f-453e-b1f0-70d57bd58808.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/6dfde440-c83f-453e-b1f0-70d57bd58808.jpg\" alt=\"PXL_20230327_233801902.jpg\"/ data-glightbox=\"description: PXL_20230327_233801902.jpg\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eHe woke me up at 5 am to tell me he found an stl online, installed the slicer software, set it up for our printer, sliced his model, got the gcode on the sd card, to the printer and had it running already while I was sleeping.\u003c/p\u003e\n\u003cp\u003eWe had never once talked about 3d printing to this level, this was all him doing the research on his own.  Having that interest that turns into an itch that you can’t shake, you must read, learn, and try until you figure it out.\u003c/p\u003e\n",
      "content_text": "\nWhen we got our ender 3 my son was 11. We assembled the day it came in and\nstarted the test print that came on the card. We watched as it painstakingly\ntook hours to print the small sample.  Already past his bed time, he was there\nto pull it off the bed immediately.  \n\n\n\n![PXL_20230327_233801902.jpg](https://dropper.waylonwalker.com/api/file/6dfde440-c83f-453e-b1f0-70d57bd58808.jpg)\n\nHe woke me up at 5 am to tell me he found an stl online, installed the slicer software, set it up for our printer, sliced his model, got the gcode on the sd card, to the printer and had it running already while I was sleeping.\n\nWe had never once talked about 3d printing to this level, this was all him doing the research on his own.  Having that interest that turns into an itch that you can't shake, you must read, learn, and try until you figure it out.\n",
      "summary": "When we got our ender 3 my son was 11. We assembled the day it came in and started the test print that came on the card. We watched as it painstakingly took...",
      "date_published": "2025-11-12T09:04:00Z",
      "date_modified": "2025-11-12T09:04:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "3d-printing"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/slime-rancher-2/",
      "url": "https://go.waylonwalker.com/steam/slime-rancher-2/",
      "title": "Slime Rancher 2",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/1657630/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/1657630/library_600x900.jpg\" alt=\"Slime Rancher 2 box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/1657630/header.jpg\u0026#39;\"/ data-glightbox=\"description: Slime Rancher 2 box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eSlime Rancher 2\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 18.52%\"\u003e\n        18.52%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e5/27 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e59.5h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-10-26\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (5)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/e5528ed14fcb4607c3260339781977d9b9c378fa.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/e5528ed14fcb4607c3260339781977d9b9c378fa.jpg\" alt=\"Tinker Tailor Science Slime\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tinker Tailor Science Slime\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTinker Tailor Science Slime\u003c/strong\u003e\u003cbr/\u003e\n    Craft 8 unique player upgrades.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 24, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/6ee8c96ce09c8f31e0fed043fe3b59150f1fd0b7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/6ee8c96ce09c8f31e0fed043fe3b59150f1fd0b7.jpg\" alt=\"Complete Conservatory\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Complete Conservatory\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eComplete Conservatory\u003c/strong\u003e\u003cbr/\u003e\n    Purchase 5 Ranch Expansions.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 24, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/cf9a3365ecb422941bca08d6591ac8ad36c89100.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/cf9a3365ecb422941bca08d6591ac8ad36c89100.jpg\" alt=\"Tinkerer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tinkerer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTinkerer\u003c/strong\u003e\u003cbr/\u003e\n    Place your first gadget.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 24, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/87f1a417fc16b741cbfbc913badb01a2be357680.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/87f1a417fc16b741cbfbc913badb01a2be357680.jpg\" alt=\"Rainbow Explorer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Rainbow Explorer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRainbow Explorer\u003c/strong\u003e\u003cbr/\u003e\n    Discover any three areas.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 24, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/8a33db76cc3f8db896d257e386bc2935450786ab.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/8a33db76cc3f8db896d257e386bc2935450786ab.jpg\" alt=\"Plortonomics\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Plortonomics\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePlortonomics\u003c/strong\u003e\u003cbr/\u003e\n    Sell 15 different types of plorts.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 24, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (22)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"Core Breach\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Core Breach\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCore Breach\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"Fly like a Bea\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fly like a Bea\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFly like a Bea\u003c/strong\u003e\u003cbr/\u003e\n    Fly for 5 seconds using the jetpack.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"A Real Hero\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Real Hero\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Real Hero\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"Now You\u0026#39;re Thinking With Plortals\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Now You\u0026#39;re Thinking With Plortals\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNow You\u0026#39;re Thinking With Plortals\u003c/strong\u003e\u003cbr/\u003e\n    Fire a plort through a linked cannon, sending it to the plort market.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"Beam Me Up\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Beam Me Up\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeam Me Up\u003c/strong\u003e\u003cbr/\u003e\n    Craft and use a Return Home Portal.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"Shady Deals\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Shady Deals\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShady Deals\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"Charged Up\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Charged Up\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCharged Up\u003c/strong\u003e\u003cbr/\u003e\n    Get hit by a bolt of lightning.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"Polestar Pro\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Polestar Pro\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePolestar Pro\u003c/strong\u003e\u003cbr/\u003e\n    Purchase 40 items in the Polestar Provisions shop.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"All That Glitters\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: All That Glitters\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAll That Glitters\u003c/strong\u003e\u003cbr/\u003e\n    Have a Strange Diamond, Sun Sap, Royal Jelly, and Lightning Mote in your vac at the same time.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"Can\u0026#39;t Make an Omelette\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Can\u0026#39;t Make an Omelette\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCan\u0026#39;t Make an Omelette\u003c/strong\u003e\u003cbr/\u003e\n    Break a Yolky Slime egg.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"Secret Behind the Waterfall\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Secret Behind the Waterfall\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSecret Behind the Waterfall\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"Into the Unknown\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Into the Unknown\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInto the Unknown\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"Treasure Hunter\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Treasure Hunter\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTreasure Hunter\u003c/strong\u003e\u003cbr/\u003e\n    Loot 50 treasure pods.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"Far Range Friends\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Far Range Friends\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFar Range Friends\u003c/strong\u003e\u003cbr/\u003e\n    Use the Comm Station to receive a gift from Mochi, Viktor, Thora, Ogden, and BOb.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"Quantum Crafter\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Quantum Crafter\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eQuantum Crafter\u003c/strong\u003e\u003cbr/\u003e\n    Craft 5 Quantum Drones.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"Pop!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Pop!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePop!\u003c/strong\u003e\u003cbr/\u003e\n    Feed 3 Gordos to bursting.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"Turn the Dial\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Turn the Dial\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTurn the Dial\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"Bea-llionaire\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bea-llionaire\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBea-llionaire\u003c/strong\u003e\u003cbr/\u003e\n    Earn 100000 newbucks from selling plorts.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"A Real Goal-Getter\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Real Goal-Getter\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Real Goal-Getter\u003c/strong\u003e\u003cbr/\u003e\n    Get a score of 120 on a Slimeball goal gadget within 1 minute.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"Tarrnado\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tarrnado\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTarrnado\u003c/strong\u003e\u003cbr/\u003e\n    Shoot a tarr into a tornado.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"Rainbow Researcher\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Rainbow Researcher\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRainbow Researcher\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Slimepedia.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"You Can Pet the Cat\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: You Can Pet the Cat\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou Can Pet the Cat\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/1657630/library_600x900.jpg\" alt=\"Slime Rancher 2 box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/1657630/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eSlime Rancher 2\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 18.52%\"\u003e\n        18.52%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e5/27 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e59.5h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-10-26\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (5)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/e5528ed14fcb4607c3260339781977d9b9c378fa.jpg\" alt=\"Tinker Tailor Science Slime\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTinker Tailor Science Slime\u003c/strong\u003e\u003cbr\u003e\n    Craft 8 unique player upgrades.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 24, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/6ee8c96ce09c8f31e0fed043fe3b59150f1fd0b7.jpg\" alt=\"Complete Conservatory\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eComplete Conservatory\u003c/strong\u003e\u003cbr\u003e\n    Purchase 5 Ranch Expansions.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 24, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/cf9a3365ecb422941bca08d6591ac8ad36c89100.jpg\" alt=\"Tinkerer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTinkerer\u003c/strong\u003e\u003cbr\u003e\n    Place your first gadget.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 24, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/87f1a417fc16b741cbfbc913badb01a2be357680.jpg\" alt=\"Rainbow Explorer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRainbow Explorer\u003c/strong\u003e\u003cbr\u003e\n    Discover any three areas.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 24, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/8a33db76cc3f8db896d257e386bc2935450786ab.jpg\" alt=\"Plortonomics\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePlortonomics\u003c/strong\u003e\u003cbr\u003e\n    Sell 15 different types of plorts.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 24, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (22)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"Core Breach\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCore Breach\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"Fly like a Bea\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFly like a Bea\u003c/strong\u003e\u003cbr\u003e\n    Fly for 5 seconds using the jetpack.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"A Real Hero\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Real Hero\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"Now You're Thinking With Plortals\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNow You're Thinking With Plortals\u003c/strong\u003e\u003cbr\u003e\n    Fire a plort through a linked cannon, sending it to the plort market.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"Beam Me Up\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeam Me Up\u003c/strong\u003e\u003cbr\u003e\n    Craft and use a Return Home Portal.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"Shady Deals\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShady Deals\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"Charged Up\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCharged Up\u003c/strong\u003e\u003cbr\u003e\n    Get hit by a bolt of lightning.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"Polestar Pro\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePolestar Pro\u003c/strong\u003e\u003cbr\u003e\n    Purchase 40 items in the Polestar Provisions shop.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"All That Glitters\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAll That Glitters\u003c/strong\u003e\u003cbr\u003e\n    Have a Strange Diamond, Sun Sap, Royal Jelly, and Lightning Mote in your vac at the same time.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"Can't Make an Omelette\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCan't Make an Omelette\u003c/strong\u003e\u003cbr\u003e\n    Break a Yolky Slime egg.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"Secret Behind the Waterfall\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSecret Behind the Waterfall\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"Into the Unknown\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInto the Unknown\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"Treasure Hunter\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTreasure Hunter\u003c/strong\u003e\u003cbr\u003e\n    Loot 50 treasure pods.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"Far Range Friends\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFar Range Friends\u003c/strong\u003e\u003cbr\u003e\n    Use the Comm Station to receive a gift from Mochi, Viktor, Thora, Ogden, and BOb.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"Quantum Crafter\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eQuantum Crafter\u003c/strong\u003e\u003cbr\u003e\n    Craft 5 Quantum Drones.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"Pop!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePop!\u003c/strong\u003e\u003cbr\u003e\n    Feed 3 Gordos to bursting.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"Turn the Dial\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTurn the Dial\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"Bea-llionaire\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBea-llionaire\u003c/strong\u003e\u003cbr\u003e\n    Earn 100000 newbucks from selling plorts.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"A Real Goal-Getter\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Real Goal-Getter\u003c/strong\u003e\u003cbr\u003e\n    Get a score of 120 on a Slimeball goal gadget within 1 minute.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"Tarrnado\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTarrnado\u003c/strong\u003e\u003cbr\u003e\n    Shoot a tarr into a tornado.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"Rainbow Researcher\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRainbow Researcher\u003c/strong\u003e\u003cbr\u003e\n    Complete the Slimepedia.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1657630/dff0197b7293effd9be20fdabf7b1f97f25646f2.jpg\" alt=\"You Can Pet the Cat\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou Can Pet the Cat\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Slime Rancher 2 - 18.52% complete with 5/27 achievements unlocked.",
      "date_published": "2025-10-26T00:00:00Z",
      "date_modified": "2025-10-26T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "slime-rancher-2"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/party-animals/",
      "url": "https://go.waylonwalker.com/steam/party-animals/",
      "title": "Party Animals",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/1260320/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/1260320/library_600x900.jpg\" alt=\"Party Animals box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/1260320/header.jpg\u0026#39;\"/ data-glightbox=\"description: Party Animals box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eParty Animals\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 3.45%\"\u003e\n        3.45%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e4/116 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e11.2h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-10-03\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (4)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/d8cb4834e1e48f0d3bd71359dfd88d3f99277c58.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/d8cb4834e1e48f0d3bd71359dfd88d3f99277c58.jpg\" alt=\"Welcome To The Party\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Welcome To The Party\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWelcome To The Party\u003c/strong\u003e\u003cbr/\u003e\n    Finish the Lab\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 04, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/bb14ddf4910debabd9438562794e86a971b1c47a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/bb14ddf4910debabd9438562794e86a971b1c47a.jpg\" alt=\"Sportsmanship\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sportsmanship\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSportsmanship\u003c/strong\u003e\u003cbr/\u003e\n    Knock out 1 player at the podium\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 12, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/95d21c485df666d45761f46bcead7b63f27a8370.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/95d21c485df666d45761f46bcead7b63f27a8370.jpg\" alt=\"Who\u0026#39;s Laughing Now\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Who\u0026#39;s Laughing Now\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWho\u0026#39;s Laughing Now\u003c/strong\u003e\u003cbr/\u003e\n    Be the sole player who hasn\u0026#39;t been knocked out at the photo-taking moment\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 12, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/4b1eed136b65cfe691c4f3d942f5e2ba055e763d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/4b1eed136b65cfe691c4f3d942f5e2ba055e763d.jpg\" alt=\"I\u0026#39;m Enlightened\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: I\u0026#39;m Enlightened\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI\u0026#39;m Enlightened\u003c/strong\u003e\u003cbr/\u003e\n    In the Lab, stand in front of the signboard at the Monolith room for 5 seconds\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 16, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (112)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/56b90620ae67b6b03da266a14f3ca63faa9957cc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/56b90620ae67b6b03da266a14f3ca63faa9957cc.jpg\" alt=\"Platinum Animal\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Platinum Animal\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePlatinum Animal\u003c/strong\u003e\u003cbr/\u003e\n    Unlock 92 achievements\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/2841f6ddca75ee7f75fc70970f3dd28354d801c4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/2841f6ddca75ee7f75fc70970f3dd28354d801c4.jpg\" alt=\"Level 50\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Level 50\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLevel 50\u003c/strong\u003e\u003cbr/\u003e\n    Reach Animal Level 50\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/9fe57bf373abe64b448dd0e3ab3c0534d1075283.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/9fe57bf373abe64b448dd0e3ab3c0534d1075283.jpg\" alt=\"Level 100\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Level 100\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLevel 100\u003c/strong\u003e\u003cbr/\u003e\n    Reach Animal Level 100\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/50029c48342a8fb73d169a8b4752f4f4aedfc62e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/50029c48342a8fb73d169a8b4752f4f4aedfc62e.jpg\" alt=\"Animal Unlock: 20\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Animal Unlock: 20\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAnimal Unlock: 20\u003c/strong\u003e\u003cbr/\u003e\n    Unlock 20 Characters\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/116beab13732131f78cabe9c1999cf29fa5ac70e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/116beab13732131f78cabe9c1999cf29fa5ac70e.jpg\" alt=\"Outfit Unlocked: 20\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Outfit Unlocked: 20\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOutfit Unlocked: 20\u003c/strong\u003e\u003cbr/\u003e\n    Unlock 20 Outfits\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/9655261cd1163b96e1c556008d7f8f0750312029.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/9655261cd1163b96e1c556008d7f8f0750312029.jpg\" alt=\"Fashionista\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fashionista\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFashionista\u003c/strong\u003e\u003cbr/\u003e\n    Unlock 30 Outfits\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/a5d50ccfc2df193f2c977dbd2f5f607774175492.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/a5d50ccfc2df193f2c977dbd2f5f607774175492.jpg\" alt=\"Avatar Master\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Avatar Master\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAvatar Master\u003c/strong\u003e\u003cbr/\u003e\n    Unlock 15 avatars\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/ece732818bfd3e1daaadf1540e246ede25b95047.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/ece732818bfd3e1daaadf1540e246ede25b95047.jpg\" alt=\"Punch In\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Punch In\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePunch In\u003c/strong\u003e\u003cbr/\u003e\n    Successfully finish 4 weekly challenges within a single week\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/d79a2355f5ac156608123aebcd71cfbe4e0c4a24.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/d79a2355f5ac156608123aebcd71cfbe4e0c4a24.jpg\" alt=\"Keep On Keeping On\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Keep On Keeping On\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKeep On Keeping On\u003c/strong\u003e\u003cbr/\u003e\n    Successfully finish all weekly challenges for 3 weeks in a row\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/bba56977598e163db8a8d59e34c4e7122241dd94.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/bba56977598e163db8a8d59e34c4e7122241dd94.jpg\" alt=\"Yo Man\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Yo Man\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYo Man\u003c/strong\u003e\u003cbr/\u003e\n    Get 1 new in-game friend\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/2fe3f5afd70110cc69557330037dd54f1f9db9f3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/2fe3f5afd70110cc69557330037dd54f1f9db9f3.jpg\" alt=\"Friends\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Friends\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFriends\u003c/strong\u003e\u003cbr/\u003e\n    Get 10 new in-game friends\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/ddd5696c87c9913e868101c817b3edc26f60c1da.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/ddd5696c87c9913e868101c817b3edc26f60c1da.jpg\" alt=\"Nemo For Speed\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Nemo For Speed\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNemo For Speed\u003c/strong\u003e\u003cbr/\u003e\n    Earn a 3-star rating in the Lab\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/9e6e1144ecb87429656ba1d3a3c43c81fa8301d7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/9e6e1144ecb87429656ba1d3a3c43c81fa8301d7.jpg\" alt=\"First Strike\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: First Strike\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFirst Strike\u003c/strong\u003e\u003cbr/\u003e\n    Win 1 Quick Match game\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/cffbdbcd5ec34b71e9a66614a1c03912eb778fef.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/cffbdbcd5ec34b71e9a66614a1c03912eb778fef.jpg\" alt=\"10 Quick Match Wins\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: 10 Quick Match Wins\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e10 Quick Match Wins\u003c/strong\u003e\u003cbr/\u003e\n    Win 10 Quick Match games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/6161230b86bd5e9886b7bc1b414e6676bcd77af9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/6161230b86bd5e9886b7bc1b414e6676bcd77af9.jpg\" alt=\"I Have A Friend\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: I Have A Friend\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI Have A Friend\u003c/strong\u003e\u003cbr/\u003e\n    Team up and finish 1 Quick Match game alongside friends\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/e9cfdeb001805807c7d394f6dc886a685a33ccd3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/e9cfdeb001805807c7d394f6dc886a685a33ccd3.jpg\" alt=\"Give Me Five\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Give Me Five\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGive Me Five\u003c/strong\u003e\u003cbr/\u003e\n    Team up and finish 10 Quick Match games alongside friends\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/561a77c29a6f62ce7780e1a3b0301a7f4847cbc9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/561a77c29a6f62ce7780e1a3b0301a7f4847cbc9.jpg\" alt=\"Currahee\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Currahee\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCurrahee\u003c/strong\u003e\u003cbr/\u003e\n    Team up and win 1 Quick Match game alongside friends\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/27ebb53d6b458e6804244b373998998fcce048fe.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/27ebb53d6b458e6804244b373998998fcce048fe.jpg\" alt=\"Band Of Brothers\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Band Of Brothers\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBand Of Brothers\u003c/strong\u003e\u003cbr/\u003e\n    Team up and win 10 Quick Match games alongside friends\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/526118f140ffe9a7e05124ce6e66e2edeef5effc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/526118f140ffe9a7e05124ce6e66e2edeef5effc.jpg\" alt=\"Hot Shot\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hot Shot\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHot Shot\u003c/strong\u003e\u003cbr/\u003e\n    Win 5 consecutive games in Quick Match\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/903f74e6c19d53e79dbe4e95eb45ea099bba0f24.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/903f74e6c19d53e79dbe4e95eb45ea099bba0f24.jpg\" alt=\"The Dream Team\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Dream Team\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Dream Team\u003c/strong\u003e\u003cbr/\u003e\n    Team up and win 5 consecutive Quick Match games alongside friends\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/8a16ca9f45bb0030f24065b8436e17451cf6bd77.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/8a16ca9f45bb0030f24065b8436e17451cf6bd77.jpg\" alt=\"OHHHHHH\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: OHHHHHH\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOHHHHHH\u003c/strong\u003e\u003cbr/\u003e\n    Win 1 Quick Match game without a single knockout\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/1bc874e99f020a1137c38d877a92510a5517172f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/1bc874e99f020a1137c38d877a92510a5517172f.jpg\" alt=\"Piece of Cake\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Piece of Cake\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePiece of Cake\u003c/strong\u003e\u003cbr/\u003e\n    Win Last Stand Classic in exactly 3 rounds (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/7ac6d82ef14f542673aa5e39bc7eabc97e356eea.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/7ac6d82ef14f542673aa5e39bc7eabc97e356eea.jpg\" alt=\"Match Point\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Match Point\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMatch Point\u003c/strong\u003e\u003cbr/\u003e\n    Win Last Stand Classic in exactly 9 rounds (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/f09ca9b461f55edcd34c4b37070c776a0f7fbae1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/f09ca9b461f55edcd34c4b37070c776a0f7fbae1.jpg\" alt=\"Fight Everywhere\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fight Everywhere\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFight Everywhere\u003c/strong\u003e\u003cbr/\u003e\n    Win 20 Custom Games in different maps (require more than 6 human players when game ends)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/abec890078312dac174afca312d15c1eaba9bd8d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/abec890078312dac174afca312d15c1eaba9bd8d.jpg\" alt=\"Twice The Fun\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Twice The Fun\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTwice The Fun\u003c/strong\u003e\u003cbr/\u003e\n    Finish 2 Custom Games with multiple local players(splitscreen)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/cbd0e09f7307da9f40dc298539dd3e8d1400e17d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/cbd0e09f7307da9f40dc298539dd3e8d1400e17d.jpg\" alt=\"My Rules\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: My Rules\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMy Rules\u003c/strong\u003e\u003cbr/\u003e\n    Complete 1 Custom Game with modified settings\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/63979d3c0d5b9162d2db86fb15510ccfc44d9b7d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/63979d3c0d5b9162d2db86fb15510ccfc44d9b7d.jpg\" alt=\"Who Did That\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Who Did That\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWho Did That\u003c/strong\u003e\u003cbr/\u003e\n    Throw item and knock out 5 opponents as spectator (require more than 6 human players when game ends)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/8c2f4bf6fd82961835fddd8cf98dd42d04852dc9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/8c2f4bf6fd82961835fddd8cf98dd42d04852dc9.jpg\" alt=\"Hooray! The Earth\u0026#39;s Strongest Animal\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hooray! The Earth\u0026#39;s Strongest Animal\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHooray! The Earth\u0026#39;s Strongest Animal\u003c/strong\u003e\u003cbr/\u003e\n    In Ichiban, win 5 Quick Match Classic games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/726406fcc376050f124f33120ca5a16e5b9dbeb2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/726406fcc376050f124f33120ca5a16e5b9dbeb2.jpg\" alt=\"Ice Block\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ice Block\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIce Block\u003c/strong\u003e\u003cbr/\u003e\n    In Ichiban, win a round by freezing yourself to evade elimination by the poison cloud (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/dd2b6b55f4976eca0c6b6365faf2f16ec0dad88c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/dd2b6b55f4976eca0c6b6365faf2f16ec0dad88c.jpg\" alt=\"Sayonara\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sayonara\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSayonara\u003c/strong\u003e\u003cbr/\u003e\n    In Ichiban, eliminate an opponent by striking them out of the playing field (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/22a7727e18eb45ddf4839ad8f47b0f872524ee37.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/22a7727e18eb45ddf4839ad8f47b0f872524ee37.jpg\" alt=\"Justice Rains From Above\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Justice Rains From Above\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJustice Rains From Above\u003c/strong\u003e\u003cbr/\u003e\n    In Ichiban, leap from a central pillar and knock out one player (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/c096b299d58ad4c55a587ca42323189a8eb1ef94.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/c096b299d58ad4c55a587ca42323189a8eb1ef94.jpg\" alt=\"Navy OTTERs\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Navy OTTERs\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNavy OTTERs\u003c/strong\u003e\u003cbr/\u003e\n    In Typhoon, win 5 Quick Match Classic games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/4b2f553b85c77c0389eb8900e43cca49efe95fab.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/4b2f553b85c77c0389eb8900e43cca49efe95fab.jpg\" alt=\"Superdry\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Superdry\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSuperdry\u003c/strong\u003e\u003cbr/\u003e\n    In Typhoon, win one round without falling into the water (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/726204dc6dd621b9063bd2071cc7686a2653ac6f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/726204dc6dd621b9063bd2071cc7686a2653ac6f.jpg\" alt=\"Case Closed\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Case Closed\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCase Closed\u003c/strong\u003e\u003cbr/\u003e\n    In Typhoon, eliminate one opponent by throwing it into the missile hatch (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/6b7a165ba9b38e2e442b4ec65c40815cbad89ca2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/6b7a165ba9b38e2e442b4ec65c40815cbad89ca2.jpg\" alt=\"Fireworks\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fireworks\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFireworks\u003c/strong\u003e\u003cbr/\u003e\n    In Typhoon, hold onto the missile for at least one second for 3 times in one round (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/f639d3b9b47d8a7525a5e70f04498ab336079d6c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/f639d3b9b47d8a7525a5e70f04498ab336079d6c.jpg\" alt=\"Die Hard\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Die Hard\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDie Hard\u003c/strong\u003e\u003cbr/\u003e\n    In Broken Arrow, win 5 Quick Match Classic games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/2e2d658d9af82a3a54d1d34f6848487be58b53c2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/2e2d658d9af82a3a54d1d34f6848487be58b53c2.jpg\" alt=\"Touch Down\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Touch Down\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTouch Down\u003c/strong\u003e\u003cbr/\u003e\n    In Broken Arrow, sustain survival for more than 2 min 30 sec in one round (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/212707a5323f59ce58d527e393f25a2fa005e053.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/212707a5323f59ce58d527e393f25a2fa005e053.jpg\" alt=\"Not Like Pat Roach\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Not Like Pat Roach\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNot Like Pat Roach\u003c/strong\u003e\u003cbr/\u003e\n    In Broken Arrow, hold a propeller, spin a lap, and survive (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/acf6b029a6fd598d521c9a60a7f4c73f1c4e7dc4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/acf6b029a6fd598d521c9a60a7f4c73f1c4e7dc4.jpg\" alt=\"Survivor\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Survivor\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSurvivor\u003c/strong\u003e\u003cbr/\u003e\n    In Winter Is Coming, win 5 Classic Quick Match games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/45caf6151272723b61d70d3661dc73b4f565947d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/45caf6151272723b61d70d3661dc73b4f565947d.jpg\" alt=\"Man vs. Wild\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Man vs. Wild\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMan vs. Wild\u003c/strong\u003e\u003cbr/\u003e\n    In Winter Is Coming, fall into the frozen lake\u0026#39;s hole and return to a bonfire (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/e4e150feb15b6d11b23a2cdf82b34f1abf492b4e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/e4e150feb15b6d11b23a2cdf82b34f1abf492b4e.jpg\" alt=\"Hot Dog\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hot Dog\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHot Dog\u003c/strong\u003e\u003cbr/\u003e\n    In Winter Is Coming, win one round without getting frozen (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/add92435c393a16cadc8e14582a29c07fbbde5b3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/add92435c393a16cadc8e14582a29c07fbbde5b3.jpg\" alt=\"Dog In The Wind\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Dog In The Wind\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDog In The Wind\u003c/strong\u003e\u003cbr/\u003e\n    In Wind Tunnel, win 5 Quick Match Classic games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/e8dd7d9530ab7e5419ba0f66cda8ea01ca1c9a28.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/e8dd7d9530ab7e5419ba0f66cda8ea01ca1c9a28.jpg\" alt=\"Chill In The Wind\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Chill In The Wind\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChill In The Wind\u003c/strong\u003e\u003cbr/\u003e\n    In Wind Tunnel, win one round without grabbing levers and gates (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/d14c811c4f13584c6ccc7ceaba3f21d5ce920510.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/d14c811c4f13584c6ccc7ceaba3f21d5ce920510.jpg\" alt=\"Dog Behind The Door\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Dog Behind The Door\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDog Behind The Door\u003c/strong\u003e\u003cbr/\u003e\n    In Wind Tunnel, survive for over 45 seconds without being blown by the wind (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/c4bf7c1f709fae43c67bd847360872016ba5f43f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/c4bf7c1f709fae43c67bd847360872016ba5f43f.jpg\" alt=\"Wreck-It Ralph\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Wreck-It Ralph\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWreck-It Ralph\u003c/strong\u003e\u003cbr/\u003e\n    In Wind Tunnel, survive even after all levers have been broken (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/d56beae045e4d639de440cae557af5aaf7425c1c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/d56beae045e4d639de440cae557af5aaf7425c1c.jpg\" alt=\"G-Man\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: G-Man\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eG-Man\u003c/strong\u003e\u003cbr/\u003e\n    In Blackhole Lab, win 5 Classic Quick Match games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/9e9ff86cc6420a5c1300a327f2a639e44c3ad304.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/9e9ff86cc6420a5c1300a327f2a639e44c3ad304.jpg\" alt=\"The Vortigaunts\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Vortigaunts\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Vortigaunts\u003c/strong\u003e\u003cbr/\u003e\n    In Blackhole Lab, survive from the 4th black hole without using the chain (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/e711eddc4a475f8a0cecaf3e838aa9e8f25de062.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/e711eddc4a475f8a0cecaf3e838aa9e8f25de062.jpg\" alt=\"Arthur\u0026#39;s Dream\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Arthur\u0026#39;s Dream\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArthur\u0026#39;s Dream\u003c/strong\u003e\u003cbr/\u003e\n    In Blackhole Lab, knock out 1 opponent while afloat in mid-air (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/9362224b89c84a2b863fc873955ccdfb587c6f59.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/9362224b89c84a2b863fc873955ccdfb587c6f59.jpg\" alt=\"Mission: Impossible\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mission: Impossible\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMission: Impossible\u003c/strong\u003e\u003cbr/\u003e\n    In Blackhole Lab, win one round prior to the 2nd black hole\u0026#39;s generation (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/6cf265237d6f68527adb260c8c55b62b34b357d3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/6cf265237d6f68527adb260c8c55b62b34b357d3.jpg\" alt=\"Waterloo Bridge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Waterloo Bridge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWaterloo Bridge\u003c/strong\u003e\u003cbr/\u003e\n    In Beat-Up Bridge, win 5 Classic Quick Match games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/1f07f60cbd5279b482982009f2b0e51f1d27349b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/1f07f60cbd5279b482982009f2b0e51f1d27349b.jpg\" alt=\"Peace Elite\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Peace Elite\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePeace Elite\u003c/strong\u003e\u003cbr/\u003e\n    In Beat-Up Bridge, win one round without hitting anyone else (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/2afe9142b4e3567d25a86d5dd7d99e2c6a949d91.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/2afe9142b4e3567d25a86d5dd7d99e2c6a949d91.jpg\" alt=\"Tarzan\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tarzan\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTarzan\u003c/strong\u003e\u003cbr/\u003e\n    In Beat-Up Bridge, endure for 20 seconds after main-rope snap and win the round (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/aef5dff635a48ce793d9cbb03b67ea14dee14600.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/aef5dff635a48ce793d9cbb03b67ea14dee14600.jpg\" alt=\"Escape the Gator\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Escape the Gator\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEscape the Gator\u003c/strong\u003e\u003cbr/\u003e\n    In Gator Valley, win 5 Quick Match Classic games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/9128d611de7d6d0b823e266a80e345b0a91e1ef4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/9128d611de7d6d0b823e266a80e345b0a91e1ef4.jpg\" alt=\"Still Waters\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Still Waters\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStill Waters\u003c/strong\u003e\u003cbr/\u003e\n    In Gator Valley, win one round prior to the onset of the 3rd wave (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/c80f48533c898f708fe1d96eb962ef0c2a751b77.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/c80f48533c898f708fe1d96eb962ef0c2a751b77.jpg\" alt=\"Surfer Dogs\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Surfer Dogs\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSurfer Dogs\u003c/strong\u003e\u003cbr/\u003e\n    In Gator Valley, win one round with teammate without falling off the floating bridge (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/3d5e61b63fdc8e7f2efc693fda050d6605c8600e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/3d5e61b63fdc8e7f2efc693fda050d6605c8600e.jpg\" alt=\"Reservoir Dogs\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Reservoir Dogs\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eReservoir Dogs\u003c/strong\u003e\u003cbr/\u003e\n    In Gator Valley, win one round with teammate while both of you are in the water (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/82e18d4b732fbf3375e7c0d321d54a37792d7efd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/82e18d4b732fbf3375e7c0d321d54a37792d7efd.jpg\" alt=\"Ice Dog\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ice Dog\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIce Dog\u003c/strong\u003e\u003cbr/\u003e\n    In Ice Breaker, win 5 Quick Match Classic games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/dce8271262dcf0109fafb7f9edb29592f0d32173.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/dce8271262dcf0109fafb7f9edb29592f0d32173.jpg\" alt=\"Jack And Rose\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Jack And Rose\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJack And Rose\u003c/strong\u003e\u003cbr/\u003e\n    In Ice Breaker, win one round by staying alive with teammate (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/fa4e9c932d35b67b729ee7c93a7652085a16b2e9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/fa4e9c932d35b67b729ee7c93a7652085a16b2e9.jpg\" alt=\"Smooth Operator\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Smooth Operator\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSmooth Operator\u003c/strong\u003e\u003cbr/\u003e\n    In Ice Breaker, win one round without falling into the water (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/5b4d14b516f521dd714cee2e043f7a841404ceef.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/5b4d14b516f521dd714cee2e043f7a841404ceef.jpg\" alt=\"Willy Wonka\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Willy Wonka\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWilly Wonka\u003c/strong\u003e\u003cbr/\u003e\n    In Lollipop Factory, win 5 Quick Match Classic games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/6b2e918d999d6f082a06c537752a37d65e5f61fe.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/6b2e918d999d6f082a06c537752a37d65e5f61fe.jpg\" alt=\"Less is More\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Less is More\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLess is More\u003c/strong\u003e\u003cbr/\u003e\n    In Lollipop Factory, win the game by only submitting little gummies (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/bad2a243646087376bbc11c8e108c78f7fa5dc90.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/bad2a243646087376bbc11c8e108c78f7fa5dc90.jpg\" alt=\"I\u0026#39;m Back\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: I\u0026#39;m Back\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI\u0026#39;m Back\u003c/strong\u003e\u003cbr/\u003e\n    In Lollipop Factory, climb out of the submission gate (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/cb413477e26dfa1586f701c98d245bea37b24cd1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/cb413477e26dfa1586f701c98d245bea37b24cd1.jpg\" alt=\"L\u0026#39;arrivée d\u0026#39;un train\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: L\u0026#39;arrivée d\u0026#39;un train\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eL\u0026#39;arrivée d\u0026#39;un train\u003c/strong\u003e\u003cbr/\u003e\n    In Fluffy Redemption, win 5 Quick Match Classic games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/050d397d695efa80c75b70d711b35ab41c61d256.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/050d397d695efa80c75b70d711b35ab41c61d256.jpg\" alt=\"Working Dog\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Working Dog\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWorking Dog\u003c/strong\u003e\u003cbr/\u003e\n    In Fluffy Redemption, throw 10 coal pieces into the firebox without being eliminated (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/4f05357d167c74424a8e67c548bd8e4d3597cb34.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/4f05357d167c74424a8e67c548bd8e4d3597cb34.jpg\" alt=\"Biofuels\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Biofuels\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBiofuels\u003c/strong\u003e\u003cbr/\u003e\n    In Fluffy Redemption, throw opponents into the firebox for 10 times in one game (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/593173d8f3421333c107d68c08818b6d8a296196.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/593173d8f3421333c107d68c08818b6d8a296196.jpg\" alt=\"Dutch\u0026#39;s Plan\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Dutch\u0026#39;s Plan\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDutch\u0026#39;s Plan\u003c/strong\u003e\u003cbr/\u003e\n    In Fluffy Redemption, experience a complete team wipeout (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/ff3f923acb1e57c7556b18e2b88bbb55ecfe1a88.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/ff3f923acb1e57c7556b18e2b88bbb55ecfe1a88.jpg\" alt=\"Ready Player One\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ready Player One\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eReady Player One\u003c/strong\u003e\u003cbr/\u003e\n    In Into The Game, win 5 Quick Match Classic games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/b59d4aa51982b4f132aa5a9c31813d16c3e0c8bd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/b59d4aa51982b4f132aa5a9c31813d16c3e0c8bd.jpg\" alt=\"Diamond Merchant\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Diamond Merchant\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDiamond Merchant\u003c/strong\u003e\u003cbr/\u003e\n    In Into The Game, win one game and score 20 diamonds on your own(Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/0e79d84b97d2a8a45705baf5a1c35d354d6da459.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/0e79d84b97d2a8a45705baf5a1c35d354d6da459.jpg\" alt=\"Gold Rusher\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Gold Rusher\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGold Rusher\u003c/strong\u003e\u003cbr/\u003e\n    In Into The Game, win one game and score 50 coins on your own (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/2d97c4b7bb357b210649431182b4c5eb26f33633.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/2d97c4b7bb357b210649431182b4c5eb26f33633.jpg\" alt=\"Immortal Kombat\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Immortal Kombat\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eImmortal Kombat\u003c/strong\u003e\u003cbr/\u003e\n    In Into The Game, knock out opponent playing arcade for 3 times in one game (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/3e9b2740958d5d77e2d625c2c1e968afa60dd85b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/3e9b2740958d5d77e2d625c2c1e968afa60dd85b.jpg\" alt=\"Fly Me To The Moon\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fly Me To The Moon\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFly Me To The Moon\u003c/strong\u003e\u003cbr/\u003e\n    In Safely Afloat, win 5 Quick Match Classic games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/bda37e7635e7590eb26fcd73f2930bce1a966557.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/bda37e7635e7590eb26fcd73f2930bce1a966557.jpg\" alt=\"Up\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Up\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUp\u003c/strong\u003e\u003cbr/\u003e\n    In Safely Afloat, grasp a balloon and stay aloft for 60 seconds in a game (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/2818646083f7635203709a94b604df4303e69f66.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/2818646083f7635203709a94b604df4303e69f66.jpg\" alt=\"Mine Cart Carnage\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mine Cart Carnage\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMine Cart Carnage\u003c/strong\u003e\u003cbr/\u003e\n    In Safely Afloat, propel the mine cart over the cliff\u0026#39;s edge (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/e5ca0e3b1f237e8d7598b5ae332ab3104dad718b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/e5ca0e3b1f237e8d7598b5ae332ab3104dad718b.jpg\" alt=\"Balloon Runner\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Balloon Runner\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBalloon Runner\u003c/strong\u003e\u003cbr/\u003e\n    In Safely Afloat, achieve a score within the initial 30 seconds of the game (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/5f22567a97dccb7935d19375837470a33504808e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/5f22567a97dccb7935d19375837470a33504808e.jpg\" alt=\"Total War\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Total War\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTotal War\u003c/strong\u003e\u003cbr/\u003e\n    In Trebuchet, win 5 Quick Match Classic games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/7f3d13330576f2750451588f51f02bd45bc7c833.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/7f3d13330576f2750451588f51f02bd45bc7c833.jpg\" alt=\"The Hurt Locker\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Hurt Locker\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Hurt Locker\u003c/strong\u003e\u003cbr/\u003e\n    In Trebuchet, successfully defuse 10 incoming barrel bombs in a single game (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/bbf6b0cb6f4809288d31df4c809e9fdc5cb41b4a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/bbf6b0cb6f4809288d31df4c809e9fdc5cb41b4a.jpg\" alt=\"Airline VIP\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Airline VIP\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAirline VIP\u003c/strong\u003e\u003cbr/\u003e\n    In Trebuchet, ride in launched trebuchet 10 times in one game (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/a5ed34356b9d5c58b0d763bf2d7cac281ef47c5b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/a5ed34356b9d5c58b0d763bf2d7cac281ef47c5b.jpg\" alt=\"Thunderbolt\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Thunderbolt\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThunderbolt\u003c/strong\u003e\u003cbr/\u003e\n    In Buzz Ball, win 5 Quick Match Classic games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/b0eb8b3df2d13dc034f7bd7f26bf803a87ed3ada.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/b0eb8b3df2d13dc034f7bd7f26bf803a87ed3ada.jpg\" alt=\"Shock Damage\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Shock Damage\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShock Damage\u003c/strong\u003e\u003cbr/\u003e\n    In Buzz Ball, trigger the buzz ball blast 10 times in one game (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/acb4b0fdc375640fc97b1780071717dc2f5df3c3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/acb4b0fdc375640fc97b1780071717dc2f5df3c3.jpg\" alt=\"666\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: 666\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e666\u003c/strong\u003e\u003cbr/\u003e\n    In Buzz Ball, single-handedly accumulate all points for your team and win (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/cdee03b9fd3ab91c6fd3380290f27a16c96463a7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/cdee03b9fd3ab91c6fd3380290f27a16c96463a7.jpg\" alt=\"The Klaw\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Klaw\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Klaw\u003c/strong\u003e\u003cbr/\u003e\n    In Buzz Ball, single-handedly notch a score in the final 10 seconds of the 11th round (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/13235a90ec2cb8404d7f59ef8df0c8e9db980451.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/13235a90ec2cb8404d7f59ef8df0c8e9db980451.jpg\" alt=\"The Mighty Ducks\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Mighty Ducks\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Mighty Ducks\u003c/strong\u003e\u003cbr/\u003e\n    In Beast Hockey, win 5 Quick Match Classic games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/4f4801925abf3b13d4bdb3df0aa2cbdc740f8b02.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/4f4801925abf3b13d4bdb3df0aa2cbdc740f8b02.jpg\" alt=\"Perfect Guard\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Perfect Guard\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePerfect Guard\u003c/strong\u003e\u003cbr/\u003e\n    In Beast Hockey, parry the puck using a shield thrice in a match (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/10a56708dc19fe86fec132e63267be61449c10c6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/10a56708dc19fe86fec132e63267be61449c10c6.jpg\" alt=\"Bowling Alley Cat\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bowling Alley Cat\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBowling Alley Cat\u003c/strong\u003e\u003cbr/\u003e\n    In Beast Hockey, strike the puck, knock out over 2 players and notch a score (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/28fc511239038039de7500c35d9b68f28f014244.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/28fc511239038039de7500c35d9b68f28f014244.jpg\" alt=\"Super Bowl\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Super Bowl\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSuper Bowl\u003c/strong\u003e\u003cbr/\u003e\n    In Beast Football, win 5 Quick Match Classic games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/063ef6d86fc633dc69eb8de1cdb064da37230d11.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/063ef6d86fc633dc69eb8de1cdb064da37230d11.jpg\" alt=\"Ball Weapon\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ball Weapon\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBall Weapon\u003c/strong\u003e\u003cbr/\u003e\n    In Beast Football, long pass and knock out opponent (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/fa78ffbaae1bffaa1b91b88be1cd6310745cfc4f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/fa78ffbaae1bffaa1b91b88be1cd6310745cfc4f.jpg\" alt=\"Run Forrest Run\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Run Forrest Run\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRun Forrest Run\u003c/strong\u003e\u003cbr/\u003e\n    In Beast Football, score a touchdown within the initial 15 seconds of the round (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/bd398fcf0507fc5a5f7967525ff4ca6f835bb66e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/bd398fcf0507fc5a5f7967525ff4ca6f835bb66e.jpg\" alt=\"Patte d\u0026#39;Or\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Patte d\u0026#39;Or\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePatte d\u0026#39;Or\u003c/strong\u003e\u003cbr/\u003e\n    In Beast Soccer, win 5 Quick Match Classic games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/b5df2127015a688d986e5869b9abc1fc0f56ce12.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/b5df2127015a688d986e5869b9abc1fc0f56ce12.jpg\" alt=\"Hat Trick\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hat Trick\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHat Trick\u003c/strong\u003e\u003cbr/\u003e\n    In Beast Soccer, score 3 goals in one game (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/8369fe0143f5d70124ee944bd0e43ac6793adf2c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/8369fe0143f5d70124ee944bd0e43ac6793adf2c.jpg\" alt=\"Roy Makaay\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Roy Makaay\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRoy Makaay\u003c/strong\u003e\u003cbr/\u003e\n    In Beast Soccer, score a goal within the initial 10 seconds of the round (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/89ff88f543a20f21799b355a36faa69571802324.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/89ff88f543a20f21799b355a36faa69571802324.jpg\" alt=\"Big Brains\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Big Brains\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBig Brains\u003c/strong\u003e\u003cbr/\u003e\n    In the Lab, get to know 4 great scientists\u0026#39; names\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/39e120fd1fcdb640cec8444a35526e1350cadc23.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/39e120fd1fcdb640cec8444a35526e1350cadc23.jpg\" alt=\"Aye aye, Captain!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Aye aye, Captain!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAye aye, Captain!\u003c/strong\u003e\u003cbr/\u003e\n    Finish the Black Sails solo mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/16f31f9d2518022c51c7f9c1752b6186e03512f3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/16f31f9d2518022c51c7f9c1752b6186e03512f3.jpg\" alt=\"Captain Nemo\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Captain Nemo\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCaptain Nemo\u003c/strong\u003e\u003cbr/\u003e\n    Earn a 3-star rating in Black Sails solo mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/91093bb39ad2138e7b8e75752b65a5877fbff883.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/91093bb39ad2138e7b8e75752b65a5877fbff883.jpg\" alt=\"An Able Bodied Crew\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: An Able Bodied Crew\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAn Able Bodied Crew\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Black Sails duo mode on hard or beast difficulty\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/8d022ad5bfdc4a0b211fe8bf12aac714ed80a41f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/8d022ad5bfdc4a0b211fe8bf12aac714ed80a41f.jpg\" alt=\"Drink up, me hearties, yo ho!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Drink up, me hearties, yo ho!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDrink up, me hearties, yo ho!\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Black Sails duo mode on beast difficulty\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/480c2c03acbc900f78a6177e0db3660933740379.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/480c2c03acbc900f78a6177e0db3660933740379.jpg\" alt=\"Keep Breathing\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Keep Breathing\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKeep Breathing\u003c/strong\u003e\u003cbr/\u003e\n    Finish Cast Away\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/bd7d8bf82bf8be59f068a4b9fc02a9402abfe4ed.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/bd7d8bf82bf8be59f068a4b9fc02a9402abfe4ed.jpg\" alt=\"This is my island!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: This is my island!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThis is my island!\u003c/strong\u003e\u003cbr/\u003e\n    Earn a 3-star rating in Cast Away\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/ab80faf3b7db03ac3f70ea05565e800d378e2f20.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/ab80faf3b7db03ac3f70ea05565e800d378e2f20.jpg\" alt=\"Hey, Wilson\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hey, Wilson\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHey, Wilson\u003c/strong\u003e\u003cbr/\u003e\n    In Cast Away, find and pick up the Wilson volleyball\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/33f3c2e4c5ee481318fe25691d9cc9727e620634.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/33f3c2e4c5ee481318fe25691d9cc9727e620634.jpg\" alt=\"Safely First\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Safely First\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSafely First\u003c/strong\u003e\u003cbr/\u003e\n    Win 1 Nemo Kart games (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/1bb58ebbaaf4707f7eca261ca2e7b29af547cfee.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/1bb58ebbaaf4707f7eca261ca2e7b29af547cfee.jpg\" alt=\"Fast and Furry\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fast and Furry\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFast and Furry\u003c/strong\u003e\u003cbr/\u003e\n    In Nemo Kart – Shanghai, finish a race within 2:38.00 (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/7df7ba6c0047f8a342f5b62accef09141d66727e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/7df7ba6c0047f8a342f5b62accef09141d66727e.jpg\" alt=\"Beast of Mount Akina\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Beast of Mount Akina\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeast of Mount Akina\u003c/strong\u003e\u003cbr/\u003e\n    In Nemo Kart – Shanghai, perform 34 drift boosts in a single race (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/06cf6bd60c6a3d020a4776c25519661efb1a83c0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/06cf6bd60c6a3d020a4776c25519661efb1a83c0.jpg\" alt=\"Fur Weight Champion\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fur Weight Champion\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFur Weight Champion\u003c/strong\u003e\u003cbr/\u003e\n    In Ring of Garfat, win 5 Quick Match Classic games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/825c213421b8e3b46f6af76a3128e1d310447188.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/825c213421b8e3b46f6af76a3128e1d310447188.jpg\" alt=\"Nimble As A Cat\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Nimble As A Cat\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNimble As A Cat\u003c/strong\u003e\u003cbr/\u003e\n    In Ring of Garfat, win any round without encountering any falling rocks or flames (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/40c35bb0122ba3fd8a3d7bfdf6c31501fa9eee83.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/40c35bb0122ba3fd8a3d7bfdf6c31501fa9eee83.jpg\" alt=\"Iron Mike\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Iron Mike\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIron Mike\u003c/strong\u003e\u003cbr/\u003e\n    In Ring of Garfat, win a round within 91 seconds (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/1bf43eeb5e5cf4ca8ce20005733b18dac25ec1e4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/1bf43eeb5e5cf4ca8ce20005733b18dac25ec1e4.jpg\" alt=\"Infinity And Beyond\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Infinity And Beyond\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInfinity And Beyond\u003c/strong\u003e\u003cbr/\u003e\n    Win 20 games in Space Crisis\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/63ebd416a445250a6d6838212f18d69fac9d5392.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/63ebd416a445250a6d6838212f18d69fac9d5392.jpg\" alt=\"New Dawn\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: New Dawn\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNew Dawn\u003c/strong\u003e\u003cbr/\u003e\n    Win 15 games as a Goodie in Space Crisis\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/c0c8c4e2a460f1e5e8e3e06e6ee20a4ef216d7d1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/c0c8c4e2a460f1e5e8e3e06e6ee20a4ef216d7d1.jpg\" alt=\"I\u0026#39;m Sorry, Dave\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: I\u0026#39;m Sorry, Dave\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI\u0026#39;m Sorry, Dave\u003c/strong\u003e\u003cbr/\u003e\n    Win 5 games as a Killer in Space Crisis\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/7fa5c3d3e71a880dd49da392ede8e1f13cbed0cf.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/7fa5c3d3e71a880dd49da392ede8e1f13cbed0cf.jpg\" alt=\"The Monolith\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Monolith\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Monolith\u003c/strong\u003e\u003cbr/\u003e\n    Win 3 games as a Neutral role in Space Crisis\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/9d0c698d97ab8d8b3c7de242537a70b3f62efd29.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/9d0c698d97ab8d8b3c7de242537a70b3f62efd29.jpg\" alt=\"The Call\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Call\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Call\u003c/strong\u003e\u003cbr/\u003e\n    Win 20 games in Factory Crisis\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/559844132ff5eabf168cf0c44b6e1a19594dd989.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/559844132ff5eabf168cf0c44b6e1a19594dd989.jpg\" alt=\"Tale of the Inspector\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tale of the Inspector\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTale of the Inspector\u003c/strong\u003e\u003cbr/\u003e\n    Win 15 games as a Goodie in Factory Crisis\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/0d4581413967ebb4b4ab0ac6605786f99fe2a635.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/0d4581413967ebb4b4ab0ac6605786f99fe2a635.jpg\" alt=\"The Horror in Clay\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Horror in Clay\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Horror in Clay\u003c/strong\u003e\u003cbr/\u003e\n    Win 5 games as a Killer in Factory Crisis\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/48ed5e34abe2d8ec5dc42086f825f53e3e9f0b29.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/48ed5e34abe2d8ec5dc42086f825f53e3e9f0b29.jpg\" alt=\"Madness from the Sea\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Madness from the Sea\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMadness from the Sea\u003c/strong\u003e\u003cbr/\u003e\n    Win 3 games as a Neutral role in Factory Crisis\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/1260320/library_600x900.jpg\" alt=\"Party Animals box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/1260320/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eParty Animals\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 3.45%\"\u003e\n        3.45%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e4/116 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e11.2h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-10-03\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (4)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/d8cb4834e1e48f0d3bd71359dfd88d3f99277c58.jpg\" alt=\"Welcome To The Party\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWelcome To The Party\u003c/strong\u003e\u003cbr\u003e\n    Finish the Lab\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 04, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/bb14ddf4910debabd9438562794e86a971b1c47a.jpg\" alt=\"Sportsmanship\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSportsmanship\u003c/strong\u003e\u003cbr\u003e\n    Knock out 1 player at the podium\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 12, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/95d21c485df666d45761f46bcead7b63f27a8370.jpg\" alt=\"Who's Laughing Now\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWho's Laughing Now\u003c/strong\u003e\u003cbr\u003e\n    Be the sole player who hasn't been knocked out at the photo-taking moment\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 12, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/4b1eed136b65cfe691c4f3d942f5e2ba055e763d.jpg\" alt=\"I'm Enlightened\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI'm Enlightened\u003c/strong\u003e\u003cbr\u003e\n    In the Lab, stand in front of the signboard at the Monolith room for 5 seconds\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 16, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (112)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/56b90620ae67b6b03da266a14f3ca63faa9957cc.jpg\" alt=\"Platinum Animal\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePlatinum Animal\u003c/strong\u003e\u003cbr\u003e\n    Unlock 92 achievements\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/2841f6ddca75ee7f75fc70970f3dd28354d801c4.jpg\" alt=\"Level 50\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLevel 50\u003c/strong\u003e\u003cbr\u003e\n    Reach Animal Level 50\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/9fe57bf373abe64b448dd0e3ab3c0534d1075283.jpg\" alt=\"Level 100\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLevel 100\u003c/strong\u003e\u003cbr\u003e\n    Reach Animal Level 100\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/50029c48342a8fb73d169a8b4752f4f4aedfc62e.jpg\" alt=\"Animal Unlock: 20\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAnimal Unlock: 20\u003c/strong\u003e\u003cbr\u003e\n    Unlock 20 Characters\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/116beab13732131f78cabe9c1999cf29fa5ac70e.jpg\" alt=\"Outfit Unlocked: 20\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOutfit Unlocked: 20\u003c/strong\u003e\u003cbr\u003e\n    Unlock 20 Outfits\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/9655261cd1163b96e1c556008d7f8f0750312029.jpg\" alt=\"Fashionista\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFashionista\u003c/strong\u003e\u003cbr\u003e\n    Unlock 30 Outfits\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/a5d50ccfc2df193f2c977dbd2f5f607774175492.jpg\" alt=\"Avatar Master\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAvatar Master\u003c/strong\u003e\u003cbr\u003e\n    Unlock 15 avatars\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/ece732818bfd3e1daaadf1540e246ede25b95047.jpg\" alt=\"Punch In\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePunch In\u003c/strong\u003e\u003cbr\u003e\n    Successfully finish 4 weekly challenges within a single week\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/d79a2355f5ac156608123aebcd71cfbe4e0c4a24.jpg\" alt=\"Keep On Keeping On\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKeep On Keeping On\u003c/strong\u003e\u003cbr\u003e\n    Successfully finish all weekly challenges for 3 weeks in a row\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/bba56977598e163db8a8d59e34c4e7122241dd94.jpg\" alt=\"Yo Man\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYo Man\u003c/strong\u003e\u003cbr\u003e\n    Get 1 new in-game friend\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/2fe3f5afd70110cc69557330037dd54f1f9db9f3.jpg\" alt=\"Friends\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFriends\u003c/strong\u003e\u003cbr\u003e\n    Get 10 new in-game friends\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/ddd5696c87c9913e868101c817b3edc26f60c1da.jpg\" alt=\"Nemo For Speed\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNemo For Speed\u003c/strong\u003e\u003cbr\u003e\n    Earn a 3-star rating in the Lab\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/9e6e1144ecb87429656ba1d3a3c43c81fa8301d7.jpg\" alt=\"First Strike\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFirst Strike\u003c/strong\u003e\u003cbr\u003e\n    Win 1 Quick Match game\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/cffbdbcd5ec34b71e9a66614a1c03912eb778fef.jpg\" alt=\"10 Quick Match Wins\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e10 Quick Match Wins\u003c/strong\u003e\u003cbr\u003e\n    Win 10 Quick Match games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/6161230b86bd5e9886b7bc1b414e6676bcd77af9.jpg\" alt=\"I Have A Friend\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI Have A Friend\u003c/strong\u003e\u003cbr\u003e\n    Team up and finish 1 Quick Match game alongside friends\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/e9cfdeb001805807c7d394f6dc886a685a33ccd3.jpg\" alt=\"Give Me Five\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGive Me Five\u003c/strong\u003e\u003cbr\u003e\n    Team up and finish 10 Quick Match games alongside friends\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/561a77c29a6f62ce7780e1a3b0301a7f4847cbc9.jpg\" alt=\"Currahee\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCurrahee\u003c/strong\u003e\u003cbr\u003e\n    Team up and win 1 Quick Match game alongside friends\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/27ebb53d6b458e6804244b373998998fcce048fe.jpg\" alt=\"Band Of Brothers\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBand Of Brothers\u003c/strong\u003e\u003cbr\u003e\n    Team up and win 10 Quick Match games alongside friends\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/526118f140ffe9a7e05124ce6e66e2edeef5effc.jpg\" alt=\"Hot Shot\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHot Shot\u003c/strong\u003e\u003cbr\u003e\n    Win 5 consecutive games in Quick Match\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/903f74e6c19d53e79dbe4e95eb45ea099bba0f24.jpg\" alt=\"The Dream Team\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Dream Team\u003c/strong\u003e\u003cbr\u003e\n    Team up and win 5 consecutive Quick Match games alongside friends\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/8a16ca9f45bb0030f24065b8436e17451cf6bd77.jpg\" alt=\"OHHHHHH\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOHHHHHH\u003c/strong\u003e\u003cbr\u003e\n    Win 1 Quick Match game without a single knockout\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/1bc874e99f020a1137c38d877a92510a5517172f.jpg\" alt=\"Piece of Cake\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePiece of Cake\u003c/strong\u003e\u003cbr\u003e\n    Win Last Stand Classic in exactly 3 rounds (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/7ac6d82ef14f542673aa5e39bc7eabc97e356eea.jpg\" alt=\"Match Point\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMatch Point\u003c/strong\u003e\u003cbr\u003e\n    Win Last Stand Classic in exactly 9 rounds (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/f09ca9b461f55edcd34c4b37070c776a0f7fbae1.jpg\" alt=\"Fight Everywhere\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFight Everywhere\u003c/strong\u003e\u003cbr\u003e\n    Win 20 Custom Games in different maps (require more than 6 human players when game ends)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/abec890078312dac174afca312d15c1eaba9bd8d.jpg\" alt=\"Twice The Fun\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTwice The Fun\u003c/strong\u003e\u003cbr\u003e\n    Finish 2 Custom Games with multiple local players(splitscreen)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/cbd0e09f7307da9f40dc298539dd3e8d1400e17d.jpg\" alt=\"My Rules\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMy Rules\u003c/strong\u003e\u003cbr\u003e\n    Complete 1 Custom Game with modified settings\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/63979d3c0d5b9162d2db86fb15510ccfc44d9b7d.jpg\" alt=\"Who Did That\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWho Did That\u003c/strong\u003e\u003cbr\u003e\n    Throw item and knock out 5 opponents as spectator (require more than 6 human players when game ends)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/8c2f4bf6fd82961835fddd8cf98dd42d04852dc9.jpg\" alt=\"Hooray! The Earth's Strongest Animal\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHooray! The Earth's Strongest Animal\u003c/strong\u003e\u003cbr\u003e\n    In Ichiban, win 5 Quick Match Classic games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/726406fcc376050f124f33120ca5a16e5b9dbeb2.jpg\" alt=\"Ice Block\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIce Block\u003c/strong\u003e\u003cbr\u003e\n    In Ichiban, win a round by freezing yourself to evade elimination by the poison cloud (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/dd2b6b55f4976eca0c6b6365faf2f16ec0dad88c.jpg\" alt=\"Sayonara\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSayonara\u003c/strong\u003e\u003cbr\u003e\n    In Ichiban, eliminate an opponent by striking them out of the playing field (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/22a7727e18eb45ddf4839ad8f47b0f872524ee37.jpg\" alt=\"Justice Rains From Above\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJustice Rains From Above\u003c/strong\u003e\u003cbr\u003e\n    In Ichiban, leap from a central pillar and knock out one player (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/c096b299d58ad4c55a587ca42323189a8eb1ef94.jpg\" alt=\"Navy OTTERs\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNavy OTTERs\u003c/strong\u003e\u003cbr\u003e\n    In Typhoon, win 5 Quick Match Classic games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/4b2f553b85c77c0389eb8900e43cca49efe95fab.jpg\" alt=\"Superdry\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSuperdry\u003c/strong\u003e\u003cbr\u003e\n    In Typhoon, win one round without falling into the water (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/726204dc6dd621b9063bd2071cc7686a2653ac6f.jpg\" alt=\"Case Closed\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCase Closed\u003c/strong\u003e\u003cbr\u003e\n    In Typhoon, eliminate one opponent by throwing it into the missile hatch (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/6b7a165ba9b38e2e442b4ec65c40815cbad89ca2.jpg\" alt=\"Fireworks\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFireworks\u003c/strong\u003e\u003cbr\u003e\n    In Typhoon, hold onto the missile for at least one second for 3 times in one round (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/f639d3b9b47d8a7525a5e70f04498ab336079d6c.jpg\" alt=\"Die Hard\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDie Hard\u003c/strong\u003e\u003cbr\u003e\n    In Broken Arrow, win 5 Quick Match Classic games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/2e2d658d9af82a3a54d1d34f6848487be58b53c2.jpg\" alt=\"Touch Down\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTouch Down\u003c/strong\u003e\u003cbr\u003e\n    In Broken Arrow, sustain survival for more than 2 min 30 sec in one round (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/212707a5323f59ce58d527e393f25a2fa005e053.jpg\" alt=\"Not Like Pat Roach\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNot Like Pat Roach\u003c/strong\u003e\u003cbr\u003e\n    In Broken Arrow, hold a propeller, spin a lap, and survive (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/acf6b029a6fd598d521c9a60a7f4c73f1c4e7dc4.jpg\" alt=\"Survivor\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSurvivor\u003c/strong\u003e\u003cbr\u003e\n    In Winter Is Coming, win 5 Classic Quick Match games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/45caf6151272723b61d70d3661dc73b4f565947d.jpg\" alt=\"Man vs. Wild\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMan vs. Wild\u003c/strong\u003e\u003cbr\u003e\n    In Winter Is Coming, fall into the frozen lake's hole and return to a bonfire (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/e4e150feb15b6d11b23a2cdf82b34f1abf492b4e.jpg\" alt=\"Hot Dog\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHot Dog\u003c/strong\u003e\u003cbr\u003e\n    In Winter Is Coming, win one round without getting frozen (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/add92435c393a16cadc8e14582a29c07fbbde5b3.jpg\" alt=\"Dog In The Wind\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDog In The Wind\u003c/strong\u003e\u003cbr\u003e\n    In Wind Tunnel, win 5 Quick Match Classic games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/e8dd7d9530ab7e5419ba0f66cda8ea01ca1c9a28.jpg\" alt=\"Chill In The Wind\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChill In The Wind\u003c/strong\u003e\u003cbr\u003e\n    In Wind Tunnel, win one round without grabbing levers and gates (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/d14c811c4f13584c6ccc7ceaba3f21d5ce920510.jpg\" alt=\"Dog Behind The Door\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDog Behind The Door\u003c/strong\u003e\u003cbr\u003e\n    In Wind Tunnel, survive for over 45 seconds without being blown by the wind (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/c4bf7c1f709fae43c67bd847360872016ba5f43f.jpg\" alt=\"Wreck-It Ralph\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWreck-It Ralph\u003c/strong\u003e\u003cbr\u003e\n    In Wind Tunnel, survive even after all levers have been broken (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/d56beae045e4d639de440cae557af5aaf7425c1c.jpg\" alt=\"G-Man\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eG-Man\u003c/strong\u003e\u003cbr\u003e\n    In Blackhole Lab, win 5 Classic Quick Match games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/9e9ff86cc6420a5c1300a327f2a639e44c3ad304.jpg\" alt=\"The Vortigaunts\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Vortigaunts\u003c/strong\u003e\u003cbr\u003e\n    In Blackhole Lab, survive from the 4th black hole without using the chain (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/e711eddc4a475f8a0cecaf3e838aa9e8f25de062.jpg\" alt=\"Arthur's Dream\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArthur's Dream\u003c/strong\u003e\u003cbr\u003e\n    In Blackhole Lab, knock out 1 opponent while afloat in mid-air (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/9362224b89c84a2b863fc873955ccdfb587c6f59.jpg\" alt=\"Mission: Impossible\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMission: Impossible\u003c/strong\u003e\u003cbr\u003e\n    In Blackhole Lab, win one round prior to the 2nd black hole's generation (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/6cf265237d6f68527adb260c8c55b62b34b357d3.jpg\" alt=\"Waterloo Bridge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWaterloo Bridge\u003c/strong\u003e\u003cbr\u003e\n    In Beat-Up Bridge, win 5 Classic Quick Match games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/1f07f60cbd5279b482982009f2b0e51f1d27349b.jpg\" alt=\"Peace Elite\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePeace Elite\u003c/strong\u003e\u003cbr\u003e\n    In Beat-Up Bridge, win one round without hitting anyone else (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/2afe9142b4e3567d25a86d5dd7d99e2c6a949d91.jpg\" alt=\"Tarzan\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTarzan\u003c/strong\u003e\u003cbr\u003e\n    In Beat-Up Bridge, endure for 20 seconds after main-rope snap and win the round (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/aef5dff635a48ce793d9cbb03b67ea14dee14600.jpg\" alt=\"Escape the Gator\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEscape the Gator\u003c/strong\u003e\u003cbr\u003e\n    In Gator Valley, win 5 Quick Match Classic games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/9128d611de7d6d0b823e266a80e345b0a91e1ef4.jpg\" alt=\"Still Waters\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStill Waters\u003c/strong\u003e\u003cbr\u003e\n    In Gator Valley, win one round prior to the onset of the 3rd wave (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/c80f48533c898f708fe1d96eb962ef0c2a751b77.jpg\" alt=\"Surfer Dogs\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSurfer Dogs\u003c/strong\u003e\u003cbr\u003e\n    In Gator Valley, win one round with teammate without falling off the floating bridge (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/3d5e61b63fdc8e7f2efc693fda050d6605c8600e.jpg\" alt=\"Reservoir Dogs\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eReservoir Dogs\u003c/strong\u003e\u003cbr\u003e\n    In Gator Valley, win one round with teammate while both of you are in the water (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/82e18d4b732fbf3375e7c0d321d54a37792d7efd.jpg\" alt=\"Ice Dog\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIce Dog\u003c/strong\u003e\u003cbr\u003e\n    In Ice Breaker, win 5 Quick Match Classic games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/dce8271262dcf0109fafb7f9edb29592f0d32173.jpg\" alt=\"Jack And Rose\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJack And Rose\u003c/strong\u003e\u003cbr\u003e\n    In Ice Breaker, win one round by staying alive with teammate (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/fa4e9c932d35b67b729ee7c93a7652085a16b2e9.jpg\" alt=\"Smooth Operator\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSmooth Operator\u003c/strong\u003e\u003cbr\u003e\n    In Ice Breaker, win one round without falling into the water (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/5b4d14b516f521dd714cee2e043f7a841404ceef.jpg\" alt=\"Willy Wonka\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWilly Wonka\u003c/strong\u003e\u003cbr\u003e\n    In Lollipop Factory, win 5 Quick Match Classic games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/6b2e918d999d6f082a06c537752a37d65e5f61fe.jpg\" alt=\"Less is More\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLess is More\u003c/strong\u003e\u003cbr\u003e\n    In Lollipop Factory, win the game by only submitting little gummies (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/bad2a243646087376bbc11c8e108c78f7fa5dc90.jpg\" alt=\"I'm Back\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI'm Back\u003c/strong\u003e\u003cbr\u003e\n    In Lollipop Factory, climb out of the submission gate (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/cb413477e26dfa1586f701c98d245bea37b24cd1.jpg\" alt=\"L'arrivée d'un train\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eL'arrivée d'un train\u003c/strong\u003e\u003cbr\u003e\n    In Fluffy Redemption, win 5 Quick Match Classic games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/050d397d695efa80c75b70d711b35ab41c61d256.jpg\" alt=\"Working Dog\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWorking Dog\u003c/strong\u003e\u003cbr\u003e\n    In Fluffy Redemption, throw 10 coal pieces into the firebox without being eliminated (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/4f05357d167c74424a8e67c548bd8e4d3597cb34.jpg\" alt=\"Biofuels\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBiofuels\u003c/strong\u003e\u003cbr\u003e\n    In Fluffy Redemption, throw opponents into the firebox for 10 times in one game (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/593173d8f3421333c107d68c08818b6d8a296196.jpg\" alt=\"Dutch's Plan\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDutch's Plan\u003c/strong\u003e\u003cbr\u003e\n    In Fluffy Redemption, experience a complete team wipeout (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/ff3f923acb1e57c7556b18e2b88bbb55ecfe1a88.jpg\" alt=\"Ready Player One\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eReady Player One\u003c/strong\u003e\u003cbr\u003e\n    In Into The Game, win 5 Quick Match Classic games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/b59d4aa51982b4f132aa5a9c31813d16c3e0c8bd.jpg\" alt=\"Diamond Merchant\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDiamond Merchant\u003c/strong\u003e\u003cbr\u003e\n    In Into The Game, win one game and score 20 diamonds on your own(Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/0e79d84b97d2a8a45705baf5a1c35d354d6da459.jpg\" alt=\"Gold Rusher\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGold Rusher\u003c/strong\u003e\u003cbr\u003e\n    In Into The Game, win one game and score 50 coins on your own (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/2d97c4b7bb357b210649431182b4c5eb26f33633.jpg\" alt=\"Immortal Kombat\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eImmortal Kombat\u003c/strong\u003e\u003cbr\u003e\n    In Into The Game, knock out opponent playing arcade for 3 times in one game (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/3e9b2740958d5d77e2d625c2c1e968afa60dd85b.jpg\" alt=\"Fly Me To The Moon\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFly Me To The Moon\u003c/strong\u003e\u003cbr\u003e\n    In Safely Afloat, win 5 Quick Match Classic games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/bda37e7635e7590eb26fcd73f2930bce1a966557.jpg\" alt=\"Up\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUp\u003c/strong\u003e\u003cbr\u003e\n    In Safely Afloat, grasp a balloon and stay aloft for 60 seconds in a game (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/2818646083f7635203709a94b604df4303e69f66.jpg\" alt=\"Mine Cart Carnage\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMine Cart Carnage\u003c/strong\u003e\u003cbr\u003e\n    In Safely Afloat, propel the mine cart over the cliff's edge (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/e5ca0e3b1f237e8d7598b5ae332ab3104dad718b.jpg\" alt=\"Balloon Runner\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBalloon Runner\u003c/strong\u003e\u003cbr\u003e\n    In Safely Afloat, achieve a score within the initial 30 seconds of the game (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/5f22567a97dccb7935d19375837470a33504808e.jpg\" alt=\"Total War\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTotal War\u003c/strong\u003e\u003cbr\u003e\n    In Trebuchet, win 5 Quick Match Classic games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/7f3d13330576f2750451588f51f02bd45bc7c833.jpg\" alt=\"The Hurt Locker\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Hurt Locker\u003c/strong\u003e\u003cbr\u003e\n    In Trebuchet, successfully defuse 10 incoming barrel bombs in a single game (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/bbf6b0cb6f4809288d31df4c809e9fdc5cb41b4a.jpg\" alt=\"Airline VIP\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAirline VIP\u003c/strong\u003e\u003cbr\u003e\n    In Trebuchet, ride in launched trebuchet 10 times in one game (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/a5ed34356b9d5c58b0d763bf2d7cac281ef47c5b.jpg\" alt=\"Thunderbolt\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThunderbolt\u003c/strong\u003e\u003cbr\u003e\n    In Buzz Ball, win 5 Quick Match Classic games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/b0eb8b3df2d13dc034f7bd7f26bf803a87ed3ada.jpg\" alt=\"Shock Damage\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShock Damage\u003c/strong\u003e\u003cbr\u003e\n    In Buzz Ball, trigger the buzz ball blast 10 times in one game (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/acb4b0fdc375640fc97b1780071717dc2f5df3c3.jpg\" alt=\"666\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e666\u003c/strong\u003e\u003cbr\u003e\n    In Buzz Ball, single-handedly accumulate all points for your team and win (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/cdee03b9fd3ab91c6fd3380290f27a16c96463a7.jpg\" alt=\"The Klaw\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Klaw\u003c/strong\u003e\u003cbr\u003e\n    In Buzz Ball, single-handedly notch a score in the final 10 seconds of the 11th round (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/13235a90ec2cb8404d7f59ef8df0c8e9db980451.jpg\" alt=\"The Mighty Ducks\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Mighty Ducks\u003c/strong\u003e\u003cbr\u003e\n    In Beast Hockey, win 5 Quick Match Classic games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/4f4801925abf3b13d4bdb3df0aa2cbdc740f8b02.jpg\" alt=\"Perfect Guard\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePerfect Guard\u003c/strong\u003e\u003cbr\u003e\n    In Beast Hockey, parry the puck using a shield thrice in a match (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/10a56708dc19fe86fec132e63267be61449c10c6.jpg\" alt=\"Bowling Alley Cat\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBowling Alley Cat\u003c/strong\u003e\u003cbr\u003e\n    In Beast Hockey, strike the puck, knock out over 2 players and notch a score (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/28fc511239038039de7500c35d9b68f28f014244.jpg\" alt=\"Super Bowl\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSuper Bowl\u003c/strong\u003e\u003cbr\u003e\n    In Beast Football, win 5 Quick Match Classic games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/063ef6d86fc633dc69eb8de1cdb064da37230d11.jpg\" alt=\"Ball Weapon\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBall Weapon\u003c/strong\u003e\u003cbr\u003e\n    In Beast Football, long pass and knock out opponent (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/fa78ffbaae1bffaa1b91b88be1cd6310745cfc4f.jpg\" alt=\"Run Forrest Run\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRun Forrest Run\u003c/strong\u003e\u003cbr\u003e\n    In Beast Football, score a touchdown within the initial 15 seconds of the round (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/bd398fcf0507fc5a5f7967525ff4ca6f835bb66e.jpg\" alt=\"Patte d'Or\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePatte d'Or\u003c/strong\u003e\u003cbr\u003e\n    In Beast Soccer, win 5 Quick Match Classic games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/b5df2127015a688d986e5869b9abc1fc0f56ce12.jpg\" alt=\"Hat Trick\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHat Trick\u003c/strong\u003e\u003cbr\u003e\n    In Beast Soccer, score 3 goals in one game (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/8369fe0143f5d70124ee944bd0e43ac6793adf2c.jpg\" alt=\"Roy Makaay\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRoy Makaay\u003c/strong\u003e\u003cbr\u003e\n    In Beast Soccer, score a goal within the initial 10 seconds of the round (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/89ff88f543a20f21799b355a36faa69571802324.jpg\" alt=\"Big Brains\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBig Brains\u003c/strong\u003e\u003cbr\u003e\n    In the Lab, get to know 4 great scientists' names\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/39e120fd1fcdb640cec8444a35526e1350cadc23.jpg\" alt=\"Aye aye, Captain!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAye aye, Captain!\u003c/strong\u003e\u003cbr\u003e\n    Finish the Black Sails solo mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/16f31f9d2518022c51c7f9c1752b6186e03512f3.jpg\" alt=\"Captain Nemo\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCaptain Nemo\u003c/strong\u003e\u003cbr\u003e\n    Earn a 3-star rating in Black Sails solo mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/91093bb39ad2138e7b8e75752b65a5877fbff883.jpg\" alt=\"An Able Bodied Crew\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAn Able Bodied Crew\u003c/strong\u003e\u003cbr\u003e\n    Complete the Black Sails duo mode on hard or beast difficulty\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/8d022ad5bfdc4a0b211fe8bf12aac714ed80a41f.jpg\" alt=\"Drink up, me hearties, yo ho!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDrink up, me hearties, yo ho!\u003c/strong\u003e\u003cbr\u003e\n    Complete the Black Sails duo mode on beast difficulty\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/480c2c03acbc900f78a6177e0db3660933740379.jpg\" alt=\"Keep Breathing\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKeep Breathing\u003c/strong\u003e\u003cbr\u003e\n    Finish Cast Away\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/bd7d8bf82bf8be59f068a4b9fc02a9402abfe4ed.jpg\" alt=\"This is my island!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThis is my island!\u003c/strong\u003e\u003cbr\u003e\n    Earn a 3-star rating in Cast Away\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/ab80faf3b7db03ac3f70ea05565e800d378e2f20.jpg\" alt=\"Hey, Wilson\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHey, Wilson\u003c/strong\u003e\u003cbr\u003e\n    In Cast Away, find and pick up the Wilson volleyball\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/33f3c2e4c5ee481318fe25691d9cc9727e620634.jpg\" alt=\"Safely First\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSafely First\u003c/strong\u003e\u003cbr\u003e\n    Win 1 Nemo Kart games (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/1bb58ebbaaf4707f7eca261ca2e7b29af547cfee.jpg\" alt=\"Fast and Furry\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFast and Furry\u003c/strong\u003e\u003cbr\u003e\n    In Nemo Kart – Shanghai, finish a race within 2:38.00 (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/7df7ba6c0047f8a342f5b62accef09141d66727e.jpg\" alt=\"Beast of Mount Akina\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeast of Mount Akina\u003c/strong\u003e\u003cbr\u003e\n    In Nemo Kart – Shanghai, perform 34 drift boosts in a single race (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/06cf6bd60c6a3d020a4776c25519661efb1a83c0.jpg\" alt=\"Fur Weight Champion\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFur Weight Champion\u003c/strong\u003e\u003cbr\u003e\n    In Ring of Garfat, win 5 Quick Match Classic games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/825c213421b8e3b46f6af76a3128e1d310447188.jpg\" alt=\"Nimble As A Cat\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNimble As A Cat\u003c/strong\u003e\u003cbr\u003e\n    In Ring of Garfat, win any round without encountering any falling rocks or flames (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/40c35bb0122ba3fd8a3d7bfdf6c31501fa9eee83.jpg\" alt=\"Iron Mike\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIron Mike\u003c/strong\u003e\u003cbr\u003e\n    In Ring of Garfat, win a round within 91 seconds (Quick Match)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/1bf43eeb5e5cf4ca8ce20005733b18dac25ec1e4.jpg\" alt=\"Infinity And Beyond\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInfinity And Beyond\u003c/strong\u003e\u003cbr\u003e\n    Win 20 games in Space Crisis\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/63ebd416a445250a6d6838212f18d69fac9d5392.jpg\" alt=\"New Dawn\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNew Dawn\u003c/strong\u003e\u003cbr\u003e\n    Win 15 games as a Goodie in Space Crisis\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/c0c8c4e2a460f1e5e8e3e06e6ee20a4ef216d7d1.jpg\" alt=\"I'm Sorry, Dave\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI'm Sorry, Dave\u003c/strong\u003e\u003cbr\u003e\n    Win 5 games as a Killer in Space Crisis\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/7fa5c3d3e71a880dd49da392ede8e1f13cbed0cf.jpg\" alt=\"The Monolith\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Monolith\u003c/strong\u003e\u003cbr\u003e\n    Win 3 games as a Neutral role in Space Crisis\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/9d0c698d97ab8d8b3c7de242537a70b3f62efd29.jpg\" alt=\"The Call\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Call\u003c/strong\u003e\u003cbr\u003e\n    Win 20 games in Factory Crisis\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/559844132ff5eabf168cf0c44b6e1a19594dd989.jpg\" alt=\"Tale of the Inspector\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTale of the Inspector\u003c/strong\u003e\u003cbr\u003e\n    Win 15 games as a Goodie in Factory Crisis\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/0d4581413967ebb4b4ab0ac6605786f99fe2a635.jpg\" alt=\"The Horror in Clay\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Horror in Clay\u003c/strong\u003e\u003cbr\u003e\n    Win 5 games as a Killer in Factory Crisis\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1260320/48ed5e34abe2d8ec5dc42086f825f53e3e9f0b29.jpg\" alt=\"Madness from the Sea\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMadness from the Sea\u003c/strong\u003e\u003cbr\u003e\n    Win 3 games as a Neutral role in Factory Crisis\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Party Animals - 3.45% complete with 4/116 achievements unlocked.",
      "date_published": "2025-10-03T00:00:00Z",
      "date_modified": "2025-10-03T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "party-animals"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/stumble-guys/",
      "url": "https://go.waylonwalker.com/steam/stumble-guys/",
      "title": "Stumble Guys",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/1677740/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/1677740/library_600x900.jpg\" alt=\"Stumble Guys box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/1677740/header.jpg\u0026#39;\"/ data-glightbox=\"description: Stumble Guys box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eStumble Guys\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 41.67%\"\u003e\n        41.67%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e15/36 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e6.7h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-10-02\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (15)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/34fe5348513bee5556fd08094baaa72ae49d9421.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/34fe5348513bee5556fd08094baaa72ae49d9421.jpg\" alt=\"Champion!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Champion!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChampion!\u003c/strong\u003e\u003cbr/\u003e\n    Finish 1st out of 32 players\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 04, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/78f492304a131c799940d16784d937acfb507130.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/78f492304a131c799940d16784d937acfb507130.jpg\" alt=\"I See Stars\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: I See Stars\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI See Stars\u003c/strong\u003e\u003cbr/\u003e\n    Earn 500 stars\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 04, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/1e77da9fd41a69b118429b39b6d01635deb7b49d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/1e77da9fd41a69b118429b39b6d01635deb7b49d.jpg\" alt=\"Leveling Up\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Leveling Up\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLeveling Up\u003c/strong\u003e\u003cbr/\u003e\n    Earn 10,000 XP\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 22, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/33836a9655c8d508dcf87368b3a4ce9ded78e812.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/33836a9655c8d508dcf87368b3a4ce9ded78e812.jpg\" alt=\"Paint Splash\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Paint Splash\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePaint Splash\u003c/strong\u003e\u003cbr/\u003e\n    Advance or win on Paint Splash\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 22, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/398ddeabce18d4734f666c485156f21a2e074ac0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/398ddeabce18d4734f666c485156f21a2e074ac0.jpg\" alt=\"Block Dash\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Block Dash\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlock Dash\u003c/strong\u003e\u003cbr/\u003e\n    Advance or win on Block Dash\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 29, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/ed25c9dc2329264554ebf425900819cfc34a50ed.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/ed25c9dc2329264554ebf425900819cfc34a50ed.jpg\" alt=\"Jungle Roll\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Jungle Roll\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJungle Roll\u003c/strong\u003e\u003cbr/\u003e\n    Advance or win on Jungle Roll\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 05, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/5653bc7a0e1e49a6708035f67e048d13435f35c7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/5653bc7a0e1e49a6708035f67e048d13435f35c7.jpg\" alt=\"Lost Temple\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Lost Temple\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLost Temple\u003c/strong\u003e\u003cbr/\u003e\n    Advance or win on Lost Temple\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 05, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/5f88c8e58261ea26cb2132ef2e5a586ff6790a1b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/5f88c8e58261ea26cb2132ef2e5a586ff6790a1b.jpg\" alt=\"Super Slide\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Super Slide\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSuper Slide\u003c/strong\u003e\u003cbr/\u003e\n    Advance or win on Super Slide\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 29, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/29e7885bc707eaeae70e0a535f77fa5c0a94fd4b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/29e7885bc707eaeae70e0a535f77fa5c0a94fd4b.jpg\" alt=\"Lava Land\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Lava Land\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLava Land\u003c/strong\u003e\u003cbr/\u003e\n    Advance or win on Lava Land\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 29, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/ea0087824c87660f0f769b87cf715529ebf8fb87.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/ea0087824c87660f0f769b87cf715529ebf8fb87.jpg\" alt=\"Bombardment\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bombardment\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBombardment\u003c/strong\u003e\u003cbr/\u003e\n    Advance or win on Bombardment\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 29, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/224991dc6aa45f08890948d7797becd61b5edbb4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/224991dc6aa45f08890948d7797becd61b5edbb4.jpg\" alt=\"Honey Drop\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Honey Drop\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHoney Drop\u003c/strong\u003e\u003cbr/\u003e\n    Advance or win on Honey Drop\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 29, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/bc03e5094c859cc7ab58041277d669c61b6c7d00.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/bc03e5094c859cc7ab58041277d669c61b6c7d00.jpg\" alt=\"Cannon Climb\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cannon Climb\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCannon Climb\u003c/strong\u003e\u003cbr/\u003e\n    Advance or win on Cannon Climb\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 05, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/79eef4542bd8aa8625d0607a074aedfd96168f2f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/79eef4542bd8aa8625d0607a074aedfd96168f2f.jpg\" alt=\"Icy Heights\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Icy Heights\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIcy Heights\u003c/strong\u003e\u003cbr/\u003e\n    Advance or win on Icy Heights\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 04, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/58471a9c3d3635b9f1b0745caf30923b5da269cb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/58471a9c3d3635b9f1b0745caf30923b5da269cb.jpg\" alt=\"Tile Fall\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tile Fall\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTile Fall\u003c/strong\u003e\u003cbr/\u003e\n    Advance or win on Tile Fall\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 29, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/314c16d0d878e974b991c66e6ff28484a3ccef32.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/314c16d0d878e974b991c66e6ff28484a3ccef32.jpg\" alt=\"Social Butterfly\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Social Butterfly\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSocial Butterfly\u003c/strong\u003e\u003cbr/\u003e\n    Use 100 emotes\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 04, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (21)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/61076c602ac84bd28a2e945f1b61bc59e2bac79f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/61076c602ac84bd28a2e945f1b61bc59e2bac79f.jpg\" alt=\"Battler\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Battler\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBattler\u003c/strong\u003e\u003cbr/\u003e\n    Play 300 levels\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/aa8a3046ce8957d9d0f309dd1eb4d7df2df618dd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/aa8a3046ce8957d9d0f309dd1eb4d7df2df618dd.jpg\" alt=\"Trophy Collector\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Trophy Collector\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTrophy Collector\u003c/strong\u003e\u003cbr/\u003e\n    Earn 1,000 Stumble trophies\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/0df9f3dee21778f04e8fd4d34180ab93c0dce7ba.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/0df9f3dee21778f04e8fd4d34180ab93c0dce7ba.jpg\" alt=\"Stand Out\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Stand Out\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStand Out\u003c/strong\u003e\u003cbr/\u003e\n    Unlock 40 unique skins\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/5d239a6ddfc768d06789dae147d111ce26da1574.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/5d239a6ddfc768d06789dae147d111ce26da1574.jpg\" alt=\":) :P\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: :) :P\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e:) :P\u003c/strong\u003e\u003cbr/\u003e\n    Unlock 20 unique emotes\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/915640bda87bc281fba6eefcd49ca52128998ed8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/915640bda87bc281fba6eefcd49ca52128998ed8.jpg\" alt=\"Show Off\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Show Off\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShow Off\u003c/strong\u003e\u003cbr/\u003e\n    Unlock 10 unique animations\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/00e8a2339404141947743a30af1f121accecea51.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/00e8a2339404141947743a30af1f121accecea51.jpg\" alt=\"Eat My Dust\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Eat My Dust\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEat My Dust\u003c/strong\u003e\u003cbr/\u003e\n    Unlock 5 unique footsteps\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/25bc094d078eaf519f32271a0f2c24e1c94d0a51.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/25bc094d078eaf519f32271a0f2c24e1c94d0a51.jpg\" alt=\"Express Yourself\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Express Yourself\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpress Yourself\u003c/strong\u003e\u003cbr/\u003e\n    Change your Stumbler color\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/03ca6e8065c77e8cc6ebf5587c28124e7a10af20.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/03ca6e8065c77e8cc6ebf5587c28124e7a10af20.jpg\" alt=\"Master Champion!!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Master Champion!!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaster Champion!!\u003c/strong\u003e\u003cbr/\u003e\n    Finish 1st out of 32 players 5 times\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/1295b01800ed74a46ec0a58454ed94c964b147a3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/1295b01800ed74a46ec0a58454ed94c964b147a3.jpg\" alt=\"Bot Bash\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bot Bash\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBot Bash\u003c/strong\u003e\u003cbr/\u003e\n    Advance or win on Bot Bash\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/56eee33a6a3b3a4e715d9cb9a61312bb667f60ea.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/56eee33a6a3b3a4e715d9cb9a61312bb667f60ea.jpg\" alt=\"Rocket Rumble\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Rocket Rumble\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRocket Rumble\u003c/strong\u003e\u003cbr/\u003e\n    Advance or win on Rocket Rumble\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/ff828b8e250bb56f2c17a19b88f0c304ff0d0b89.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/ff828b8e250bb56f2c17a19b88f0c304ff0d0b89.jpg\" alt=\"Laser Tracer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Laser Tracer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLaser Tracer\u003c/strong\u003e\u003cbr/\u003e\n    Advance or win on Laser Tracer\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/42c25de2bc202cbbf414bab541acbd386ba1a445.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/42c25de2bc202cbbf414bab541acbd386ba1a445.jpg\" alt=\"Space Race\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Space Race\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpace Race\u003c/strong\u003e\u003cbr/\u003e\n    Advance or win on Space Race\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/3389058f932128c113d447632ed035f6b2867ab4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/3389058f932128c113d447632ed035f6b2867ab4.jpg\" alt=\"Stumble Soccer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Stumble Soccer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStumble Soccer\u003c/strong\u003e\u003cbr/\u003e\n    Advance or win on Stumble Soccer\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/3f90e66802113812d1cce84879add1be8d53e0a6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/3f90e66802113812d1cce84879add1be8d53e0a6.jpg\" alt=\"Lava Rush\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Lava Rush\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLava Rush\u003c/strong\u003e\u003cbr/\u003e\n    Advance or win on Lava Rush\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/acb6fbb8c0e513559872adc7d6dbdf58ffb1de82.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/acb6fbb8c0e513559872adc7d6dbdf58ffb1de82.jpg\" alt=\"Floor Flip\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Floor Flip\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFloor Flip\u003c/strong\u003e\u003cbr/\u003e\n    Advance or win on Floor Flip\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/bd7f72c3ef2bde8c2985a38bc208bed4baebff3f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/bd7f72c3ef2bde8c2985a38bc208bed4baebff3f.jpg\" alt=\"Over and Under\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Over and Under\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOver and Under\u003c/strong\u003e\u003cbr/\u003e\n    Advance or win on Over and Under\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/30b87de5d438bd2819d50c8e5b19233f9f8d8b7c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/30b87de5d438bd2819d50c8e5b19233f9f8d8b7c.jpg\" alt=\"Pivot Push\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Pivot Push\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePivot Push\u003c/strong\u003e\u003cbr/\u003e\n    Advance or win on Pivot Push\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/5fe31f72473ae861a0d5d7751c81a6c694d585fb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/5fe31f72473ae861a0d5d7751c81a6c694d585fb.jpg\" alt=\"Humble Stumble\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Humble Stumble\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHumble Stumble\u003c/strong\u003e\u003cbr/\u003e\n    Advance or win on Humble Stumble\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/33573f2e4d4d8be9229b7743cf073ca477778f60.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/33573f2e4d4d8be9229b7743cf073ca477778f60.jpg\" alt=\"Spin Go Round\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Spin Go Round\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpin Go Round\u003c/strong\u003e\u003cbr/\u003e\n    Advance or win on Spin Go Round\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/936da4e57a2decf507c60db747e5994966383213.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/936da4e57a2decf507c60db747e5994966383213.jpg\" alt=\"Stumble Expert\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Stumble Expert\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStumble Expert\u003c/strong\u003e\u003cbr/\u003e\n    Advance or win 100 levels\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/b4f045c4c4fc71029fed25440b88223079dc9e00.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/b4f045c4c4fc71029fed25440b88223079dc9e00.jpg\" alt=\"Round \u0026amp; Round\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Round \u0026amp; Round\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRound \u0026amp; Round\u003c/strong\u003e\u003cbr/\u003e\n    Spin 50 wheels\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/1677740/library_600x900.jpg\" alt=\"Stumble Guys box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/1677740/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eStumble Guys\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 41.67%\"\u003e\n        41.67%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e15/36 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e6.7h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-10-02\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (15)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/34fe5348513bee5556fd08094baaa72ae49d9421.jpg\" alt=\"Champion!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChampion!\u003c/strong\u003e\u003cbr\u003e\n    Finish 1st out of 32 players\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 04, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/78f492304a131c799940d16784d937acfb507130.jpg\" alt=\"I See Stars\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI See Stars\u003c/strong\u003e\u003cbr\u003e\n    Earn 500 stars\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 04, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/1e77da9fd41a69b118429b39b6d01635deb7b49d.jpg\" alt=\"Leveling Up\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLeveling Up\u003c/strong\u003e\u003cbr\u003e\n    Earn 10,000 XP\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 22, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/33836a9655c8d508dcf87368b3a4ce9ded78e812.jpg\" alt=\"Paint Splash\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePaint Splash\u003c/strong\u003e\u003cbr\u003e\n    Advance or win on Paint Splash\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 22, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/398ddeabce18d4734f666c485156f21a2e074ac0.jpg\" alt=\"Block Dash\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlock Dash\u003c/strong\u003e\u003cbr\u003e\n    Advance or win on Block Dash\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 29, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/ed25c9dc2329264554ebf425900819cfc34a50ed.jpg\" alt=\"Jungle Roll\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJungle Roll\u003c/strong\u003e\u003cbr\u003e\n    Advance or win on Jungle Roll\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 05, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/5653bc7a0e1e49a6708035f67e048d13435f35c7.jpg\" alt=\"Lost Temple\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLost Temple\u003c/strong\u003e\u003cbr\u003e\n    Advance or win on Lost Temple\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 05, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/5f88c8e58261ea26cb2132ef2e5a586ff6790a1b.jpg\" alt=\"Super Slide\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSuper Slide\u003c/strong\u003e\u003cbr\u003e\n    Advance or win on Super Slide\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 29, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/29e7885bc707eaeae70e0a535f77fa5c0a94fd4b.jpg\" alt=\"Lava Land\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLava Land\u003c/strong\u003e\u003cbr\u003e\n    Advance or win on Lava Land\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 29, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/ea0087824c87660f0f769b87cf715529ebf8fb87.jpg\" alt=\"Bombardment\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBombardment\u003c/strong\u003e\u003cbr\u003e\n    Advance or win on Bombardment\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 29, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/224991dc6aa45f08890948d7797becd61b5edbb4.jpg\" alt=\"Honey Drop\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHoney Drop\u003c/strong\u003e\u003cbr\u003e\n    Advance or win on Honey Drop\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 29, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/bc03e5094c859cc7ab58041277d669c61b6c7d00.jpg\" alt=\"Cannon Climb\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCannon Climb\u003c/strong\u003e\u003cbr\u003e\n    Advance or win on Cannon Climb\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 05, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/79eef4542bd8aa8625d0607a074aedfd96168f2f.jpg\" alt=\"Icy Heights\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIcy Heights\u003c/strong\u003e\u003cbr\u003e\n    Advance or win on Icy Heights\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 04, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/58471a9c3d3635b9f1b0745caf30923b5da269cb.jpg\" alt=\"Tile Fall\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTile Fall\u003c/strong\u003e\u003cbr\u003e\n    Advance or win on Tile Fall\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 29, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/314c16d0d878e974b991c66e6ff28484a3ccef32.jpg\" alt=\"Social Butterfly\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSocial Butterfly\u003c/strong\u003e\u003cbr\u003e\n    Use 100 emotes\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 04, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (21)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/61076c602ac84bd28a2e945f1b61bc59e2bac79f.jpg\" alt=\"Battler\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBattler\u003c/strong\u003e\u003cbr\u003e\n    Play 300 levels\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/aa8a3046ce8957d9d0f309dd1eb4d7df2df618dd.jpg\" alt=\"Trophy Collector\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTrophy Collector\u003c/strong\u003e\u003cbr\u003e\n    Earn 1,000 Stumble trophies\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/0df9f3dee21778f04e8fd4d34180ab93c0dce7ba.jpg\" alt=\"Stand Out\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStand Out\u003c/strong\u003e\u003cbr\u003e\n    Unlock 40 unique skins\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/5d239a6ddfc768d06789dae147d111ce26da1574.jpg\" alt=\":) :P\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e:) :P\u003c/strong\u003e\u003cbr\u003e\n    Unlock 20 unique emotes\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/915640bda87bc281fba6eefcd49ca52128998ed8.jpg\" alt=\"Show Off\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShow Off\u003c/strong\u003e\u003cbr\u003e\n    Unlock 10 unique animations\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/00e8a2339404141947743a30af1f121accecea51.jpg\" alt=\"Eat My Dust\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEat My Dust\u003c/strong\u003e\u003cbr\u003e\n    Unlock 5 unique footsteps\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/25bc094d078eaf519f32271a0f2c24e1c94d0a51.jpg\" alt=\"Express Yourself\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpress Yourself\u003c/strong\u003e\u003cbr\u003e\n    Change your Stumbler color\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/03ca6e8065c77e8cc6ebf5587c28124e7a10af20.jpg\" alt=\"Master Champion!!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaster Champion!!\u003c/strong\u003e\u003cbr\u003e\n    Finish 1st out of 32 players 5 times\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/1295b01800ed74a46ec0a58454ed94c964b147a3.jpg\" alt=\"Bot Bash\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBot Bash\u003c/strong\u003e\u003cbr\u003e\n    Advance or win on Bot Bash\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/56eee33a6a3b3a4e715d9cb9a61312bb667f60ea.jpg\" alt=\"Rocket Rumble\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRocket Rumble\u003c/strong\u003e\u003cbr\u003e\n    Advance or win on Rocket Rumble\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/ff828b8e250bb56f2c17a19b88f0c304ff0d0b89.jpg\" alt=\"Laser Tracer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLaser Tracer\u003c/strong\u003e\u003cbr\u003e\n    Advance or win on Laser Tracer\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/42c25de2bc202cbbf414bab541acbd386ba1a445.jpg\" alt=\"Space Race\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpace Race\u003c/strong\u003e\u003cbr\u003e\n    Advance or win on Space Race\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/3389058f932128c113d447632ed035f6b2867ab4.jpg\" alt=\"Stumble Soccer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStumble Soccer\u003c/strong\u003e\u003cbr\u003e\n    Advance or win on Stumble Soccer\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/3f90e66802113812d1cce84879add1be8d53e0a6.jpg\" alt=\"Lava Rush\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLava Rush\u003c/strong\u003e\u003cbr\u003e\n    Advance or win on Lava Rush\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/acb6fbb8c0e513559872adc7d6dbdf58ffb1de82.jpg\" alt=\"Floor Flip\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFloor Flip\u003c/strong\u003e\u003cbr\u003e\n    Advance or win on Floor Flip\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/bd7f72c3ef2bde8c2985a38bc208bed4baebff3f.jpg\" alt=\"Over and Under\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOver and Under\u003c/strong\u003e\u003cbr\u003e\n    Advance or win on Over and Under\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/30b87de5d438bd2819d50c8e5b19233f9f8d8b7c.jpg\" alt=\"Pivot Push\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePivot Push\u003c/strong\u003e\u003cbr\u003e\n    Advance or win on Pivot Push\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/5fe31f72473ae861a0d5d7751c81a6c694d585fb.jpg\" alt=\"Humble Stumble\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHumble Stumble\u003c/strong\u003e\u003cbr\u003e\n    Advance or win on Humble Stumble\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/33573f2e4d4d8be9229b7743cf073ca477778f60.jpg\" alt=\"Spin Go Round\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpin Go Round\u003c/strong\u003e\u003cbr\u003e\n    Advance or win on Spin Go Round\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/936da4e57a2decf507c60db747e5994966383213.jpg\" alt=\"Stumble Expert\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStumble Expert\u003c/strong\u003e\u003cbr\u003e\n    Advance or win 100 levels\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1677740/b4f045c4c4fc71029fed25440b88223079dc9e00.jpg\" alt=\"Round \u0026 Round\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRound \u0026 Round\u003c/strong\u003e\u003cbr\u003e\n    Spin 50 wheels\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Stumble Guys - 41.67% complete with 15/36 achievements unlocked.",
      "date_published": "2025-10-02T00:00:00Z",
      "date_modified": "2025-10-02T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "stumble-guys"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/in-space-story/",
      "url": "https://go.waylonwalker.com/in-space-story/",
      "title": "In-Space-Story",
      "content_html": "\u003ch2 id=\"brainstorming\"\u003eBrainstorming \u003ca href=\"#brainstorming\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch3 id=\"setting\"\u003eSetting \u003ca href=\"#setting\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efire planet\u003c/li\u003e\n\u003cli\u003emining colony\u003c/li\u003e\n\u003cli\u003eAn abandoned drilling station\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"conflict\"\u003eConflict \u003ca href=\"#conflict\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAn old drilling station has been taken over by pirates\u003c/li\u003e\n\u003cli\u003eThe old station was abandoned because it was too close to a pocket of explosive gas\u003c/li\u003e\n\u003cli\u003eIf they are able to start up the station they will be able to make unimaginable profits\u003c/li\u003e\n\u003cli\u003eDoing so will cause an explosion that will take down nearby towns.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"characters\"\u003eCharacters \u003ca href=\"#characters\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eA young boy has discovered the old station has been taken over by pirates\u003c/li\u003e\n\u003cli\u003eA Pirate Captain willing to risk it all for the profits\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\n\n## Brainstorming\n\n\n### Setting\n\n* fire planet\n* mining colony\n* An abandoned drilling station\n\n### Conflict\n\n* An old drilling station has been taken over by pirates\n* The old station was abandoned because it was too close to a pocket of explosive gas\n* If they are able to start up the station they will be able to make unimaginable profits\n* Doing so will cause an explosion that will take down nearby towns.\n\n### Characters\n\n* A young boy has discovered the old station has been taken over by pirates\n* A Pirate Captain willing to risk it all for the profits\n\n",
      "summary": "mining colony * An abandoned drilling station",
      "date_published": "2025-09-28T20:10:06Z",
      "date_modified": "2025-09-28T20:10:06Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "story"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/wobbly-life/",
      "url": "https://go.waylonwalker.com/steam/wobbly-life/",
      "title": "Wobbly Life",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/1211020/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/1211020/library_600x900.jpg\" alt=\"Wobbly Life box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/1211020/header.jpg\u0026#39;\"/ data-glightbox=\"description: Wobbly Life box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eWobbly Life\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 72.06%\"\u003e\n        72.06%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e49/68 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e561.6h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-09-20\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (49)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/f6912045491560652f7efebfa897803bf2fa5656.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/f6912045491560652f7efebfa897803bf2fa5656.jpg\" alt=\"A Wobbly Start\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Wobbly Start\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Wobbly Start\u003c/strong\u003e\u003cbr/\u003e\n    Complete Jelly Job\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 12, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/73518ae7a1d59924767980aece1574742866fa39.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/73518ae7a1d59924767980aece1574742866fa39.jpg\" alt=\"A Speedy Slice\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Speedy Slice\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Speedy Slice\u003c/strong\u003e\u003cbr/\u003e\n    Complete Pizza Job\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 10, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/3c77d231d57b535035f145d9746a1edbcd1ffcf6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/3c77d231d57b535035f145d9746a1edbcd1ffcf6.jpg\" alt=\"Flipping The Perfect Burger\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Flipping The Perfect Burger\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFlipping The Perfect Burger\u003c/strong\u003e\u003cbr/\u003e\n    Complete Burger Job\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 27, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/8ae4a0b3d4326b0c2d41ebc87cec3bc7dad4cd14.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/8ae4a0b3d4326b0c2d41ebc87cec3bc7dad4cd14.jpg\" alt=\"Monster Manager\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Monster Manager\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMonster Manager\u003c/strong\u003e\u003cbr/\u003e\n    Complete Power Plant Job\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 11, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/f196fb0270ed54ed6dd936afdc2f3c3d3ed62a44.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/f196fb0270ed54ed6dd936afdc2f3c3d3ed62a44.jpg\" alt=\"Speedy Nee-Naw\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Speedy Nee-Naw\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpeedy Nee-Naw\u003c/strong\u003e\u003cbr/\u003e\n    Complete Emergency Job\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 15, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/ad90d7df04df586bd90d7945c63e5eb71c1af8c1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/ad90d7df04df586bd90d7945c63e5eb71c1af8c1.jpg\" alt=\"Rapid Delivery To Your Door\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Rapid Delivery To Your Door\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRapid Delivery To Your Door\u003c/strong\u003e\u003cbr/\u003e\n    Complete Newspaper Job\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 14, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/2791386e107ec7fd70756c4109bef529858ade5f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/2791386e107ec7fd70756c4109bef529858ade5f.jpg\" alt=\"Creative Courier\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Creative Courier\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCreative Courier\u003c/strong\u003e\u003cbr/\u003e\n    Complete Furniture Job\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 14, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/df9c264e9d923cc44313b0ee9564a2e6ccf3df35.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/df9c264e9d923cc44313b0ee9564a2e6ccf3df35.jpg\" alt=\"Putting The Pedal To The Metal\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Putting The Pedal To The Metal\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePutting The Pedal To The Metal\u003c/strong\u003e\u003cbr/\u003e\n    Complete a Kart Race\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 14, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/91a7d227e0245d5fdbce5f69a2327dae1ea73b21.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/91a7d227e0245d5fdbce5f69a2327dae1ea73b21.jpg\" alt=\"Taking To The Skies!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Taking To The Skies!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTaking To The Skies!\u003c/strong\u003e\u003cbr/\u003e\n    Complete a Plane Race\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 09, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/4a72a990ff08e305246594f389ef1e20222f6529.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/4a72a990ff08e305246594f389ef1e20222f6529.jpg\" alt=\"Making Waves\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Making Waves\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaking Waves\u003c/strong\u003e\u003cbr/\u003e\n    Complete a Boat Race\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 12, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/83bcdda64f1bf4d5cd56f339f314df087b1c1b8f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/83bcdda64f1bf4d5cd56f339f314df087b1c1b8f.jpg\" alt=\"A Supernatural Delivery\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Supernatural Delivery\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Supernatural Delivery\u003c/strong\u003e\u003cbr/\u003e\n    Deliver Pizza to the UFO\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 19, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/f85b4645b4ad44eb6babf42b3a0656352e646c30.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/f85b4645b4ad44eb6babf42b3a0656352e646c30.jpg\" alt=\"Cleaning Up The Island\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cleaning Up The Island\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCleaning Up The Island\u003c/strong\u003e\u003cbr/\u003e\n    Complete Garbage Job\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 11, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/25371b38ff46e3ae864ab6492c0679cc1e1a7c79.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/25371b38ff46e3ae864ab6492c0679cc1e1a7c79.jpg\" alt=\"Awesome Archaeologist\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Awesome Archaeologist\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAwesome Archaeologist\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Temple\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 13, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/4cf47b70ee748f454cb99253578777c7cb0ea011.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/4cf47b70ee748f454cb99253578777c7cb0ea011.jpg\" alt=\"Making Grandma Proud\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Making Grandma Proud\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaking Grandma Proud\u003c/strong\u003e\u003cbr/\u003e\n    Buy your first house\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 09, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/115855e6d944c1f3f29a05a84fcd1b799c5ecdfa.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/115855e6d944c1f3f29a05a84fcd1b799c5ecdfa.jpg\" alt=\"Look At Me Grandma!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Look At Me Grandma!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLook At Me Grandma!\u003c/strong\u003e\u003cbr/\u003e\n    Have $1000 in the bank\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 29, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/208fdd6821819e4f1dcbb3f5d15e7b1695306a84.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/208fdd6821819e4f1dcbb3f5d15e7b1695306a84.jpg\" alt=\"High Roller\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: High Roller\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHigh Roller\u003c/strong\u003e\u003cbr/\u003e\n    Have $5000 in the bank\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 12, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/2cbe80476f8c8c956d678060fa1405f54e0c4051.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/2cbe80476f8c8c956d678060fa1405f54e0c4051.jpg\" alt=\"There\u0026#39;s A Big Spender In Wobbly Town\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: There\u0026#39;s A Big Spender In Wobbly Town\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThere\u0026#39;s A Big Spender In Wobbly Town\u003c/strong\u003e\u003cbr/\u003e\n    Have $10000 in the bank\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 25, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/cfa21bcbf60bf6b34b792b997548510cc19fef01.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/cfa21bcbf60bf6b34b792b997548510cc19fef01.jpg\" alt=\"Explorer Extraordinaire\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Explorer Extraordinaire\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExplorer Extraordinaire\u003c/strong\u003e\u003cbr/\u003e\n    Collect all presents on Wobbly Island\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 18, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/7646536ff49c129a3beffbdffe7911f33cb15c2d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/7646536ff49c129a3beffbdffe7911f33cb15c2d.jpg\" alt=\"Powering The Whole Island\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Powering The Whole Island\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePowering The Whole Island\u003c/strong\u003e\u003cbr/\u003e\n    Feed the Monster 25 toxic barrels\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 18, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/4e3be450dd09158e81456fe22c03c9eef1fb3d74.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/4e3be450dd09158e81456fe22c03c9eef1fb3d74.jpg\" alt=\"Feeding Frenzy\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Feeding Frenzy\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFeeding Frenzy\u003c/strong\u003e\u003cbr/\u003e\n    Feed the Monster 50 toxic barrels\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 19, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/77e810d380efd39e8af06e38d30abea5e87a3a2e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/77e810d380efd39e8af06e38d30abea5e87a3a2e.jpg\" alt=\"Plowing Ahead\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Plowing Ahead\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePlowing Ahead\u003c/strong\u003e\u003cbr/\u003e\n    Complete Plowing Farm Job\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 12, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/14d3a1487f2b5347b2280a1488fd2f35f7c2110b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/14d3a1487f2b5347b2280a1488fd2f35f7c2110b.jpg\" alt=\"Growing Your Own\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Growing Your Own\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGrowing Your Own\u003c/strong\u003e\u003cbr/\u003e\n    Complete Seeding Farm Job\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 11, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/2b4f122a3a068c27f2b81a797ff9e5a4726bc1d7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/2b4f122a3a068c27f2b81a797ff9e5a4726bc1d7.jpg\" alt=\"Cream Of The Crop\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cream Of The Crop\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCream Of The Crop\u003c/strong\u003e\u003cbr/\u003e\n    Complete Harvest Farm Job\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 11, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/583492184fb3aaef3dce272c2d9bd31d44323142.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/583492184fb3aaef3dce272c2d9bd31d44323142.jpg\" alt=\"Mining The Glowy Green Ore\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mining The Glowy Green Ore\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMining The Glowy Green Ore\u003c/strong\u003e\u003cbr/\u003e\n    Deposit Uranium into the Mining Machine\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 01, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/dc253f58ac6c7d43a3b8501a9d429ea339e7e28a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/dc253f58ac6c7d43a3b8501a9d429ea339e7e28a.jpg\" alt=\"Your New Best Friend\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Your New Best Friend\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYour New Best Friend\u003c/strong\u003e\u003cbr/\u003e\n    Purchasing First Pet\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 15, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/a183a29d2f3ed198d34e32f084132cb478bceff9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/a183a29d2f3ed198d34e32f084132cb478bceff9.jpg\" alt=\"Helping The Wobbly That Time Forgot\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Helping The Wobbly That Time Forgot\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHelping The Wobbly That Time Forgot\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 18, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/5fadbda89c65fabfb5da6152983864a8b1d08e4c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/5fadbda89c65fabfb5da6152983864a8b1d08e4c.jpg\" alt=\"What A Clever Wobbly\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: What A Clever Wobbly\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhat A Clever Wobbly\u003c/strong\u003e\u003cbr/\u003e\n    Win the Wonderful Wobbly Quiz\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 21, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/48404a5d910d45399e1359d118415d46642b4815.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/48404a5d910d45399e1359d118415d46642b4815.jpg\" alt=\"You\u0026#39;re My Wobbly Hero\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: You\u0026#39;re My Wobbly Hero\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou\u0026#39;re My Wobbly Hero\u003c/strong\u003e\u003cbr/\u003e\n    Complete Fire Fighter Job\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 14, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/bba00cd4d70e041f98656df88c8075c2673f8baf.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/bba00cd4d70e041f98656df88c8075c2673f8baf.jpg\" alt=\"Lumber Legend\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Lumber Legend\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLumber Legend\u003c/strong\u003e\u003cbr/\u003e\n    Complete Woodcutter job\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 09, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/c00b9ebd9161459be058406eca62165c443b9c40.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/c00b9ebd9161459be058406eca62165c443b9c40.jpg\" alt=\"Formula Frenzy\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Formula Frenzy\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFormula Frenzy\u003c/strong\u003e\u003cbr/\u003e\n    Complete Science Job\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 14, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/dd16a3780d0951e6f38a220f07760cb2d9b1bd3e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/dd16a3780d0951e6f38a220f07760cb2d9b1bd3e.jpg\" alt=\"A Tiny Adventure\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Tiny Adventure\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Tiny Adventure\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: February 15, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/d224b82f1c184da050e279891a27876c7c491bb9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/d224b82f1c184da050e279891a27876c7c491bb9.jpg\" alt=\"Recovering The Past\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Recovering The Past\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRecovering The Past\u003c/strong\u003e\u003cbr/\u003e\n    Complete your first Museum collection\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 10, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/9db54d8607598d1e96a7ab86a4266ad183b50a67.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/9db54d8607598d1e96a7ab86a4266ad183b50a67.jpg\" alt=\"Frantic Fares\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Frantic Fares\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFrantic Fares\u003c/strong\u003e\u003cbr/\u003e\n    Complete Taxi Job\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 15, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/69cdedd39281b0d867e6a028aec88ab3aa10795b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/69cdedd39281b0d867e6a028aec88ab3aa10795b.jpg\" alt=\"A Sweet Day At Work\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Sweet Day At Work\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Sweet Day At Work\u003c/strong\u003e\u003cbr/\u003e\n    Complete Ice Cream Job\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 17, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/e8bfdb8e2dd8ecf64c5c0bd2156a33f3f398e36a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/e8bfdb8e2dd8ecf64c5c0bd2156a33f3f398e36a.jpg\" alt=\"Trivializing The Trials\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Trivializing The Trials\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTrivializing The Trials\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 15, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/855f934a2031e5c1062bdcf34e0a2c5c863c94c3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/855f934a2031e5c1062bdcf34e0a2c5c863c94c3.jpg\" alt=\"Dazzling On The Dance Floor\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Dazzling On The Dance Floor\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDazzling On The Dance Floor\u003c/strong\u003e\u003cbr/\u003e\n    Complete Disco Job\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 15, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/b9789fd1330b7fb0e64ae3eb3082a7de0cae8cdb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/b9789fd1330b7fb0e64ae3eb3082a7de0cae8cdb.jpg\" alt=\"Relentless Reeler\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Relentless Reeler\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRelentless Reeler\u003c/strong\u003e\u003cbr/\u003e\n    Complete Fishing Job\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 29, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/660ac334f29feaefe36a83f7a5ef85fb2d689fdf.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/660ac334f29feaefe36a83f7a5ef85fb2d689fdf.jpg\" alt=\"A Jelly Fueled Journey\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Jelly Fueled Journey\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Jelly Fueled Journey\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 25, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/b8ede51dac8b97b79e246dc418d6e4266a8e1f54.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/b8ede51dac8b97b79e246dc418d6e4266a8e1f54.jpg\" alt=\"The Rapid Recycler\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Rapid Recycler\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Rapid Recycler\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Recycling Job\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 03, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/a029506783dac117a16d8fc61c1ccccb555e149c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/a029506783dac117a16d8fc61c1ccccb555e149c.jpg\" alt=\"One Happy Hammerer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: One Happy Hammerer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOne Happy Hammerer\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Construction Job\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 03, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/4956c0e9d4c74f6f57ab5fa1051a78fb72ce817e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/4956c0e9d4c74f6f57ab5fa1051a78fb72ce817e.jpg\" alt=\"A Daring Demolition\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Daring Demolition\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Daring Demolition\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Demolition Job\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 11, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/9c2a6fe1b13f6a6a6ab9c2667591f09ad2eb6b29.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/9c2a6fe1b13f6a6a6ab9c2667591f09ad2eb6b29.jpg\" alt=\"My Best Work\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: My Best Work\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMy Best Work\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Art Job\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 18, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/598d27f06f5668f07d4ecaeb8f547dbd67a08b03.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/598d27f06f5668f07d4ecaeb8f547dbd67a08b03.jpg\" alt=\"One Big Sleep\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: One Big Sleep\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOne Big Sleep\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 20, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/c3b436769304569070a8b7ac18e93354c5880b1d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/c3b436769304569070a8b7ac18e93354c5880b1d.jpg\" alt=\"Into The Storm\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Into The Storm\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInto The Storm\u003c/strong\u003e\u003cbr/\u003e\n    Fix the Weather Machine\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 20, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/677232ab4d5d9f7498f296a5f3499fe199518c84.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/677232ab4d5d9f7498f296a5f3499fe199518c84.jpg\" alt=\"Drain Diver\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Drain Diver\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDrain Diver\u003c/strong\u003e\u003cbr/\u003e\n    Return the Sewer Queens crown\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 28, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/ac32f7f38e076884a4348a866257b35fe61253c6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/ac32f7f38e076884a4348a866257b35fe61253c6.jpg\" alt=\"Space Mine Specialist\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Space Mine Specialist\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpace Mine Specialist\u003c/strong\u003e\u003cbr/\u003e\n    Complete Asteroid Mining Job\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 19, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/6b24f0eb39d1b7d285d9da4e277f15be6f5e6e8b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/6b24f0eb39d1b7d285d9da4e277f15be6f5e6e8b.jpg\" alt=\"Rapid Rockets\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Rapid Rockets\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRapid Rockets\u003c/strong\u003e\u003cbr/\u003e\n    Complete a Spaceship Race\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 18, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/0636f48f562509e4fb6d31bbb2062f5c3465e7de.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/0636f48f562509e4fb6d31bbb2062f5c3465e7de.jpg\" alt=\"Luggage Lifter\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Luggage Lifter\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLuggage Lifter\u003c/strong\u003e\u003cbr/\u003e\n    Complete Suitcase Delivery Job\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 20, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/24211bfd6c7c2f28d0f2d915e9d4de7a15e31b63.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/24211bfd6c7c2f28d0f2d915e9d4de7a15e31b63.jpg\" alt=\"A New Frontier\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A New Frontier\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA New Frontier\u003c/strong\u003e\u003cbr/\u003e\n    Go To Space\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 18, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (19)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/bcf65dc9e209cd99a160c3f6608ae27956c82c49.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/bcf65dc9e209cd99a160c3f6608ae27956c82c49.jpg\" alt=\"A Deep Spooky Wobbly Secret\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Deep Spooky Wobbly Secret\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Deep Spooky Wobbly Secret\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/d6f10411ecf1512ddc8abc8871b86fa227dcce10.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/d6f10411ecf1512ddc8abc8871b86fa227dcce10.jpg\" alt=\"Marine Master\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Marine Master\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMarine Master\u003c/strong\u003e\u003cbr/\u003e\n    Collect every fish in Wobbly Island\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/16750f1442a33d3eebdfb1ee98d637540f70c268.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/16750f1442a33d3eebdfb1ee98d637540f70c268.jpg\" alt=\"The Balloon Buster\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Balloon Buster\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Balloon Buster\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Weather Job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/9d2f366dd70ccda2529aa31b688dadeece4058dd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/9d2f366dd70ccda2529aa31b688dadeece4058dd.jpg\" alt=\"Piecing It All Together\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Piecing It All Together\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePiecing It All Together\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/9fff835a320796f92a6fe7a040bb1a72ee89716c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/9fff835a320796f92a6fe7a040bb1a72ee89716c.jpg\" alt=\"Committed Collector\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Committed Collector\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCommitted Collector\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Museum\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/65885908adff3943cda4e955835ab437d323974f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/65885908adff3943cda4e955835ab437d323974f.jpg\" alt=\"Proud Protector\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Proud Protector\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eProud Protector\u003c/strong\u003e\u003cbr/\u003e\n    Complete Asteroid Defence Job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/70d1c314d327c7c5b114b564cf58f8844f9d8078.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/70d1c314d327c7c5b114b564cf58f8844f9d8078.jpg\" alt=\"Throwing Space Shapes\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Throwing Space Shapes\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThrowing Space Shapes\u003c/strong\u003e\u003cbr/\u003e\n    Complete Space Disco Job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/d1b3743751b674b404f245cb7969dbe03ed9e1ac.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/d1b3743751b674b404f245cb7969dbe03ed9e1ac.jpg\" alt=\"No Delivery Too Far\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: No Delivery Too Far\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNo Delivery Too Far\u003c/strong\u003e\u003cbr/\u003e\n    Complete Space Courier Job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/cf1f0edca3f26dd3ca2e3b1acb9039531ff93829.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/cf1f0edca3f26dd3ca2e3b1acb9039531ff93829.jpg\" alt=\"Wonderous Waiter\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Wonderous Waiter\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWonderous Waiter\u003c/strong\u003e\u003cbr/\u003e\n    Complete Space Diner Job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/ef035df10811f7585a866222841cf9b8cb064c2b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/ef035df10811f7585a866222841cf9b8cb064c2b.jpg\" alt=\"Wrench Wizard\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Wrench Wizard\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWrench Wizard\u003c/strong\u003e\u003cbr/\u003e\n    Complete Spaceship Mechanic Job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/9b2c77b3c8f5ecb17645b144d44994400a303262.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/9b2c77b3c8f5ecb17645b144d44994400a303262.jpg\" alt=\"Spaceship Saviour\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Spaceship Saviour\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpaceship Saviour\u003c/strong\u003e\u003cbr/\u003e\n    Complete Spaceship Rescue Job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/50e031c1007335ada5094b7e85b10c3fe745c68d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/50e031c1007335ada5094b7e85b10c3fe745c68d.jpg\" alt=\"Cosmic Collector\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cosmic Collector\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCosmic Collector\u003c/strong\u003e\u003cbr/\u003e\n    Complete The Collector\u0026#39;s Emporium\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/c5ff0e6a96d8dec238ed45b60e02f2303fb14de4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/c5ff0e6a96d8dec238ed45b60e02f2303fb14de4.jpg\" alt=\"Creative Cadet\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Creative Cadet\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCreative Cadet\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Space Cadet Mission Series\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/d4f8e118db17b2faa47d0c4280ed3b5611a861ca.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/d4f8e118db17b2faa47d0c4280ed3b5611a861ca.jpg\" alt=\"Super Student\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Super Student\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSuper Student\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Space Garden Classes\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/6b41264d3d278eaa69e83d23d27b3194315c29e3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/6b41264d3d278eaa69e83d23d27b3194315c29e3.jpg\" alt=\"Uncovering The Clues\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Uncovering The Clues\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUncovering The Clues\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Space Detective Missions\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/a37ee4a05462e69139511d31547d67b9230952af.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/a37ee4a05462e69139511d31547d67b9230952af.jpg\" alt=\"Galactic Gift Finder\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Galactic Gift Finder\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGalactic Gift Finder\u003c/strong\u003e\u003cbr/\u003e\n    Collect all the presents in Space\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/c22e080b2acc49d034f823ac0e7bf028bbe5270c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/c22e080b2acc49d034f823ac0e7bf028bbe5270c.jpg\" alt=\"Well That Was Weird\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Well That Was Weird\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWell That Was Weird\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/10e582d3ecc14a54bdd5b0f137f4ba89add59827.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/10e582d3ecc14a54bdd5b0f137f4ba89add59827.jpg\" alt=\"Hey Gran, I\u0026#39;m Space Rich!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hey Gran, I\u0026#39;m Space Rich!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHey Gran, I\u0026#39;m Space Rich!\u003c/strong\u003e\u003cbr/\u003e\n    Have 5000 Space Credits\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/992700c3aea24e3231e08af240b798cbe7b1494d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/992700c3aea24e3231e08af240b798cbe7b1494d.jpg\" alt=\"Stealthy Sneaker\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Stealthy Sneaker\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStealthy Sneaker\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/1211020/library_600x900.jpg\" alt=\"Wobbly Life box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/1211020/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eWobbly Life\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 72.06%\"\u003e\n        72.06%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e49/68 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e561.6h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-09-20\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (49)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/f6912045491560652f7efebfa897803bf2fa5656.jpg\" alt=\"A Wobbly Start\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Wobbly Start\u003c/strong\u003e\u003cbr\u003e\n    Complete Jelly Job\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 12, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/73518ae7a1d59924767980aece1574742866fa39.jpg\" alt=\"A Speedy Slice\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Speedy Slice\u003c/strong\u003e\u003cbr\u003e\n    Complete Pizza Job\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 10, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/3c77d231d57b535035f145d9746a1edbcd1ffcf6.jpg\" alt=\"Flipping The Perfect Burger\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFlipping The Perfect Burger\u003c/strong\u003e\u003cbr\u003e\n    Complete Burger Job\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 27, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/8ae4a0b3d4326b0c2d41ebc87cec3bc7dad4cd14.jpg\" alt=\"Monster Manager\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMonster Manager\u003c/strong\u003e\u003cbr\u003e\n    Complete Power Plant Job\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 11, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/f196fb0270ed54ed6dd936afdc2f3c3d3ed62a44.jpg\" alt=\"Speedy Nee-Naw\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpeedy Nee-Naw\u003c/strong\u003e\u003cbr\u003e\n    Complete Emergency Job\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 15, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/ad90d7df04df586bd90d7945c63e5eb71c1af8c1.jpg\" alt=\"Rapid Delivery To Your Door\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRapid Delivery To Your Door\u003c/strong\u003e\u003cbr\u003e\n    Complete Newspaper Job\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 14, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/2791386e107ec7fd70756c4109bef529858ade5f.jpg\" alt=\"Creative Courier\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCreative Courier\u003c/strong\u003e\u003cbr\u003e\n    Complete Furniture Job\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 14, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/df9c264e9d923cc44313b0ee9564a2e6ccf3df35.jpg\" alt=\"Putting The Pedal To The Metal\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePutting The Pedal To The Metal\u003c/strong\u003e\u003cbr\u003e\n    Complete a Kart Race\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 14, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/91a7d227e0245d5fdbce5f69a2327dae1ea73b21.jpg\" alt=\"Taking To The Skies!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTaking To The Skies!\u003c/strong\u003e\u003cbr\u003e\n    Complete a Plane Race\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 09, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/4a72a990ff08e305246594f389ef1e20222f6529.jpg\" alt=\"Making Waves\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaking Waves\u003c/strong\u003e\u003cbr\u003e\n    Complete a Boat Race\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 12, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/83bcdda64f1bf4d5cd56f339f314df087b1c1b8f.jpg\" alt=\"A Supernatural Delivery\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Supernatural Delivery\u003c/strong\u003e\u003cbr\u003e\n    Deliver Pizza to the UFO\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 19, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/f85b4645b4ad44eb6babf42b3a0656352e646c30.jpg\" alt=\"Cleaning Up The Island\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCleaning Up The Island\u003c/strong\u003e\u003cbr\u003e\n    Complete Garbage Job\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 11, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/25371b38ff46e3ae864ab6492c0679cc1e1a7c79.jpg\" alt=\"Awesome Archaeologist\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAwesome Archaeologist\u003c/strong\u003e\u003cbr\u003e\n    Complete the Temple\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 13, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/4cf47b70ee748f454cb99253578777c7cb0ea011.jpg\" alt=\"Making Grandma Proud\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaking Grandma Proud\u003c/strong\u003e\u003cbr\u003e\n    Buy your first house\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 09, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/115855e6d944c1f3f29a05a84fcd1b799c5ecdfa.jpg\" alt=\"Look At Me Grandma!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLook At Me Grandma!\u003c/strong\u003e\u003cbr\u003e\n    Have $1000 in the bank\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 29, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/208fdd6821819e4f1dcbb3f5d15e7b1695306a84.jpg\" alt=\"High Roller\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHigh Roller\u003c/strong\u003e\u003cbr\u003e\n    Have $5000 in the bank\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 12, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/2cbe80476f8c8c956d678060fa1405f54e0c4051.jpg\" alt=\"There's A Big Spender In Wobbly Town\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThere's A Big Spender In Wobbly Town\u003c/strong\u003e\u003cbr\u003e\n    Have $10000 in the bank\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 25, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/cfa21bcbf60bf6b34b792b997548510cc19fef01.jpg\" alt=\"Explorer Extraordinaire\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExplorer Extraordinaire\u003c/strong\u003e\u003cbr\u003e\n    Collect all presents on Wobbly Island\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 18, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/7646536ff49c129a3beffbdffe7911f33cb15c2d.jpg\" alt=\"Powering The Whole Island\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePowering The Whole Island\u003c/strong\u003e\u003cbr\u003e\n    Feed the Monster 25 toxic barrels\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 18, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/4e3be450dd09158e81456fe22c03c9eef1fb3d74.jpg\" alt=\"Feeding Frenzy\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFeeding Frenzy\u003c/strong\u003e\u003cbr\u003e\n    Feed the Monster 50 toxic barrels\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 19, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/77e810d380efd39e8af06e38d30abea5e87a3a2e.jpg\" alt=\"Plowing Ahead\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePlowing Ahead\u003c/strong\u003e\u003cbr\u003e\n    Complete Plowing Farm Job\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 12, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/14d3a1487f2b5347b2280a1488fd2f35f7c2110b.jpg\" alt=\"Growing Your Own\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGrowing Your Own\u003c/strong\u003e\u003cbr\u003e\n    Complete Seeding Farm Job\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 11, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/2b4f122a3a068c27f2b81a797ff9e5a4726bc1d7.jpg\" alt=\"Cream Of The Crop\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCream Of The Crop\u003c/strong\u003e\u003cbr\u003e\n    Complete Harvest Farm Job\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 11, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/583492184fb3aaef3dce272c2d9bd31d44323142.jpg\" alt=\"Mining The Glowy Green Ore\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMining The Glowy Green Ore\u003c/strong\u003e\u003cbr\u003e\n    Deposit Uranium into the Mining Machine\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 01, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/dc253f58ac6c7d43a3b8501a9d429ea339e7e28a.jpg\" alt=\"Your New Best Friend\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYour New Best Friend\u003c/strong\u003e\u003cbr\u003e\n    Purchasing First Pet\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 15, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/a183a29d2f3ed198d34e32f084132cb478bceff9.jpg\" alt=\"Helping The Wobbly That Time Forgot\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHelping The Wobbly That Time Forgot\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 18, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/5fadbda89c65fabfb5da6152983864a8b1d08e4c.jpg\" alt=\"What A Clever Wobbly\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhat A Clever Wobbly\u003c/strong\u003e\u003cbr\u003e\n    Win the Wonderful Wobbly Quiz\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 21, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/48404a5d910d45399e1359d118415d46642b4815.jpg\" alt=\"You're My Wobbly Hero\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou're My Wobbly Hero\u003c/strong\u003e\u003cbr\u003e\n    Complete Fire Fighter Job\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 14, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/bba00cd4d70e041f98656df88c8075c2673f8baf.jpg\" alt=\"Lumber Legend\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLumber Legend\u003c/strong\u003e\u003cbr\u003e\n    Complete Woodcutter job\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 09, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/c00b9ebd9161459be058406eca62165c443b9c40.jpg\" alt=\"Formula Frenzy\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFormula Frenzy\u003c/strong\u003e\u003cbr\u003e\n    Complete Science Job\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 14, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/dd16a3780d0951e6f38a220f07760cb2d9b1bd3e.jpg\" alt=\"A Tiny Adventure\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Tiny Adventure\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: February 15, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/d224b82f1c184da050e279891a27876c7c491bb9.jpg\" alt=\"Recovering The Past\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRecovering The Past\u003c/strong\u003e\u003cbr\u003e\n    Complete your first Museum collection\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 10, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/9db54d8607598d1e96a7ab86a4266ad183b50a67.jpg\" alt=\"Frantic Fares\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFrantic Fares\u003c/strong\u003e\u003cbr\u003e\n    Complete Taxi Job\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 15, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/69cdedd39281b0d867e6a028aec88ab3aa10795b.jpg\" alt=\"A Sweet Day At Work\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Sweet Day At Work\u003c/strong\u003e\u003cbr\u003e\n    Complete Ice Cream Job\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 17, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/e8bfdb8e2dd8ecf64c5c0bd2156a33f3f398e36a.jpg\" alt=\"Trivializing The Trials\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTrivializing The Trials\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 15, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/855f934a2031e5c1062bdcf34e0a2c5c863c94c3.jpg\" alt=\"Dazzling On The Dance Floor\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDazzling On The Dance Floor\u003c/strong\u003e\u003cbr\u003e\n    Complete Disco Job\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 15, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/b9789fd1330b7fb0e64ae3eb3082a7de0cae8cdb.jpg\" alt=\"Relentless Reeler\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRelentless Reeler\u003c/strong\u003e\u003cbr\u003e\n    Complete Fishing Job\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 29, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/660ac334f29feaefe36a83f7a5ef85fb2d689fdf.jpg\" alt=\"A Jelly Fueled Journey\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Jelly Fueled Journey\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 25, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/b8ede51dac8b97b79e246dc418d6e4266a8e1f54.jpg\" alt=\"The Rapid Recycler\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Rapid Recycler\u003c/strong\u003e\u003cbr\u003e\n    Complete the Recycling Job\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 03, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/a029506783dac117a16d8fc61c1ccccb555e149c.jpg\" alt=\"One Happy Hammerer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOne Happy Hammerer\u003c/strong\u003e\u003cbr\u003e\n    Complete the Construction Job\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 03, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/4956c0e9d4c74f6f57ab5fa1051a78fb72ce817e.jpg\" alt=\"A Daring Demolition\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Daring Demolition\u003c/strong\u003e\u003cbr\u003e\n    Complete the Demolition Job\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 11, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/9c2a6fe1b13f6a6a6ab9c2667591f09ad2eb6b29.jpg\" alt=\"My Best Work\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMy Best Work\u003c/strong\u003e\u003cbr\u003e\n    Complete the Art Job\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 18, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/598d27f06f5668f07d4ecaeb8f547dbd67a08b03.jpg\" alt=\"One Big Sleep\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOne Big Sleep\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 20, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/c3b436769304569070a8b7ac18e93354c5880b1d.jpg\" alt=\"Into The Storm\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInto The Storm\u003c/strong\u003e\u003cbr\u003e\n    Fix the Weather Machine\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 20, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/677232ab4d5d9f7498f296a5f3499fe199518c84.jpg\" alt=\"Drain Diver\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDrain Diver\u003c/strong\u003e\u003cbr\u003e\n    Return the Sewer Queens crown\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 28, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/ac32f7f38e076884a4348a866257b35fe61253c6.jpg\" alt=\"Space Mine Specialist\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpace Mine Specialist\u003c/strong\u003e\u003cbr\u003e\n    Complete Asteroid Mining Job\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 19, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/6b24f0eb39d1b7d285d9da4e277f15be6f5e6e8b.jpg\" alt=\"Rapid Rockets\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRapid Rockets\u003c/strong\u003e\u003cbr\u003e\n    Complete a Spaceship Race\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 18, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/0636f48f562509e4fb6d31bbb2062f5c3465e7de.jpg\" alt=\"Luggage Lifter\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLuggage Lifter\u003c/strong\u003e\u003cbr\u003e\n    Complete Suitcase Delivery Job\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 20, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/24211bfd6c7c2f28d0f2d915e9d4de7a15e31b63.jpg\" alt=\"A New Frontier\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA New Frontier\u003c/strong\u003e\u003cbr\u003e\n    Go To Space\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 18, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (19)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/bcf65dc9e209cd99a160c3f6608ae27956c82c49.jpg\" alt=\"A Deep Spooky Wobbly Secret\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Deep Spooky Wobbly Secret\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/d6f10411ecf1512ddc8abc8871b86fa227dcce10.jpg\" alt=\"Marine Master\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMarine Master\u003c/strong\u003e\u003cbr\u003e\n    Collect every fish in Wobbly Island\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/16750f1442a33d3eebdfb1ee98d637540f70c268.jpg\" alt=\"The Balloon Buster\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Balloon Buster\u003c/strong\u003e\u003cbr\u003e\n    Complete the Weather Job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/9d2f366dd70ccda2529aa31b688dadeece4058dd.jpg\" alt=\"Piecing It All Together\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePiecing It All Together\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/9fff835a320796f92a6fe7a040bb1a72ee89716c.jpg\" alt=\"Committed Collector\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCommitted Collector\u003c/strong\u003e\u003cbr\u003e\n    Complete the Museum\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/65885908adff3943cda4e955835ab437d323974f.jpg\" alt=\"Proud Protector\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eProud Protector\u003c/strong\u003e\u003cbr\u003e\n    Complete Asteroid Defence Job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/70d1c314d327c7c5b114b564cf58f8844f9d8078.jpg\" alt=\"Throwing Space Shapes\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThrowing Space Shapes\u003c/strong\u003e\u003cbr\u003e\n    Complete Space Disco Job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/d1b3743751b674b404f245cb7969dbe03ed9e1ac.jpg\" alt=\"No Delivery Too Far\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNo Delivery Too Far\u003c/strong\u003e\u003cbr\u003e\n    Complete Space Courier Job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/cf1f0edca3f26dd3ca2e3b1acb9039531ff93829.jpg\" alt=\"Wonderous Waiter\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWonderous Waiter\u003c/strong\u003e\u003cbr\u003e\n    Complete Space Diner Job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/ef035df10811f7585a866222841cf9b8cb064c2b.jpg\" alt=\"Wrench Wizard\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWrench Wizard\u003c/strong\u003e\u003cbr\u003e\n    Complete Spaceship Mechanic Job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/9b2c77b3c8f5ecb17645b144d44994400a303262.jpg\" alt=\"Spaceship Saviour\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpaceship Saviour\u003c/strong\u003e\u003cbr\u003e\n    Complete Spaceship Rescue Job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/50e031c1007335ada5094b7e85b10c3fe745c68d.jpg\" alt=\"Cosmic Collector\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCosmic Collector\u003c/strong\u003e\u003cbr\u003e\n    Complete The Collector's Emporium\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/c5ff0e6a96d8dec238ed45b60e02f2303fb14de4.jpg\" alt=\"Creative Cadet\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCreative Cadet\u003c/strong\u003e\u003cbr\u003e\n    Complete the Space Cadet Mission Series\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/d4f8e118db17b2faa47d0c4280ed3b5611a861ca.jpg\" alt=\"Super Student\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSuper Student\u003c/strong\u003e\u003cbr\u003e\n    Complete the Space Garden Classes\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/6b41264d3d278eaa69e83d23d27b3194315c29e3.jpg\" alt=\"Uncovering The Clues\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUncovering The Clues\u003c/strong\u003e\u003cbr\u003e\n    Complete the Space Detective Missions\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/a37ee4a05462e69139511d31547d67b9230952af.jpg\" alt=\"Galactic Gift Finder\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGalactic Gift Finder\u003c/strong\u003e\u003cbr\u003e\n    Collect all the presents in Space\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/c22e080b2acc49d034f823ac0e7bf028bbe5270c.jpg\" alt=\"Well That Was Weird\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWell That Was Weird\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/10e582d3ecc14a54bdd5b0f137f4ba89add59827.jpg\" alt=\"Hey Gran, I'm Space Rich!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHey Gran, I'm Space Rich!\u003c/strong\u003e\u003cbr\u003e\n    Have 5000 Space Credits\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1211020/992700c3aea24e3231e08af240b798cbe7b1494d.jpg\" alt=\"Stealthy Sneaker\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStealthy Sneaker\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Wobbly Life - 72.06% complete with 49/68 achievements unlocked.",
      "date_published": "2025-09-20T00:00:00Z",
      "date_modified": "2025-09-20T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "wobbly-life"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/bopl-battle/",
      "url": "https://go.waylonwalker.com/steam/bopl-battle/",
      "title": "Bopl Battle",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/1686940/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/1686940/library_600x900.jpg\" alt=\"Bopl Battle box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/1686940/header.jpg\u0026#39;\"/ data-glightbox=\"description: Bopl Battle box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eBopl Battle\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 50.0%\"\u003e\n        50.0%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e14/28 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e16.3h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-09-17\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (14)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/160f3e1501ec08b11dc504a484a9a25d3237f98b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/160f3e1501ec08b11dc504a484a9a25d3237f98b.jpg\" alt=\"I AM BECOME JAKOB, DESTROYER OF FUN\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: I AM BECOME JAKOB, DESTROYER OF FUN\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI AM BECOME JAKOB, DESTROYER OF FUN\u003c/strong\u003e\u003cbr/\u003e\n    Win a game with 3 Dashes\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 01, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/ee70d024876f068095b8540cefbecfff417bcb96.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/ee70d024876f068095b8540cefbecfff417bcb96.jpg\" alt=\"Better luck next time, Jakob!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Better luck next time, Jakob!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBetter luck next time, Jakob!\u003c/strong\u003e\u003cbr/\u003e\n    Win a game against a player with 3 dashes\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 01, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/b29f66acfdb94f87148b1e339b8d7041ce51e4e6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/b29f66acfdb94f87148b1e339b8d7041ce51e4e6.jpg\" alt=\"gg ez\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: gg ez\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003egg ez\u003c/strong\u003e\u003cbr/\u003e\n    Win a game without doing anything\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 31, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/5bd3cecb8260fd969440b247d55cf2957c0627c3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/5bd3cecb8260fd969440b247d55cf2957c0627c3.jpg\" alt=\"Embrace the chaos\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Embrace the chaos\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEmbrace the chaos\u003c/strong\u003e\u003cbr/\u003e\n    Play a game where every player selected only RANDOM\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 31, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/daf1b7047909e36821fec5fa7d2c52f7c9fb497a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/daf1b7047909e36821fec5fa7d2c52f7c9fb497a.jpg\" alt=\"But my lord, there is no such force\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: But my lord, there is no such force\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBut my lord, there is no such force\u003c/strong\u003e\u003cbr/\u003e\n    Clone yourself 16 times\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 01, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/0fbeb7bb8415f8b5b5ee0747caff811a7bedfc9b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/0fbeb7bb8415f8b5b5ee0747caff811a7bedfc9b.jpg\" alt=\"I\u0026#39;m a big boy now\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: I\u0026#39;m a big boy now\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI\u0026#39;m a big boy now\u003c/strong\u003e\u003cbr/\u003e\n    Growth ray yourself\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 01, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/5f403c860e11e5c63d7f668387eff246dd744c57.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/5f403c860e11e5c63d7f668387eff246dd744c57.jpg\" alt=\"Rocket science\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Rocket science\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRocket science\u003c/strong\u003e\u003cbr/\u003e\n    Get a kill with the \u0026#34;Engine\u0026#34; ability\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 01, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/9eae40b4f0cba779992777f94b84ae49e24d6f1d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/9eae40b4f0cba779992777f94b84ae49e24d6f1d.jpg\" alt=\"Big brain\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Big brain\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBig brain\u003c/strong\u003e\u003cbr/\u003e\n    Win a game with no offensive abilities\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 31, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/6f1f7e59b0356111a4173ea8daeb9273373cb63d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/6f1f7e59b0356111a4173ea8daeb9273373cb63d.jpg\" alt=\"Boring master\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Boring master\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBoring master\u003c/strong\u003e\u003cbr/\u003e\n    Stay in Drill form for 10 seconds\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 31, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/13b77d9f2693f1fa8db1385620bc7f016e914351.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/13b77d9f2693f1fa8db1385620bc7f016e914351.jpg\" alt=\"Moonwalker\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Moonwalker\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMoonwalker\u003c/strong\u003e\u003cbr/\u003e\n    Moonwalk like a boss\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 01, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/2a6f5f698393970a47ab4068978df0de25c9ebcc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/2a6f5f698393970a47ab4068978df0de25c9ebcc.jpg\" alt=\"Whoops!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Whoops!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhoops!\u003c/strong\u003e\u003cbr/\u003e\n    Hold a grenade until it explodes\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 01, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/60ee03fb4a88abf520d69273ab65b35feb81dab4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/60ee03fb4a88abf520d69273ab65b35feb81dab4.jpg\" alt=\"Double!!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Double!!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDouble!!\u003c/strong\u003e\u003cbr/\u003e\n    Kill two players at once\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 31, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/76d0618218fae796c86c1f4fd07ab12cc4ef62c2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/76d0618218fae796c86c1f4fd07ab12cc4ef62c2.jpg\" alt=\"Crunchy!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Crunchy!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCrunchy!\u003c/strong\u003e\u003cbr/\u003e\n    Eat another player\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 31, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/11d2ed52cdddc5f341a8000aea5d38a53e3f076c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/11d2ed52cdddc5f341a8000aea5d38a53e3f076c.jpg\" alt=\"GET IN MY BELLY!!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: GET IN MY BELLY!!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGET IN MY BELLY!!\u003c/strong\u003e\u003cbr/\u003e\n    Eat 3 slimes in a single round\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 01, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (14)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/5027080d88f71aa6f24611b101353dae1e6d7706.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/5027080d88f71aa6f24611b101353dae1e6d7706.jpg\" alt=\"Begun, the blink war has\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Begun, the blink war has\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBegun, the blink war has\u003c/strong\u003e\u003cbr/\u003e\n    Play a game where everyone only picked blink guns\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/5f6a89971f08129fa088bf76c1f7498e4bb85677.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/5f6a89971f08129fa088bf76c1f7498e4bb85677.jpg\" alt=\"Sniper\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sniper\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSniper\u003c/strong\u003e\u003cbr/\u003e\n    Land a long range arrow\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/ca5083d7412b0bececc684c5316a8665ac00e925.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/ca5083d7412b0bececc684c5316a8665ac00e925.jpg\" alt=\"Totem pole!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Totem pole!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTotem pole!\u003c/strong\u003e\u003cbr/\u003e\n    Build a tower of Macho-slime\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/91914fe8190d9969dccef039575748dc373c7097.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/91914fe8190d9969dccef039575748dc373c7097.jpg\" alt=\"World ender\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: World ender\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWorld ender\u003c/strong\u003e\u003cbr/\u003e\n    Create a very big black hole\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/cf994a3192dc4c72a997945bb822a7566c2bcf03.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/cf994a3192dc4c72a997945bb822a7566c2bcf03.jpg\" alt=\"Scientist\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Scientist\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eScientist\u003c/strong\u003e\u003cbr/\u003e\n    Create a white hole\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/cef5d05c4f69a5519e999db473735f376be17bde.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/cef5d05c4f69a5519e999db473735f376be17bde.jpg\" alt=\"BOOOOOMMM!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: BOOOOOMMM!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBOOOOOMMM!\u003c/strong\u003e\u003cbr/\u003e\n    create 10 consecutive smoke explosions\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/61fa7d6801f12c8697026b796a6d510785306aeb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/61fa7d6801f12c8697026b796a6d510785306aeb.jpg\" alt=\"LET\u0026#39;S FRICKIN\u0026#39; GOOOOO!!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: LET\u0026#39;S FRICKIN\u0026#39; GOOOOO!!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLET\u0026#39;S FRICKIN\u0026#39; GOOOOO!!\u003c/strong\u003e\u003cbr/\u003e\n    Clear the tutorial in less than 9 seconds\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/9fe57938aeef6ecc5a16a144d9486728bd5962e4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/9fe57938aeef6ecc5a16a144d9486728bd5962e4.jpg\" alt=\"Triple!!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Triple!!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTriple!!\u003c/strong\u003e\u003cbr/\u003e\n    Kill three players at once\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/482e8f5c8e566a69977753e3f689e499ff39a28a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/482e8f5c8e566a69977753e3f689e499ff39a28a.jpg\" alt=\"What happened there?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: What happened there?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhat happened there?\u003c/strong\u003e\u003cbr/\u003e\n    Have a game end in a 4 player draw\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/92bc67d6ec14f9234d3b20f798177872158c97a9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/92bc67d6ec14f9234d3b20f798177872158c97a9.jpg\" alt=\"You\u0026#39;re already dead.\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: You\u0026#39;re already dead.\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou\u0026#39;re already dead.\u003c/strong\u003e\u003cbr/\u003e\n    Get 2 kills right after a time stop has ended\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/37ece18925d64045d950c371083bd6ad86a75647.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/37ece18925d64045d950c371083bd6ad86a75647.jpg\" alt=\"2 birds 1 stone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: 2 birds 1 stone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e2 birds 1 stone\u003c/strong\u003e\u003cbr/\u003e\n    Get 2 kills with 1 use of Rock\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/12cf80d19d6a9451eabfe4bad71573f4d3d65374.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/12cf80d19d6a9451eabfe4bad71573f4d3d65374.jpg\" alt=\"Built different\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Built different\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBuilt different\u003c/strong\u003e\u003cbr/\u003e\n    Win a 1v3\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/c7db1d7ce21fd48894ba0e9770c22e1b20b44462.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/c7db1d7ce21fd48894ba0e9770c22e1b20b44462.jpg\" alt=\"Dominator\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Dominator\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDominator\u003c/strong\u003e\u003cbr/\u003e\n    Reach 100 wins\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/b1be880447e2003dd3c0f12e0013d187c1f207ea.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/b1be880447e2003dd3c0f12e0013d187c1f207ea.jpg\" alt=\"NOICE\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: NOICE\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNOICE\u003c/strong\u003e\u003cbr/\u003e\n    Gust a grenade into a player\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/1686940/library_600x900.jpg\" alt=\"Bopl Battle box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/1686940/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eBopl Battle\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 50.0%\"\u003e\n        50.0%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e14/28 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e16.3h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-09-17\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (14)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/160f3e1501ec08b11dc504a484a9a25d3237f98b.jpg\" alt=\"I AM BECOME JAKOB, DESTROYER OF FUN\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI AM BECOME JAKOB, DESTROYER OF FUN\u003c/strong\u003e\u003cbr\u003e\n    Win a game with 3 Dashes\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 01, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/ee70d024876f068095b8540cefbecfff417bcb96.jpg\" alt=\"Better luck next time, Jakob!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBetter luck next time, Jakob!\u003c/strong\u003e\u003cbr\u003e\n    Win a game against a player with 3 dashes\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 01, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/b29f66acfdb94f87148b1e339b8d7041ce51e4e6.jpg\" alt=\"gg ez\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003egg ez\u003c/strong\u003e\u003cbr\u003e\n    Win a game without doing anything\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 31, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/5bd3cecb8260fd969440b247d55cf2957c0627c3.jpg\" alt=\"Embrace the chaos\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEmbrace the chaos\u003c/strong\u003e\u003cbr\u003e\n    Play a game where every player selected only RANDOM\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 31, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/daf1b7047909e36821fec5fa7d2c52f7c9fb497a.jpg\" alt=\"But my lord, there is no such force\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBut my lord, there is no such force\u003c/strong\u003e\u003cbr\u003e\n    Clone yourself 16 times\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 01, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/0fbeb7bb8415f8b5b5ee0747caff811a7bedfc9b.jpg\" alt=\"I'm a big boy now\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI'm a big boy now\u003c/strong\u003e\u003cbr\u003e\n    Growth ray yourself\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 01, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/5f403c860e11e5c63d7f668387eff246dd744c57.jpg\" alt=\"Rocket science\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRocket science\u003c/strong\u003e\u003cbr\u003e\n    Get a kill with the \"Engine\" ability\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 01, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/9eae40b4f0cba779992777f94b84ae49e24d6f1d.jpg\" alt=\"Big brain\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBig brain\u003c/strong\u003e\u003cbr\u003e\n    Win a game with no offensive abilities\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 31, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/6f1f7e59b0356111a4173ea8daeb9273373cb63d.jpg\" alt=\"Boring master\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBoring master\u003c/strong\u003e\u003cbr\u003e\n    Stay in Drill form for 10 seconds\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 31, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/13b77d9f2693f1fa8db1385620bc7f016e914351.jpg\" alt=\"Moonwalker\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMoonwalker\u003c/strong\u003e\u003cbr\u003e\n    Moonwalk like a boss\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 01, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/2a6f5f698393970a47ab4068978df0de25c9ebcc.jpg\" alt=\"Whoops!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhoops!\u003c/strong\u003e\u003cbr\u003e\n    Hold a grenade until it explodes\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 01, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/60ee03fb4a88abf520d69273ab65b35feb81dab4.jpg\" alt=\"Double!!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDouble!!\u003c/strong\u003e\u003cbr\u003e\n    Kill two players at once\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 31, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/76d0618218fae796c86c1f4fd07ab12cc4ef62c2.jpg\" alt=\"Crunchy!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCrunchy!\u003c/strong\u003e\u003cbr\u003e\n    Eat another player\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 31, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/11d2ed52cdddc5f341a8000aea5d38a53e3f076c.jpg\" alt=\"GET IN MY BELLY!!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGET IN MY BELLY!!\u003c/strong\u003e\u003cbr\u003e\n    Eat 3 slimes in a single round\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 01, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (14)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/5027080d88f71aa6f24611b101353dae1e6d7706.jpg\" alt=\"Begun, the blink war has\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBegun, the blink war has\u003c/strong\u003e\u003cbr\u003e\n    Play a game where everyone only picked blink guns\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/5f6a89971f08129fa088bf76c1f7498e4bb85677.jpg\" alt=\"Sniper\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSniper\u003c/strong\u003e\u003cbr\u003e\n    Land a long range arrow\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/ca5083d7412b0bececc684c5316a8665ac00e925.jpg\" alt=\"Totem pole!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTotem pole!\u003c/strong\u003e\u003cbr\u003e\n    Build a tower of Macho-slime\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/91914fe8190d9969dccef039575748dc373c7097.jpg\" alt=\"World ender\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWorld ender\u003c/strong\u003e\u003cbr\u003e\n    Create a very big black hole\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/cf994a3192dc4c72a997945bb822a7566c2bcf03.jpg\" alt=\"Scientist\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eScientist\u003c/strong\u003e\u003cbr\u003e\n    Create a white hole\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/cef5d05c4f69a5519e999db473735f376be17bde.jpg\" alt=\"BOOOOOMMM!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBOOOOOMMM!\u003c/strong\u003e\u003cbr\u003e\n    create 10 consecutive smoke explosions\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/61fa7d6801f12c8697026b796a6d510785306aeb.jpg\" alt=\"LET'S FRICKIN' GOOOOO!!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLET'S FRICKIN' GOOOOO!!\u003c/strong\u003e\u003cbr\u003e\n    Clear the tutorial in less than 9 seconds\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/9fe57938aeef6ecc5a16a144d9486728bd5962e4.jpg\" alt=\"Triple!!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTriple!!\u003c/strong\u003e\u003cbr\u003e\n    Kill three players at once\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/482e8f5c8e566a69977753e3f689e499ff39a28a.jpg\" alt=\"What happened there?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhat happened there?\u003c/strong\u003e\u003cbr\u003e\n    Have a game end in a 4 player draw\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/92bc67d6ec14f9234d3b20f798177872158c97a9.jpg\" alt=\"You're already dead.\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou're already dead.\u003c/strong\u003e\u003cbr\u003e\n    Get 2 kills right after a time stop has ended\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/37ece18925d64045d950c371083bd6ad86a75647.jpg\" alt=\"2 birds 1 stone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e2 birds 1 stone\u003c/strong\u003e\u003cbr\u003e\n    Get 2 kills with 1 use of Rock\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/12cf80d19d6a9451eabfe4bad71573f4d3d65374.jpg\" alt=\"Built different\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBuilt different\u003c/strong\u003e\u003cbr\u003e\n    Win a 1v3\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/c7db1d7ce21fd48894ba0e9770c22e1b20b44462.jpg\" alt=\"Dominator\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDominator\u003c/strong\u003e\u003cbr\u003e\n    Reach 100 wins\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1686940/b1be880447e2003dd3c0f12e0013d187c1f207ea.jpg\" alt=\"NOICE\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNOICE\u003c/strong\u003e\u003cbr\u003e\n    Gust a grenade into a player\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Bopl Battle - 50.0% complete with 14/28 achievements unlocked.",
      "date_published": "2025-09-17T00:00:00Z",
      "date_modified": "2025-09-17T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "bopl-battle"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/bloons-td-6/",
      "url": "https://go.waylonwalker.com/steam/bloons-td-6/",
      "title": "Bloons TD 6",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/960090/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/960090/library_600x900.jpg\" alt=\"Bloons TD 6 box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/960090/header.jpg\u0026#39;\"/ data-glightbox=\"description: Bloons TD 6 box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eBloons TD 6\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 5.88%\"\u003e\n        5.88%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e9/153 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e16.9h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-09-06\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (9)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/4a2ab59b7fc916400fe5b4c626a693941cbf782c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/4a2ab59b7fc916400fe5b4c626a693941cbf782c.jpg\" alt=\"First Win\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: First Win\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFirst Win\u003c/strong\u003e\u003cbr/\u003e\n    1 Non-Tutorial Beginner map Win\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 17, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/daff4f3c044942a80541b673248d2f1bca12ade8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/daff4f3c044942a80541b673248d2f1bca12ade8.jpg\" alt=\"Big Monkey\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Big Monkey\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBig Monkey\u003c/strong\u003e\u003cbr/\u003e\n    Deploy a tier 4 monkey tower\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 17, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/aebb0d9d5b3f08092cd3fc957fcf49e57f3c42cf.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/aebb0d9d5b3f08092cd3fc957fcf49e57f3c42cf.jpg\" alt=\"Hero Time\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hero Time\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHero Time\u003c/strong\u003e\u003cbr/\u003e\n    Deploy a Hero on a non-tutorial map\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 17, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/14a6294547ba08c15201a962fa48d006dabba61f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/14a6294547ba08c15201a962fa48d006dabba61f.jpg\" alt=\"Hero Powers Activate\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hero Powers Activate\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHero Powers Activate\u003c/strong\u003e\u003cbr/\u003e\n    Use any Hero Level 3 Ability\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 17, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/df3ccb809e7052ea5e5897b58e94548a5e707047.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/df3ccb809e7052ea5e5897b58e94548a5e707047.jpg\" alt=\"Bigger, Badder\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bigger, Badder\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBigger, Badder\u003c/strong\u003e\u003cbr/\u003e\n    Use any Hero Level 10 Ability\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 17, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/ca9b00893706389bb348d06131e1f98f049d2d13.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/ca9b00893706389bb348d06131e1f98f049d2d13.jpg\" alt=\"Student\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Student\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStudent\u003c/strong\u003e\u003cbr/\u003e\n    Apply your first Monkey Knowledge point\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 17, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/8cf49c1cbf1d63cf7fe5600218fbaff4e4b7ed64.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/8cf49c1cbf1d63cf7fe5600218fbaff4e4b7ed64.jpg\" alt=\"Scholar\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Scholar\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eScholar\u003c/strong\u003e\u003cbr/\u003e\n    Apply 10 Monkey Knowledge points\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 17, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/0feed328d4da8bff3777a305889a80845c074c76.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/0feed328d4da8bff3777a305889a80845c074c76.jpg\" alt=\"Co-operation\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Co-operation\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCo-operation\u003c/strong\u003e\u003cbr/\u003e\n    Beat 1 map in Co-op mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 17, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/a387c0b4943507c7c9ac73e8a16ac17cc6989956.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/a387c0b4943507c7c9ac73e8a16ac17cc6989956.jpg\" alt=\"Monkey Fan Club\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Monkey Fan Club\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMonkey Fan Club\u003c/strong\u003e\u003cbr/\u003e\n    Create or Login to your Ninja Kiwi account to cloud save your progress\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 01, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (144)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/17e4666de844c89becab370e404d2341551d2a50.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/17e4666de844c89becab370e404d2341551d2a50.jpg\" alt=\"Impoppable\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Impoppable\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eImpoppable\u003c/strong\u003e\u003cbr/\u003e\n    Pop 100,000,000 bloons\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/954cc2e6b10d3958871f0e19eef7a327ce247f84.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/954cc2e6b10d3958871f0e19eef7a327ce247f84.jpg\" alt=\"MOAB Assassin\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: MOAB Assassin\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMOAB Assassin\u003c/strong\u003e\u003cbr/\u003e\n    Destroy 25,000 MOABs\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/abdcac9f04093efd648e1c49b703c6fb44de8c46.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/abdcac9f04093efd648e1c49b703c6fb44de8c46.jpg\" alt=\"BFB Brawler\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: BFB Brawler\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBFB Brawler\u003c/strong\u003e\u003cbr/\u003e\n    Destroy 10,000 BFBs\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/345107f3436d85d84bc9557cd0e8853a2a741fe0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/345107f3436d85d84bc9557cd0e8853a2a741fe0.jpg\" alt=\"ZOMGinator\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: ZOMGinator\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eZOMGinator\u003c/strong\u003e\u003cbr/\u003e\n    Destroy 5,000 ZOMGs\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/82d939cc1ef68aab16e665f6f901d64097cc0e9a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/82d939cc1ef68aab16e665f6f901d64097cc0e9a.jpg\" alt=\"Me Did A Job On DDT\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Me Did A Job On DDT\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMe Did A Job On DDT\u003c/strong\u003e\u003cbr/\u003e\n    Destroy 5,000 DDTs\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/e0dd9b630d15845e872e986da2114f3f5af4b4c9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/e0dd9b630d15845e872e986da2114f3f5af4b4c9.jpg\" alt=\"Sapper\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sapper\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSapper\u003c/strong\u003e\u003cbr/\u003e\n    Pop 5,000,000 Fortified bloons\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/dde5a5df963eccfdafbee7bc3576374ac61e82e6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/dde5a5df963eccfdafbee7bc3576374ac61e82e6.jpg\" alt=\"Grasshopper\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Grasshopper\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGrasshopper\u003c/strong\u003e\u003cbr/\u003e\n    Wins on 9 different Beginner maps\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/ec7301e5924e8ac0a12e3544015d6c83c47f2672.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/ec7301e5924e8ac0a12e3544015d6c83c47f2672.jpg\" alt=\"Next Level\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Next Level\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNext Level\u003c/strong\u003e\u003cbr/\u003e\n    Win 1 game on an Intermediate map \n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/bc475c16e8ad4cd2a1e55fcfad0a74ded4241882.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/bc475c16e8ad4cd2a1e55fcfad0a74ded4241882.jpg\" alt=\"Acolyte\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Acolyte\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAcolyte\u003c/strong\u003e\u003cbr/\u003e\n    Win games on 5 different Intermediate maps\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/ca154413d95107abf63d29b5a40244372ce0edf6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/ca154413d95107abf63d29b5a40244372ce0edf6.jpg\" alt=\"Advanced Player\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Advanced Player\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAdvanced Player\u003c/strong\u003e\u003cbr/\u003e\n    Win 1 game on an Advanced map \n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/da2b43973d14f5c164325b3513168e68ddb5c686.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/da2b43973d14f5c164325b3513168e68ddb5c686.jpg\" alt=\"Mega Monkey\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mega Monkey\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMega Monkey\u003c/strong\u003e\u003cbr/\u003e\n    Deploy a tier 5 monkey tower\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/03c543755cdd0ef6c24e16830590418c12087a3d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/03c543755cdd0ef6c24e16830590418c12087a3d.jpg\" alt=\"Epic Hero\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Epic Hero\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEpic Hero\u003c/strong\u003e\u003cbr/\u003e\n    Level any Hero to level 20\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/d4292fbf7f11d32da9be38ac038eb07d1808a6b7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/d4292fbf7f11d32da9be38ac038eb07d1808a6b7.jpg\" alt=\"Monkey Avenger League\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Monkey Avenger League\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMonkey Avenger League\u003c/strong\u003e\u003cbr/\u003e\n    Win a game for 4 different Heroes\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/267f960a575346b812c38f081ff21ceacf592e26.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/267f960a575346b812c38f081ff21ceacf592e26.jpg\" alt=\"You\u0026#39;ve Got The Power\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: You\u0026#39;ve Got The Power\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou\u0026#39;ve Got The Power\u003c/strong\u003e\u003cbr/\u003e\n    Use Powers for the first time\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/65224ab89b36148c27eb5b5d6c97cdfc89bfcd6d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/65224ab89b36148c27eb5b5d6c97cdfc89bfcd6d.jpg\" alt=\"Power User\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Power User\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePower User\u003c/strong\u003e\u003cbr/\u003e\n    Use Powers 25 times\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/97eb0b1dd875a18b94a551dcea0e46a53124d3e7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/97eb0b1dd875a18b94a551dcea0e46a53124d3e7.jpg\" alt=\"Empowered\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Empowered\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEmpowered\u003c/strong\u003e\u003cbr/\u003e\n    Use Powers 100 times\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/5df36795e1c348f5e74d26d648f2abd7fc9e1787.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/5df36795e1c348f5e74d26d648f2abd7fc9e1787.jpg\" alt=\"Knowledgeable Primate\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Knowledgeable Primate\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKnowledgeable Primate\u003c/strong\u003e\u003cbr/\u003e\n    Unlock all Monkey Knowledge in one branch\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/a595532b9dffab4ce6fe2924707eace68a869abf.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/a595532b9dffab4ce6fe2924707eace68a869abf.jpg\" alt=\"Dr. Monkey\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Dr. Monkey\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDr. Monkey\u003c/strong\u003e\u003cbr/\u003e\n    Spend 106 Monkey Knowledge points\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/074ce70dfe50ed5e26fbdfe42d654c51742e5a97.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/074ce70dfe50ed5e26fbdfe42d654c51742e5a97.jpg\" alt=\"First Monkeys First\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: First Monkeys First\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFirst Monkeys First\u003c/strong\u003e\u003cbr/\u003e\n    Win 10 games using only Primary monkeys\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/66f4ae12a3c9d05417c90c50ef05998f337eef87.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/66f4ae12a3c9d05417c90c50ef05998f337eef87.jpg\" alt=\"War Monkeys\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: War Monkeys\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWar Monkeys\u003c/strong\u003e\u003cbr/\u003e\n    Win 10 games using only Military monkeys\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/0cfe9d6a8fcb806ba4c2f1f0f101a99e905c1a52.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/0cfe9d6a8fcb806ba4c2f1f0f101a99e905c1a52.jpg\" alt=\"Abracadabmonkey\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Abracadabmonkey\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAbracadabmonkey\u003c/strong\u003e\u003cbr/\u003e\n    Win 10 games using only Magic monkeys\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/d5b76d63d005a5d2631bb5db73cd33d7f8068a05.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/d5b76d63d005a5d2631bb5db73cd33d7f8068a05.jpg\" alt=\"Unsung Monkeys\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Unsung Monkeys\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUnsung Monkeys\u003c/strong\u003e\u003cbr/\u003e\n    Win 10 games using only Support monkeys\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/2d00018a8203c9405f842a77cf88e8338aceb7b9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/2d00018a8203c9405f842a77cf88e8338aceb7b9.jpg\" alt=\"Inflated\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Inflated\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInflated\u003c/strong\u003e\u003cbr/\u003e\n    Beat round 100 in Deflation mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/47b467f3b8f8942f91120fe3c3d8c6a46d49a546.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/47b467f3b8f8942f91120fe3c3d8c6a46d49a546.jpg\" alt=\"Survivor\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Survivor\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSurvivor\u003c/strong\u003e\u003cbr/\u003e\n    Beat round 100 in Apopalypse mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/091f1335188e0a769bcd04c598495ad0027cf08c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/091f1335188e0a769bcd04c598495ad0027cf08c.jpg\" alt=\"Indie\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Indie\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIndie\u003c/strong\u003e\u003cbr/\u003e\n    Win 25 games with Alternate Bloon Rounds\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/48a1d90d755a0daecad9341ed9eb06545c0f6ca8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/48a1d90d755a0daecad9341ed9eb06545c0f6ca8.jpg\" alt=\"Poppable\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Poppable\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePoppable\u003c/strong\u003e\u003cbr/\u003e\n    Win 25 games on Impoppable Difficulty\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/6d1346f3aaf84c7eddcf86d4fb9efbd215cb6dc6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/6d1346f3aaf84c7eddcf86d4fb9efbd215cb6dc6.jpg\" alt=\"Thrifty\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Thrifty\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThrifty\u003c/strong\u003e\u003cbr/\u003e\n    Win 10 games in Half Cash mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/493b6ce1f3a3d3555a229a19e8c1bd2bfcf5bb06.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/493b6ce1f3a3d3555a229a19e8c1bd2bfcf5bb06.jpg\" alt=\"Bloonzilla!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bloonzilla!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBloonzilla!\u003c/strong\u003e\u003cbr/\u003e\n    Win 25 games against Double HP MOABs\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/8f4a119fcbef820228821caed0997ea0ac86ca04.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/8f4a119fcbef820228821caed0997ea0ac86ca04.jpg\" alt=\"Role Reverser\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Role Reverser\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRole Reverser\u003c/strong\u003e\u003cbr/\u003e\n    Win a game in Reverse mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/ea1f1fb1340823eaba9b3bb6e2c9e4b0a32ea9da.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/ea1f1fb1340823eaba9b3bb6e2c9e4b0a32ea9da.jpg\" alt=\"Medal Winner\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Medal Winner\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMedal Winner\u003c/strong\u003e\u003cbr/\u003e\n    Get all medals for a map\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/57cb2477e40e51123ba29a93c53a6c400e2f7d81.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/57cb2477e40e51123ba29a93c53a6c400e2f7d81.jpg\" alt=\"Decorated Hero\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Decorated Hero\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDecorated Hero\u003c/strong\u003e\u003cbr/\u003e\n    Get 36 medals on Beginner maps\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/9854717dc3e6fabe74981b298889a3df48ed8619.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/9854717dc3e6fabe74981b298889a3df48ed8619.jpg\" alt=\"Red And Blue Makes...\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Red And Blue Makes...\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRed And Blue Makes...\u003c/strong\u003e\u003cbr/\u003e\n    Pop 100,000 Purple bloons\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/e59ff6d41a6ec4001a8bfeb47b5ea29b7ee31164.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/e59ff6d41a6ec4001a8bfeb47b5ea29b7ee31164.jpg\" alt=\"Infrared\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Infrared\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInfrared\u003c/strong\u003e\u003cbr/\u003e\n    Pop 250,000 Camo bloons\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/a0dfa37c4b361fb281af7d8c82e4c02cf95b8b65.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/a0dfa37c4b361fb281af7d8c82e4c02cf95b8b65.jpg\" alt=\"Our Powers Combined\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Our Powers Combined\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOur Powers Combined\u003c/strong\u003e\u003cbr/\u003e\n    Collect at least 12 different Powers\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/9df9d249f0a5518e7e4fe718c35cf4e8cae2f3e2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/9df9d249f0a5518e7e4fe718c35cf4e8cae2f3e2.jpg\" alt=\"Challenger\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Challenger\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChallenger\u003c/strong\u003e\u003cbr/\u003e\n    Win 1 Daily Challenge\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/ca37a171f772ff645359b2da46a078a0e8af850e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/ca37a171f772ff645359b2da46a078a0e8af850e.jpg\" alt=\"Challenge Apprentice\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Challenge Apprentice\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChallenge Apprentice\u003c/strong\u003e\u003cbr/\u003e\n    Win 10 Daily Challenges\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/f73c370450042669c61eeff760bccc25058bb058.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/f73c370450042669c61eeff760bccc25058bb058.jpg\" alt=\"Challenge Master\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Challenge Master\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChallenge Master\u003c/strong\u003e\u003cbr/\u003e\n    Win 100 Daily Challenges\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/593a98462d8a9da4245e1180b83e66d594da909f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/593a98462d8a9da4245e1180b83e66d594da909f.jpg\" alt=\"Perfect Week\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Perfect Week\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePerfect Week\u003c/strong\u003e\u003cbr/\u003e\n    Complete all Daily Challenges in a week\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/42a2fd3e24acdf48cc92b2aafe98441d59157462.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/42a2fd3e24acdf48cc92b2aafe98441d59157462.jpg\" alt=\"Bloons Master\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bloons Master\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBloons Master\u003c/strong\u003e\u003cbr/\u003e\n    Beat 1 map in CHIMPS mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/c395536c636e1604ca4fb876894d7c15ba2432d1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/c395536c636e1604ca4fb876894d7c15ba2432d1.jpg\" alt=\"Superior Bloons Master\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Superior Bloons Master\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSuperior Bloons Master\u003c/strong\u003e\u003cbr/\u003e\n    Beat 5 maps in CHIMPS mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/bdb3cc101ff62119f132f5911656b890f304fd27.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/bdb3cc101ff62119f132f5911656b890f304fd27.jpg\" alt=\"Ultimate Bloons Master\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ultimate Bloons Master\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUltimate Bloons Master\u003c/strong\u003e\u003cbr/\u003e\n    Beat 15 maps in CHIMPS mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/b577631d522979c36644e2ccc2b93a3e7b183d11.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/b577631d522979c36644e2ccc2b93a3e7b183d11.jpg\" alt=\"Super BAD\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Super BAD\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSuper BAD\u003c/strong\u003e\u003cbr/\u003e\n    Destroy 1,000 BADs\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/a1f3434e5a31df258a8297628caf3df48524f823.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/a1f3434e5a31df258a8297628caf3df48524f823.jpg\" alt=\"Four times the fun\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Four times the fun\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFour times the fun\u003c/strong\u003e\u003cbr/\u003e\n    Beat 1 map in 4-player Co-op mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/7c3a29d907f49e5b9644d097613dee3cfef47bf3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/7c3a29d907f49e5b9644d097613dee3cfef47bf3.jpg\" alt=\"Triple threat\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Triple threat\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTriple threat\u003c/strong\u003e\u003cbr/\u003e\n    Beat 1 map in 3-player Co-op mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/d4292fbf7f11d32da9be38ac038eb07d1808a6b7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/d4292fbf7f11d32da9be38ac038eb07d1808a6b7.jpg\" alt=\"Collaborate!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Collaborate!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCollaborate!\u003c/strong\u003e\u003cbr/\u003e\n    Have 4 Heroes on screen at once\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/b36ea59b9f934ace751c0158d86f4f605164c93c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/b36ea59b9f934ace751c0158d86f4f605164c93c.jpg\" alt=\"When the going gets tough...\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: When the going gets tough...\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhen the going gets tough...\u003c/strong\u003e\u003cbr/\u003e\n    Win 10 games on Hard difficulty in Co-op mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/336785f8f7c33d84ae73a6929f0b04b9e9395896.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/336785f8f7c33d84ae73a6929f0b04b9e9395896.jpg\" alt=\"Kind Benefactor\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Kind Benefactor\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKind Benefactor\u003c/strong\u003e\u003cbr/\u003e\n    Give 10,000 Cash in Co-op mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/b2c638812009ff4386ea04618fd2b4a12de91d13.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/b2c638812009ff4386ea04618fd2b4a12de91d13.jpg\" alt=\"Generous Benefactor\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Generous Benefactor\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGenerous Benefactor\u003c/strong\u003e\u003cbr/\u003e\n    Give 50,000 Cash in Co-op mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/a7dfe1073181b0a56525e2933edaf8517234a3ed.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/a7dfe1073181b0a56525e2933edaf8517234a3ed.jpg\" alt=\"Monkey Contributor\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Monkey Contributor\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMonkey Contributor\u003c/strong\u003e\u003cbr/\u003e\n    Give 100,000 Cash in Co-op mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/f76f1d970ff85b4d98b5b870faef26af8234edb8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/f76f1d970ff85b4d98b5b870faef26af8234edb8.jpg\" alt=\"Monkey Philanthropist\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Monkey Philanthropist\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMonkey Philanthropist\u003c/strong\u003e\u003cbr/\u003e\n    Give 1,000,000 Cash in Co-op mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/56e289b5e6e41f41cf650f476a9c45fbaf73a704.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/56e289b5e6e41f41cf650f476a9c45fbaf73a704.jpg\" alt=\"Powershare\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Powershare\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePowershare\u003c/strong\u003e\u003cbr/\u003e\n    Use 10 Powers in Co-op mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/97eb0b1dd875a18b94a551dcea0e46a53124d3e7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/97eb0b1dd875a18b94a551dcea0e46a53124d3e7.jpg\" alt=\"Power overwhelming!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Power overwhelming!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePower overwhelming!\u003c/strong\u003e\u003cbr/\u003e\n    Use 100 Powers in Co-op mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/ce8271caeb1cf79af829dc4f42c57dc59fa11997.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/ce8271caeb1cf79af829dc4f42c57dc59fa11997.jpg\" alt=\"Insta-defense\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Insta-defense\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInsta-defense\u003c/strong\u003e\u003cbr/\u003e\n    Use 5 Insta-Monkeys in Co-op mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/90319d70cf6b31eb86b3899931c25620a6c456e7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/90319d70cf6b31eb86b3899931c25620a6c456e7.jpg\" alt=\"Co-op Popper\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Co-op Popper\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCo-op Popper\u003c/strong\u003e\u003cbr/\u003e\n    Pop 10,000,000 Bloons in Co-op mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/8807d37c66499b56748d039d19e14b1f22afe18a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/8807d37c66499b56748d039d19e14b1f22afe18a.jpg\" alt=\"Big Bloons\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Big Bloons\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBig Bloons\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/8807d37c66499b56748d039d19e14b1f22afe18a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/8807d37c66499b56748d039d19e14b1f22afe18a.jpg\" alt=\"Alchermistman and Bloonacleboy\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Alchermistman and Bloonacleboy\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAlchermistman and Bloonacleboy\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/ce05410c980a0e1db0ed4b7ed2ff9bfc93c78749.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/ce05410c980a0e1db0ed4b7ed2ff9bfc93c78749.jpg\" alt=\"2TC\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: 2TC\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e2TC\u003c/strong\u003e\u003cbr/\u003e\n    Complete a game in CHIMPS Difficulty with only 2 towers\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/4c374a7cd76bd64e85a3c2e68f23b747389047f2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/4c374a7cd76bd64e85a3c2e68f23b747389047f2.jpg\" alt=\"Snap of your fingers\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Snap of your fingers\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSnap of your fingers\u003c/strong\u003e\u003cbr/\u003e\n    Finish a game with exactly half your starting lives and half your starting cash\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/26c057a4f34a8b452ea00fef2449e8499e50c73e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/26c057a4f34a8b452ea00fef2449e8499e50c73e.jpg\" alt=\"Bill Greates\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bill Greates\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBill Greates\u003c/strong\u003e\u003cbr/\u003e\n    Send $500,000 to an ally in co-op in one go\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/c64983a1128101ecdfa8487a02c13877301824b3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/c64983a1128101ecdfa8487a02c13877301824b3.jpg\" alt=\"Bloontona 500\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bloontona 500\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBloontona 500\u003c/strong\u003e\u003cbr/\u003e\n    Gain entry to 500 Races\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/e803675346669cfee2bae6b44ee491f29ca5f872.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/e803675346669cfee2bae6b44ee491f29ca5f872.jpg\" alt=\"Rookie of the year\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Rookie of the year\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRookie of the year\u003c/strong\u003e\u003cbr/\u003e\n    Complete a Race in under 10 minutes\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/3a974c03ada31cebf212d7dcced31dea0e169c7c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/3a974c03ada31cebf212d7dcced31dea0e169c7c.jpg\" alt=\"Rising star\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Rising star\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRising star\u003c/strong\u003e\u003cbr/\u003e\n    Complete a Race in under 5 minutes\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/6602ccc62c987727d5f477e46ca1797dd752ae4f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/6602ccc62c987727d5f477e46ca1797dd752ae4f.jpg\" alt=\"Top of your game\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Top of your game\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTop of your game\u003c/strong\u003e\u003cbr/\u003e\n    Complete any Race in under 3 minutes\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/a551e4f8e20a0f194a49c4f87ee1bbddf0eee91f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/a551e4f8e20a0f194a49c4f87ee1bbddf0eee91f.jpg\" alt=\"The greatest challenge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The greatest challenge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe greatest challenge\u003c/strong\u003e\u003cbr/\u003e\n    Create or Play 200 Challenges\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/85aa5306301c31491fadd81e6fa24bc6c98529a8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/85aa5306301c31491fadd81e6fa24bc6c98529a8.jpg\" alt=\"Lookin fab\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Lookin fab\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLookin fab\u003c/strong\u003e\u003cbr/\u003e\n    Win 100 games using a skin of any Hero\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/5ed2ff54245ee1aed01938d549437784c25ba345.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/5ed2ff54245ee1aed01938d549437784c25ba345.jpg\" alt=\"Therpopylae\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Therpopylae\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTherpopylae\u003c/strong\u003e\u003cbr/\u003e\n    Pop 200,000 Bloons on Peninsula\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/19ff283bfa1637baec22719a61e58b4837e98b35.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/19ff283bfa1637baec22719a61e58b4837e98b35.jpg\" alt=\"Bloon Master Populous\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bloon Master Populous\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBloon Master Populous\u003c/strong\u003e\u003cbr/\u003e\n    Deal 1 billion damage with the Bloon Master Alchemist\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/149747a401bc59c6d0f208cc2865ea8a3f393e78.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/149747a401bc59c6d0f208cc2865ea8a3f393e78.jpg\" alt=\"I see you\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: I see you\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI see you\u003c/strong\u003e\u003cbr/\u003e\n    Reveal 10,000 Bloons using Shimmer\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/10ba6beebd5785a3cbad3693484ba82d6573566d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/10ba6beebd5785a3cbad3693484ba82d6573566d.jpg\" alt=\"Tetrimino\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tetrimino\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTetrimino\u003c/strong\u003e\u003cbr/\u003e\n    Place 50 Monkeys on a map at once\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/0dfca733ce66817765da1876e52ec8a2c20b9263.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/0dfca733ce66817765da1876e52ec8a2c20b9263.jpg\" alt=\"All for one and one for one\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: All for one and one for one\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAll for one and one for one\u003c/strong\u003e\u003cbr/\u003e\n    Win a game with only 1 Monkey on screen at any one time in any Hard Difficulty game\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/2265e2daabdff07a3bbc1851aed896adf37712ea.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/2265e2daabdff07a3bbc1851aed896adf37712ea.jpg\" alt=\"Master of Life\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Master of Life\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaster of Life\u003c/strong\u003e\u003cbr/\u003e\n    Have 1000 lives at once in a single game\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/716b549624447f7a176d3be35262fb469e0bd8fa.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/716b549624447f7a176d3be35262fb469e0bd8fa.jpg\" alt=\"Rainbow is Magic\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Rainbow is Magic\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRainbow is Magic\u003c/strong\u003e\u003cbr/\u003e\n    Pop 20,000 Rainbow Bloons with Magic Monkeys\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/8807d37c66499b56748d039d19e14b1f22afe18a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/8807d37c66499b56748d039d19e14b1f22afe18a.jpg\" alt=\"Strangely Adorable\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Strangely Adorable\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStrangely Adorable\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/8807d37c66499b56748d039d19e14b1f22afe18a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/8807d37c66499b56748d039d19e14b1f22afe18a.jpg\" alt=\"Josh\u0026#39;s Constant\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Josh\u0026#39;s Constant\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJosh\u0026#39;s Constant\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/07e06028f1f47ca99ce691757b680a3618d323bc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/07e06028f1f47ca99ce691757b680a3618d323bc.jpg\" alt=\"What did it cost? - Everything:\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: What did it cost? - Everything:\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhat did it cost? - Everything:\u003c/strong\u003e\u003cbr/\u003e\n    Sacrifice every tower type in the game to the Temple\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/cd660c45a931729821a8fe3edd9940a01d567484.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/cd660c45a931729821a8fe3edd9940a01d567484.jpg\" alt=\"2 MegaPops\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: 2 MegaPops\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e2 MegaPops\u003c/strong\u003e\u003cbr/\u003e\n    Complete a game of CHIMPS with more than 2 million damage dealt by one tower\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/1d77e1025a9a272aa47d3abb1ad89093c648695b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/1d77e1025a9a272aa47d3abb1ad89093c648695b.jpg\" alt=\"A Crate Time\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Crate Time\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Crate Time\u003c/strong\u003e\u003cbr/\u003e\n    Open a Diamond Crate in any Collection Event\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/56b090f6a63ffb77a7a7e1ff79bbdadae69dde77.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/56b090f6a63ffb77a7a7e1ff79bbdadae69dde77.jpg\" alt=\"Axis of Havoc\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Axis of Havoc\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAxis of Havoc\u003c/strong\u003e\u003cbr/\u003e\n    Have one of each T5 sniper in one game of CHIMPS\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/950f4d535657a276aefcf78ee8c4202d240efe93.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/950f4d535657a276aefcf78ee8c4202d240efe93.jpg\" alt=\"Tower Keeper\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tower Keeper\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTower Keeper\u003c/strong\u003e\u003cbr/\u003e\n    Have 200 insta-monkeys in your inventory at one time\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/2ffa9be5aee3f07f1073f26d1ea19e1a14fbf284.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/2ffa9be5aee3f07f1073f26d1ea19e1a14fbf284.jpg\" alt=\"A year in the making\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A year in the making\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA year in the making\u003c/strong\u003e\u003cbr/\u003e\n    Open the Daily Chest 365 times\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/37b0e8cb688e33bd3e94339d28ac47a2c8d7ed3d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/37b0e8cb688e33bd3e94339d28ac47a2c8d7ed3d.jpg\" alt=\"Kali Maaaaaaaa\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Kali Maaaaaaaa\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKali Maaaaaaaa\u003c/strong\u003e\u003cbr/\u003e\n    Gain 10 levels for Adora in one round\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/8807d37c66499b56748d039d19e14b1f22afe18a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/8807d37c66499b56748d039d19e14b1f22afe18a.jpg\" alt=\"Golden Ticket\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Golden Ticket\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGolden Ticket\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/74aa7dd7f555ec7e42837831a79fd0d7ccc5bda5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/74aa7dd7f555ec7e42837831a79fd0d7ccc5bda5.jpg\" alt=\"Adventurer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Adventurer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAdventurer\u003c/strong\u003e\u003cbr/\u003e\n    Complete an Odyssey\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/eb4987e61c735a02c8d6f2e20026e39721ab3c77.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/eb4987e61c735a02c8d6f2e20026e39721ab3c77.jpg\" alt=\"Seasoned Adventurer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Seasoned Adventurer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSeasoned Adventurer\u003c/strong\u003e\u003cbr/\u003e\n    Complete a Hard Odyssey\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/7cc4547fc4c3dd4cda6f39e0ced235e4c02d98b9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/7cc4547fc4c3dd4cda6f39e0ced235e4c02d98b9.jpg\" alt=\"No Stone Left Unturned\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: No Stone Left Unturned\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNo Stone Left Unturned\u003c/strong\u003e\u003cbr/\u003e\n    Complete all 3 difficulties of a single Odyssey\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/927ef1d057a69e883aecfa290698a1a14a4dcd71.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/927ef1d057a69e883aecfa290698a1a14a4dcd71.jpg\" alt=\"12 Tasks of Monk-ules\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: 12 Tasks of Monk-ules\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e12 Tasks of Monk-ules\u003c/strong\u003e\u003cbr/\u003e\n    Complete 12 different Odysseys\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/574ba033e66adb494ba4dc9443dfee88e5f7ddd9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/574ba033e66adb494ba4dc9443dfee88e5f7ddd9.jpg\" alt=\"Modysseus Rises\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Modysseus Rises\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eModysseus Rises\u003c/strong\u003e\u003cbr/\u003e\n    Complete 50 Odysseys\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/3b2cc14ae1018c404d1069d67d6610e88a189aa5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/3b2cc14ae1018c404d1069d67d6610e88a189aa5.jpg\" alt=\"Modysseus Forever\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Modysseus Forever\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eModysseus Forever\u003c/strong\u003e\u003cbr/\u003e\n    Complete 100 Odysseys\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/c1b9fd144ea51ebfbaef4bb1b87636806cc9abcc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/c1b9fd144ea51ebfbaef4bb1b87636806cc9abcc.jpg\" alt=\"Full Speed Ahead!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Full Speed Ahead!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFull Speed Ahead!\u003c/strong\u003e\u003cbr/\u003e\n    Complete an Odyssey in under 1 hour\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/05d7c9c14bfe5e3ff110652855f8ca9d6c0b712b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/05d7c9c14bfe5e3ff110652855f8ca9d6c0b712b.jpg\" alt=\"All About That Bling\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: All About That Bling\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAll About That Bling\u003c/strong\u003e\u003cbr/\u003e\n    Purchase a Trophy Store item\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/d3cffe557ff6afbc10ab0ceb0cb0642a9f83c590.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/d3cffe557ff6afbc10ab0ceb0cb0642a9f83c590.jpg\" alt=\"Mo Heroes, Mo Problems\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mo Heroes, Mo Problems\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMo Heroes, Mo Problems\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/8807d37c66499b56748d039d19e14b1f22afe18a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/8807d37c66499b56748d039d19e14b1f22afe18a.jpg\" alt=\"Chunky Monkeys\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Chunky Monkeys\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChunky Monkeys\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/6e9b1364379bc1213bda913669e4bba52785eb89.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/6e9b1364379bc1213bda913669e4bba52785eb89.jpg\" alt=\"Oathbreakers\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Oathbreakers\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOathbreakers\u003c/strong\u003e\u003cbr/\u003e\n    Reanimate 250,000 bloons to fight on your side using the Necromancer Wizard\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/a40e1a24666b59cbe18e6e4864b37e4c64f60b4c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/a40e1a24666b59cbe18e6e4864b37e4c64f60b4c.jpg\" alt=\"Living on the Edge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Living on the Edge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLiving on the Edge\u003c/strong\u003e\u003cbr/\u003e\n    Win any non-CHIMPS/Impoppable game with only 1 life remaining\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/e3a0705a45e569edb73b43ceb4d751217e4f23c0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/e3a0705a45e569edb73b43ceb4d751217e4f23c0.jpg\" alt=\"Freaky Friday\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Freaky Friday\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFreaky Friday\u003c/strong\u003e\u003cbr/\u003e\n    Use the Alchemist\u0026#39;s Transforming Tonic abilities 100 times\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/f30c91486513bc4b41b03f14478b5b10336ec320.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/f30c91486513bc4b41b03f14478b5b10336ec320.jpg\" alt=\"Ready Player One?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ready Player One?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eReady Player One?\u003c/strong\u003e\u003cbr/\u003e\n    Host and win 10 Co-op games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/eb932ed9b86537bf31cceee4a65aea3ffc8d51c6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/eb932ed9b86537bf31cceee4a65aea3ffc8d51c6.jpg\" alt=\"Crash of the Titans\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Crash of the Titans\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCrash of the Titans\u003c/strong\u003e\u003cbr/\u003e\n    Strip the fortifications from Fortified DDTs 3000 times\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/c162bb4c64e138fc1a8955e2959643aada476ca8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/c162bb4c64e138fc1a8955e2959643aada476ca8.jpg\" alt=\"A La Code\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A La Code\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA La Code\u003c/strong\u003e\u003cbr/\u003e\n    Submit a Challenge to the Challenge Browser\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/4e23824114851889ec1205e7fb6b869834b9d5a5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/4e23824114851889ec1205e7fb6b869834b9d5a5.jpg\" alt=\"Regifted\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Regifted\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRegifted\u003c/strong\u003e\u003cbr/\u003e\n    Pop 1,000,000 Bloons with Dartling Gunners\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/6054bb6e63abb39c81afb7586f4fa7f35eb392a6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/6054bb6e63abb39c81afb7586f4fa7f35eb392a6.jpg\" alt=\"Coupon Crazy\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Coupon Crazy\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCoupon Crazy\u003c/strong\u003e\u003cbr/\u003e\n    Spend at least 50 Trophies in the Trophy Store\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/59ad83deb831f8d6befbf3fa65ce1be4e657e0b1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/59ad83deb831f8d6befbf3fa65ce1be4e657e0b1.jpg\" alt=\"Instant Gratification\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Instant Gratification\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInstant Gratification\u003c/strong\u003e\u003cbr/\u003e\n    Use a Tier 5 Insta Monkey. NOTE: even after being used, Instas still count toward your collection!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/e224fd452d0fedc18ced9ac5b0eb23de344a6f5b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/e224fd452d0fedc18ced9ac5b0eb23de344a6f5b.jpg\" alt=\"Insta Century\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Insta Century\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInsta Century\u003c/strong\u003e\u003cbr/\u003e\n    Use 100 Insta Monkeys\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/86499180e62c14eeb6ec2fa6b91541dc71f0b628.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/86499180e62c14eeb6ec2fa6b91541dc71f0b628.jpg\" alt=\"Limited Run\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Limited Run\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLimited Run\u003c/strong\u003e\u003cbr/\u003e\n    Purchase at least 1 new Limited Time item in the Trophy Store\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/87896af993a2bb7923a0403db0f72f75a261be6d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/87896af993a2bb7923a0403db0f72f75a261be6d.jpg\" alt=\"Tools to Darwin\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tools to Darwin\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTools to Darwin\u003c/strong\u003e\u003cbr/\u003e\n    Upgrade towers 20,000 times\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/8807d37c66499b56748d039d19e14b1f22afe18a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/8807d37c66499b56748d039d19e14b1f22afe18a.jpg\" alt=\"Stubborn Strategy\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Stubborn Strategy\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStubborn Strategy\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/67491fe33d45e84c661184f8ccdce1814fd45d99.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/67491fe33d45e84c661184f8ccdce1814fd45d99.jpg\" alt=\"Achievement of Achievements\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Achievement of Achievements\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAchievement of Achievements\u003c/strong\u003e\u003cbr/\u003e\n    Collect 35 achievements\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/cbbafb12082ac681310d9360461818c6b66f6c4c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/cbbafb12082ac681310d9360461818c6b66f6c4c.jpg\" alt=\"Hook, Line, and Sinker\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hook, Line, and Sinker\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHook, Line, and Sinker\u003c/strong\u003e\u003cbr/\u003e\n    Rope in 3,000 MOAB-Class Bloons using the MOAB takedown ability\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/96b944a68cf2ab033731fb9ff532ab096f0a50b3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/96b944a68cf2ab033731fb9ff532ab096f0a50b3.jpg\" alt=\"Moving House\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Moving House\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMoving House\u003c/strong\u003e\u003cbr/\u003e\n    Redeploy 1,000 monkey towers using the Support Chinook\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/e3a7863d23a083d8b7fa611266bf3a7248bfbb6a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/e3a7863d23a083d8b7fa611266bf3a7248bfbb6a.jpg\" alt=\"Social Butterfly\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Social Butterfly\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSocial Butterfly\u003c/strong\u003e\u003cbr/\u003e\n    Use emotes 100 times in co-op games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/b63fe01ffc142a0f9f543827a7e040850dabf68b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/b63fe01ffc142a0f9f543827a7e040850dabf68b.jpg\" alt=\"So Shiny!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: So Shiny!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSo Shiny!\u003c/strong\u003e\u003cbr/\u003e\n    Pop 20 Golden Bloons\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/b56ff400947c97cf2384d35572bc63fab50b06fa.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/b56ff400947c97cf2384d35572bc63fab50b06fa.jpg\" alt=\"Glittering Gold\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Glittering Gold\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGlittering Gold\u003c/strong\u003e\u003cbr/\u003e\n    Pop 100 Golden Bloons\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/37059bc51c53d2b09ee13892d68852aec5c088e4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/37059bc51c53d2b09ee13892d68852aec5c088e4.jpg\" alt=\"Glorious Gold\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Glorious Gold\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGlorious Gold\u003c/strong\u003e\u003cbr/\u003e\n    Pop 500 Golden Bloons\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/2bcdc5d85ee2c4a14633f1c1fe0759a19dc14984.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/2bcdc5d85ee2c4a14633f1c1fe0759a19dc14984.jpg\" alt=\"Magical Gold\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Magical Gold\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMagical Gold\u003c/strong\u003e\u003cbr/\u003e\n    Pop 50 Golden Bloons in Magic Monkeys only mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/e7ec654133128574d2a881e36bb76278bcbb1f61.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/e7ec654133128574d2a881e36bb76278bcbb1f61.jpg\" alt=\"Team Player\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Team Player\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTeam Player\u003c/strong\u003e\u003cbr/\u003e\n    Win 25 times with Monkey Teams\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/8a14c2ac800a0ad6c852f0618313c4009916fe9d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/8a14c2ac800a0ad6c852f0618313c4009916fe9d.jpg\" alt=\"Team Captain\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Team Captain\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTeam Captain\u003c/strong\u003e\u003cbr/\u003e\n    Win 50 times with Monkey Teams\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/f307254d3033da888e8747d3f1df94278fb9da2d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/f307254d3033da888e8747d3f1df94278fb9da2d.jpg\" alt=\"Ultimate Team-up\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ultimate Team-up\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUltimate Team-up\u003c/strong\u003e\u003cbr/\u003e\n    Win 100 times with Monkey Teams\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/cb3a95c5f236c6fd1829d3d569f84a848ee348c2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/cb3a95c5f236c6fd1829d3d569f84a848ee348c2.jpg\" alt=\"What is this new Bloonery?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: What is this new Bloonery?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhat is this new Bloonery?\u003c/strong\u003e\u003cbr/\u003e\n    Defeat a Tier 1 Boss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/d1aad0d6ccdca2285aa7fea1e96b9df453867914.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/d1aad0d6ccdca2285aa7fea1e96b9df453867914.jpg\" alt=\"Who\u0026#39;s the Boss?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Who\u0026#39;s the Boss?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWho\u0026#39;s the Boss?\u003c/strong\u003e\u003cbr/\u003e\n    Defeat a Tier 5 Boss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/9ea182fcd5dceaf8e92c577a51bbf9680380f2bb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/9ea182fcd5dceaf8e92c577a51bbf9680380f2bb.jpg\" alt=\"I\u0026#39;m the Boss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: I\u0026#39;m the Boss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI\u0026#39;m the Boss\u003c/strong\u003e\u003cbr/\u003e\n    Defeat a Tier 5 Elite Boss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/528a7597867a09cd8777d7f86798e1e8edfdbf1f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/528a7597867a09cd8777d7f86798e1e8edfdbf1f.jpg\" alt=\"Apotheosis\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Apotheosis\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eApotheosis\u003c/strong\u003e\u003cbr/\u003e\n    Upgrade to a Monkey Paragon Tower\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/fb07f1010d99dd1c6506c4777d7ec0621f8f798b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/fb07f1010d99dd1c6506c4777d7ec0621f8f798b.jpg\" alt=\"Like a Boss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Like a Boss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLike a Boss\u003c/strong\u003e\u003cbr/\u003e\n    Pop 50 Boss Bloons\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/8807d37c66499b56748d039d19e14b1f22afe18a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/8807d37c66499b56748d039d19e14b1f22afe18a.jpg\" alt=\"Perfect Paragon\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Perfect Paragon\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePerfect Paragon\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/1b8ca7e36915b626156e73b01b4e58794f520a97.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/1b8ca7e36915b626156e73b01b4e58794f520a97.jpg\" alt=\"Davids vs Goliath\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Davids vs Goliath\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDavids vs Goliath\u003c/strong\u003e\u003cbr/\u003e\n    Win a boss battle without using a Hero\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/220daf08097a8becd82542005f82af88dc979e44.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/220daf08097a8becd82542005f82af88dc979e44.jpg\" alt=\"So Spiiicey Ninja Kiwi\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: So Spiiicey Ninja Kiwi\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSo Spiiicey Ninja Kiwi\u003c/strong\u003e\u003cbr/\u003e\n    Beat Spice Islands on Alternate Bloon Rounds with only land towers\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/b9e0fe801db423dc1561ecbdecabbc135f70b9e4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/b9e0fe801db423dc1561ecbdecabbc135f70b9e4.jpg\" alt=\"No Harvest\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: No Harvest\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNo Harvest\u003c/strong\u003e\u003cbr/\u003e\n    Beat Cornfield on CHIMPs without removing any corn\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/71d054b9cfe8a34841a08be96ff0aa238b5484ff.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/71d054b9cfe8a34841a08be96ff0aa238b5484ff.jpg\" alt=\"Student Loans\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Student Loans\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStudent Loans\u003c/strong\u003e\u003cbr/\u003e\n    4 x 10^5 (Go into $400,000 of debt)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/d3cffe557ff6afbc10ab0ceb0cb0642a9f83c590.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/d3cffe557ff6afbc10ab0ceb0cb0642a9f83c590.jpg\" alt=\"Not Lacking Critical Information\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Not Lacking Critical Information\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNot Lacking Critical Information\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/f8aed90cb207cd8b4b459e723e61b99a4a239879.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/f8aed90cb207cd8b4b459e723e61b99a4a239879.jpg\" alt=\"Sticky Situation\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sticky Situation\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSticky Situation\u003c/strong\u003e\u003cbr/\u003e\n    Glue 500,000 Bloons\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/cc0876ab59253ae8b818befc18837c47889c551a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/cc0876ab59253ae8b818befc18837c47889c551a.jpg\" alt=\"Big Spender\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Big Spender\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBig Spender\u003c/strong\u003e\u003cbr/\u003e\n    Spend 1,000,000 cash in one round\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/382e14e28767df1718ccb3145ae32598af8d3c4b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/382e14e28767df1718ccb3145ae32598af8d3c4b.jpg\" alt=\"The Daily Reid\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Daily Reid\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Daily Reid\u003c/strong\u003e\u003cbr/\u003e\n    Win 365 unique daily challenges\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/362d819970f78153ffe0d3c7df3d2d3d481ece29.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/362d819970f78153ffe0d3c7df3d2d3d481ece29.jpg\" alt=\"I\u0026#39;ll Be Back\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: I\u0026#39;ll Be Back\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI\u0026#39;ll Be Back\u003c/strong\u003e\u003cbr/\u003e\n    Spend 1,000 MM on Continues or Checkpoints\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/68ef7b0e8c32c65d97248da34f6a3423c802b4d4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/68ef7b0e8c32c65d97248da34f6a3423c802b4d4.jpg\" alt=\"Conquested Territory\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Conquested Territory\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eConquested Territory\u003c/strong\u003e\u003cbr/\u003e\n    Capture 5 tiles off other players\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/81b8b55e65d58ce493340381a9bd9e37aabc8ac6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/81b8b55e65d58ce493340381a9bd9e37aabc8ac6.jpg\" alt=\"Stage of Empires\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Stage of Empires\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStage of Empires\u003c/strong\u003e\u003cbr/\u003e\n    Capture 50 tiles\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/c9e2edaa9539f989b6ad20df35d2c9f63784cc7a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/c9e2edaa9539f989b6ad20df35d2c9f63784cc7a.jpg\" alt=\"Territory Sampler\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Territory Sampler\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTerritory Sampler\u003c/strong\u003e\u003cbr/\u003e\n    Capture 1 of each: Boss, Time Attack, Least Tiers and Least Cash tiles\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/be9c61697a05fec1e82cfe9134a030f718226036.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/be9c61697a05fec1e82cfe9134a030f718226036.jpg\" alt=\"Invigoration\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Invigoration\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInvigoration\u003c/strong\u003e\u003cbr/\u003e\n    Have 75 buffs active on your Monkeys at once\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/3252f8716f7ce9229b60acf1e84cf38b276bfc50.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/3252f8716f7ce9229b60acf1e84cf38b276bfc50.jpg\" alt=\"Side Quest\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Side Quest\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSide Quest\u003c/strong\u003e\u003cbr/\u003e\n    Complete a Quest\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/bdbd8d6b4f92f659ff993c619f235dbed355cbed.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/bdbd8d6b4f92f659ff993c619f235dbed355cbed.jpg\" alt=\"World League Training\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: World League Training\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWorld League Training\u003c/strong\u003e\u003cbr/\u003e\n    Acquire 150,000 Beast Handler XP\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/00d55f253db9d8c56c246ec2c17b09a0a0c21c62.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/00d55f253db9d8c56c246ec2c17b09a0a0c21c62.jpg\" alt=\"Life Experience\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Life Experience\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLife Experience\u003c/strong\u003e\u003cbr/\u003e\n    Earn 5,368,709 experience for any tower\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/d0a878707ecc03b676049469cea7678b4e5349ec.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/d0a878707ecc03b676049469cea7678b4e5349ec.jpg\" alt=\"Heavy Investment\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Heavy Investment\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHeavy Investment\u003c/strong\u003e\u003cbr/\u003e\n    Invest at least $401,626 extra when creating any Paragon\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/aa4017c142a48d9ae95cbf51df43b97f99f1023f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/aa4017c142a48d9ae95cbf51df43b97f99f1023f.jpg\" alt=\"25 to Life\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: 25 to Life\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e25 to Life\u003c/strong\u003e\u003cbr/\u003e\n    Defeat 5 unique Bosses at Tier 5 (Can be in Boss Event or Challenge Mode)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/115912709b07bd984c94e13f1bb8f13753b59bb1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/115912709b07bd984c94e13f1bb8f13753b59bb1.jpg\" alt=\"Community Connoisseur\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Community Connoisseur\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCommunity Connoisseur\u003c/strong\u003e\u003cbr/\u003e\n    Win 100 different community submissions (Challenges, Odysseys, Maps)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/3d94af99850ba2223aed0ec828a53da6785459e5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/3d94af99850ba2223aed0ec828a53da6785459e5.jpg\" alt=\"Nah, I\u0026#39;d Win\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Nah, I\u0026#39;d Win\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNah, I\u0026#39;d Win\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/008cfb098cd730d1395ed3c72722a422eda29e2f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/008cfb098cd730d1395ed3c72722a422eda29e2f.jpg\" alt=\"They call me Cave Monkey!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: They call me Cave Monkey!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThey call me Cave Monkey!\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/c97546b1ef35bb5572de1776563fc59738495d10.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/c97546b1ef35bb5572de1776563fc59738495d10.jpg\" alt=\"First Steps\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: First Steps\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFirst Steps\u003c/strong\u003e\u003cbr/\u003e\n    Complete the First Time Tutorial Quest\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/960090/library_600x900.jpg\" alt=\"Bloons TD 6 box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/960090/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eBloons TD 6\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 5.88%\"\u003e\n        5.88%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e9/153 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e16.9h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-09-06\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (9)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/4a2ab59b7fc916400fe5b4c626a693941cbf782c.jpg\" alt=\"First Win\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFirst Win\u003c/strong\u003e\u003cbr\u003e\n    1 Non-Tutorial Beginner map Win\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 17, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/daff4f3c044942a80541b673248d2f1bca12ade8.jpg\" alt=\"Big Monkey\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBig Monkey\u003c/strong\u003e\u003cbr\u003e\n    Deploy a tier 4 monkey tower\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 17, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/aebb0d9d5b3f08092cd3fc957fcf49e57f3c42cf.jpg\" alt=\"Hero Time\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHero Time\u003c/strong\u003e\u003cbr\u003e\n    Deploy a Hero on a non-tutorial map\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 17, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/14a6294547ba08c15201a962fa48d006dabba61f.jpg\" alt=\"Hero Powers Activate\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHero Powers Activate\u003c/strong\u003e\u003cbr\u003e\n    Use any Hero Level 3 Ability\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 17, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/df3ccb809e7052ea5e5897b58e94548a5e707047.jpg\" alt=\"Bigger, Badder\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBigger, Badder\u003c/strong\u003e\u003cbr\u003e\n    Use any Hero Level 10 Ability\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 17, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/ca9b00893706389bb348d06131e1f98f049d2d13.jpg\" alt=\"Student\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStudent\u003c/strong\u003e\u003cbr\u003e\n    Apply your first Monkey Knowledge point\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 17, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/8cf49c1cbf1d63cf7fe5600218fbaff4e4b7ed64.jpg\" alt=\"Scholar\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eScholar\u003c/strong\u003e\u003cbr\u003e\n    Apply 10 Monkey Knowledge points\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 17, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/0feed328d4da8bff3777a305889a80845c074c76.jpg\" alt=\"Co-operation\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCo-operation\u003c/strong\u003e\u003cbr\u003e\n    Beat 1 map in Co-op mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 17, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/a387c0b4943507c7c9ac73e8a16ac17cc6989956.jpg\" alt=\"Monkey Fan Club\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMonkey Fan Club\u003c/strong\u003e\u003cbr\u003e\n    Create or Login to your Ninja Kiwi account to cloud save your progress\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 01, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (144)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/17e4666de844c89becab370e404d2341551d2a50.jpg\" alt=\"Impoppable\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eImpoppable\u003c/strong\u003e\u003cbr\u003e\n    Pop 100,000,000 bloons\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/954cc2e6b10d3958871f0e19eef7a327ce247f84.jpg\" alt=\"MOAB Assassin\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMOAB Assassin\u003c/strong\u003e\u003cbr\u003e\n    Destroy 25,000 MOABs\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/abdcac9f04093efd648e1c49b703c6fb44de8c46.jpg\" alt=\"BFB Brawler\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBFB Brawler\u003c/strong\u003e\u003cbr\u003e\n    Destroy 10,000 BFBs\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/345107f3436d85d84bc9557cd0e8853a2a741fe0.jpg\" alt=\"ZOMGinator\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eZOMGinator\u003c/strong\u003e\u003cbr\u003e\n    Destroy 5,000 ZOMGs\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/82d939cc1ef68aab16e665f6f901d64097cc0e9a.jpg\" alt=\"Me Did A Job On DDT\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMe Did A Job On DDT\u003c/strong\u003e\u003cbr\u003e\n    Destroy 5,000 DDTs\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/e0dd9b630d15845e872e986da2114f3f5af4b4c9.jpg\" alt=\"Sapper\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSapper\u003c/strong\u003e\u003cbr\u003e\n    Pop 5,000,000 Fortified bloons\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/dde5a5df963eccfdafbee7bc3576374ac61e82e6.jpg\" alt=\"Grasshopper\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGrasshopper\u003c/strong\u003e\u003cbr\u003e\n    Wins on 9 different Beginner maps\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/ec7301e5924e8ac0a12e3544015d6c83c47f2672.jpg\" alt=\"Next Level\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNext Level\u003c/strong\u003e\u003cbr\u003e\n    Win 1 game on an Intermediate map \n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/bc475c16e8ad4cd2a1e55fcfad0a74ded4241882.jpg\" alt=\"Acolyte\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAcolyte\u003c/strong\u003e\u003cbr\u003e\n    Win games on 5 different Intermediate maps\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/ca154413d95107abf63d29b5a40244372ce0edf6.jpg\" alt=\"Advanced Player\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAdvanced Player\u003c/strong\u003e\u003cbr\u003e\n    Win 1 game on an Advanced map \n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/da2b43973d14f5c164325b3513168e68ddb5c686.jpg\" alt=\"Mega Monkey\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMega Monkey\u003c/strong\u003e\u003cbr\u003e\n    Deploy a tier 5 monkey tower\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/03c543755cdd0ef6c24e16830590418c12087a3d.jpg\" alt=\"Epic Hero\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEpic Hero\u003c/strong\u003e\u003cbr\u003e\n    Level any Hero to level 20\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/d4292fbf7f11d32da9be38ac038eb07d1808a6b7.jpg\" alt=\"Monkey Avenger League\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMonkey Avenger League\u003c/strong\u003e\u003cbr\u003e\n    Win a game for 4 different Heroes\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/267f960a575346b812c38f081ff21ceacf592e26.jpg\" alt=\"You've Got The Power\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou've Got The Power\u003c/strong\u003e\u003cbr\u003e\n    Use Powers for the first time\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/65224ab89b36148c27eb5b5d6c97cdfc89bfcd6d.jpg\" alt=\"Power User\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePower User\u003c/strong\u003e\u003cbr\u003e\n    Use Powers 25 times\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/97eb0b1dd875a18b94a551dcea0e46a53124d3e7.jpg\" alt=\"Empowered\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEmpowered\u003c/strong\u003e\u003cbr\u003e\n    Use Powers 100 times\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/5df36795e1c348f5e74d26d648f2abd7fc9e1787.jpg\" alt=\"Knowledgeable Primate\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKnowledgeable Primate\u003c/strong\u003e\u003cbr\u003e\n    Unlock all Monkey Knowledge in one branch\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/a595532b9dffab4ce6fe2924707eace68a869abf.jpg\" alt=\"Dr. Monkey\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDr. Monkey\u003c/strong\u003e\u003cbr\u003e\n    Spend 106 Monkey Knowledge points\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/074ce70dfe50ed5e26fbdfe42d654c51742e5a97.jpg\" alt=\"First Monkeys First\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFirst Monkeys First\u003c/strong\u003e\u003cbr\u003e\n    Win 10 games using only Primary monkeys\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/66f4ae12a3c9d05417c90c50ef05998f337eef87.jpg\" alt=\"War Monkeys\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWar Monkeys\u003c/strong\u003e\u003cbr\u003e\n    Win 10 games using only Military monkeys\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/0cfe9d6a8fcb806ba4c2f1f0f101a99e905c1a52.jpg\" alt=\"Abracadabmonkey\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAbracadabmonkey\u003c/strong\u003e\u003cbr\u003e\n    Win 10 games using only Magic monkeys\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/d5b76d63d005a5d2631bb5db73cd33d7f8068a05.jpg\" alt=\"Unsung Monkeys\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUnsung Monkeys\u003c/strong\u003e\u003cbr\u003e\n    Win 10 games using only Support monkeys\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/2d00018a8203c9405f842a77cf88e8338aceb7b9.jpg\" alt=\"Inflated\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInflated\u003c/strong\u003e\u003cbr\u003e\n    Beat round 100 in Deflation mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/47b467f3b8f8942f91120fe3c3d8c6a46d49a546.jpg\" alt=\"Survivor\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSurvivor\u003c/strong\u003e\u003cbr\u003e\n    Beat round 100 in Apopalypse mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/091f1335188e0a769bcd04c598495ad0027cf08c.jpg\" alt=\"Indie\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIndie\u003c/strong\u003e\u003cbr\u003e\n    Win 25 games with Alternate Bloon Rounds\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/48a1d90d755a0daecad9341ed9eb06545c0f6ca8.jpg\" alt=\"Poppable\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePoppable\u003c/strong\u003e\u003cbr\u003e\n    Win 25 games on Impoppable Difficulty\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/6d1346f3aaf84c7eddcf86d4fb9efbd215cb6dc6.jpg\" alt=\"Thrifty\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThrifty\u003c/strong\u003e\u003cbr\u003e\n    Win 10 games in Half Cash mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/493b6ce1f3a3d3555a229a19e8c1bd2bfcf5bb06.jpg\" alt=\"Bloonzilla!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBloonzilla!\u003c/strong\u003e\u003cbr\u003e\n    Win 25 games against Double HP MOABs\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/8f4a119fcbef820228821caed0997ea0ac86ca04.jpg\" alt=\"Role Reverser\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRole Reverser\u003c/strong\u003e\u003cbr\u003e\n    Win a game in Reverse mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/ea1f1fb1340823eaba9b3bb6e2c9e4b0a32ea9da.jpg\" alt=\"Medal Winner\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMedal Winner\u003c/strong\u003e\u003cbr\u003e\n    Get all medals for a map\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/57cb2477e40e51123ba29a93c53a6c400e2f7d81.jpg\" alt=\"Decorated Hero\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDecorated Hero\u003c/strong\u003e\u003cbr\u003e\n    Get 36 medals on Beginner maps\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/9854717dc3e6fabe74981b298889a3df48ed8619.jpg\" alt=\"Red And Blue Makes...\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRed And Blue Makes...\u003c/strong\u003e\u003cbr\u003e\n    Pop 100,000 Purple bloons\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/e59ff6d41a6ec4001a8bfeb47b5ea29b7ee31164.jpg\" alt=\"Infrared\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInfrared\u003c/strong\u003e\u003cbr\u003e\n    Pop 250,000 Camo bloons\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/a0dfa37c4b361fb281af7d8c82e4c02cf95b8b65.jpg\" alt=\"Our Powers Combined\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOur Powers Combined\u003c/strong\u003e\u003cbr\u003e\n    Collect at least 12 different Powers\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/9df9d249f0a5518e7e4fe718c35cf4e8cae2f3e2.jpg\" alt=\"Challenger\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChallenger\u003c/strong\u003e\u003cbr\u003e\n    Win 1 Daily Challenge\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/ca37a171f772ff645359b2da46a078a0e8af850e.jpg\" alt=\"Challenge Apprentice\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChallenge Apprentice\u003c/strong\u003e\u003cbr\u003e\n    Win 10 Daily Challenges\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/f73c370450042669c61eeff760bccc25058bb058.jpg\" alt=\"Challenge Master\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChallenge Master\u003c/strong\u003e\u003cbr\u003e\n    Win 100 Daily Challenges\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/593a98462d8a9da4245e1180b83e66d594da909f.jpg\" alt=\"Perfect Week\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePerfect Week\u003c/strong\u003e\u003cbr\u003e\n    Complete all Daily Challenges in a week\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/42a2fd3e24acdf48cc92b2aafe98441d59157462.jpg\" alt=\"Bloons Master\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBloons Master\u003c/strong\u003e\u003cbr\u003e\n    Beat 1 map in CHIMPS mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/c395536c636e1604ca4fb876894d7c15ba2432d1.jpg\" alt=\"Superior Bloons Master\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSuperior Bloons Master\u003c/strong\u003e\u003cbr\u003e\n    Beat 5 maps in CHIMPS mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/bdb3cc101ff62119f132f5911656b890f304fd27.jpg\" alt=\"Ultimate Bloons Master\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUltimate Bloons Master\u003c/strong\u003e\u003cbr\u003e\n    Beat 15 maps in CHIMPS mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/b577631d522979c36644e2ccc2b93a3e7b183d11.jpg\" alt=\"Super BAD\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSuper BAD\u003c/strong\u003e\u003cbr\u003e\n    Destroy 1,000 BADs\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/a1f3434e5a31df258a8297628caf3df48524f823.jpg\" alt=\"Four times the fun\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFour times the fun\u003c/strong\u003e\u003cbr\u003e\n    Beat 1 map in 4-player Co-op mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/7c3a29d907f49e5b9644d097613dee3cfef47bf3.jpg\" alt=\"Triple threat\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTriple threat\u003c/strong\u003e\u003cbr\u003e\n    Beat 1 map in 3-player Co-op mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/d4292fbf7f11d32da9be38ac038eb07d1808a6b7.jpg\" alt=\"Collaborate!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCollaborate!\u003c/strong\u003e\u003cbr\u003e\n    Have 4 Heroes on screen at once\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/b36ea59b9f934ace751c0158d86f4f605164c93c.jpg\" alt=\"When the going gets tough...\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhen the going gets tough...\u003c/strong\u003e\u003cbr\u003e\n    Win 10 games on Hard difficulty in Co-op mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/336785f8f7c33d84ae73a6929f0b04b9e9395896.jpg\" alt=\"Kind Benefactor\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKind Benefactor\u003c/strong\u003e\u003cbr\u003e\n    Give 10,000 Cash in Co-op mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/b2c638812009ff4386ea04618fd2b4a12de91d13.jpg\" alt=\"Generous Benefactor\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGenerous Benefactor\u003c/strong\u003e\u003cbr\u003e\n    Give 50,000 Cash in Co-op mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/a7dfe1073181b0a56525e2933edaf8517234a3ed.jpg\" alt=\"Monkey Contributor\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMonkey Contributor\u003c/strong\u003e\u003cbr\u003e\n    Give 100,000 Cash in Co-op mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/f76f1d970ff85b4d98b5b870faef26af8234edb8.jpg\" alt=\"Monkey Philanthropist\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMonkey Philanthropist\u003c/strong\u003e\u003cbr\u003e\n    Give 1,000,000 Cash in Co-op mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/56e289b5e6e41f41cf650f476a9c45fbaf73a704.jpg\" alt=\"Powershare\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePowershare\u003c/strong\u003e\u003cbr\u003e\n    Use 10 Powers in Co-op mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/97eb0b1dd875a18b94a551dcea0e46a53124d3e7.jpg\" alt=\"Power overwhelming!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePower overwhelming!\u003c/strong\u003e\u003cbr\u003e\n    Use 100 Powers in Co-op mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/ce8271caeb1cf79af829dc4f42c57dc59fa11997.jpg\" alt=\"Insta-defense\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInsta-defense\u003c/strong\u003e\u003cbr\u003e\n    Use 5 Insta-Monkeys in Co-op mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/90319d70cf6b31eb86b3899931c25620a6c456e7.jpg\" alt=\"Co-op Popper\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCo-op Popper\u003c/strong\u003e\u003cbr\u003e\n    Pop 10,000,000 Bloons in Co-op mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/8807d37c66499b56748d039d19e14b1f22afe18a.jpg\" alt=\"Big Bloons\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBig Bloons\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/8807d37c66499b56748d039d19e14b1f22afe18a.jpg\" alt=\"Alchermistman and Bloonacleboy\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAlchermistman and Bloonacleboy\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/ce05410c980a0e1db0ed4b7ed2ff9bfc93c78749.jpg\" alt=\"2TC\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e2TC\u003c/strong\u003e\u003cbr\u003e\n    Complete a game in CHIMPS Difficulty with only 2 towers\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/4c374a7cd76bd64e85a3c2e68f23b747389047f2.jpg\" alt=\"Snap of your fingers\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSnap of your fingers\u003c/strong\u003e\u003cbr\u003e\n    Finish a game with exactly half your starting lives and half your starting cash\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/26c057a4f34a8b452ea00fef2449e8499e50c73e.jpg\" alt=\"Bill Greates\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBill Greates\u003c/strong\u003e\u003cbr\u003e\n    Send $500,000 to an ally in co-op in one go\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/c64983a1128101ecdfa8487a02c13877301824b3.jpg\" alt=\"Bloontona 500\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBloontona 500\u003c/strong\u003e\u003cbr\u003e\n    Gain entry to 500 Races\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/e803675346669cfee2bae6b44ee491f29ca5f872.jpg\" alt=\"Rookie of the year\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRookie of the year\u003c/strong\u003e\u003cbr\u003e\n    Complete a Race in under 10 minutes\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/3a974c03ada31cebf212d7dcced31dea0e169c7c.jpg\" alt=\"Rising star\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRising star\u003c/strong\u003e\u003cbr\u003e\n    Complete a Race in under 5 minutes\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/6602ccc62c987727d5f477e46ca1797dd752ae4f.jpg\" alt=\"Top of your game\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTop of your game\u003c/strong\u003e\u003cbr\u003e\n    Complete any Race in under 3 minutes\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/a551e4f8e20a0f194a49c4f87ee1bbddf0eee91f.jpg\" alt=\"The greatest challenge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe greatest challenge\u003c/strong\u003e\u003cbr\u003e\n    Create or Play 200 Challenges\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/85aa5306301c31491fadd81e6fa24bc6c98529a8.jpg\" alt=\"Lookin fab\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLookin fab\u003c/strong\u003e\u003cbr\u003e\n    Win 100 games using a skin of any Hero\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/5ed2ff54245ee1aed01938d549437784c25ba345.jpg\" alt=\"Therpopylae\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTherpopylae\u003c/strong\u003e\u003cbr\u003e\n    Pop 200,000 Bloons on Peninsula\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/19ff283bfa1637baec22719a61e58b4837e98b35.jpg\" alt=\"Bloon Master Populous\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBloon Master Populous\u003c/strong\u003e\u003cbr\u003e\n    Deal 1 billion damage with the Bloon Master Alchemist\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/149747a401bc59c6d0f208cc2865ea8a3f393e78.jpg\" alt=\"I see you\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI see you\u003c/strong\u003e\u003cbr\u003e\n    Reveal 10,000 Bloons using Shimmer\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/10ba6beebd5785a3cbad3693484ba82d6573566d.jpg\" alt=\"Tetrimino\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTetrimino\u003c/strong\u003e\u003cbr\u003e\n    Place 50 Monkeys on a map at once\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/0dfca733ce66817765da1876e52ec8a2c20b9263.jpg\" alt=\"All for one and one for one\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAll for one and one for one\u003c/strong\u003e\u003cbr\u003e\n    Win a game with only 1 Monkey on screen at any one time in any Hard Difficulty game\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/2265e2daabdff07a3bbc1851aed896adf37712ea.jpg\" alt=\"Master of Life\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaster of Life\u003c/strong\u003e\u003cbr\u003e\n    Have 1000 lives at once in a single game\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/716b549624447f7a176d3be35262fb469e0bd8fa.jpg\" alt=\"Rainbow is Magic\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRainbow is Magic\u003c/strong\u003e\u003cbr\u003e\n    Pop 20,000 Rainbow Bloons with Magic Monkeys\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/8807d37c66499b56748d039d19e14b1f22afe18a.jpg\" alt=\"Strangely Adorable\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStrangely Adorable\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/8807d37c66499b56748d039d19e14b1f22afe18a.jpg\" alt=\"Josh's Constant\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJosh's Constant\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/07e06028f1f47ca99ce691757b680a3618d323bc.jpg\" alt=\"What did it cost? - Everything:\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhat did it cost? - Everything:\u003c/strong\u003e\u003cbr\u003e\n    Sacrifice every tower type in the game to the Temple\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/cd660c45a931729821a8fe3edd9940a01d567484.jpg\" alt=\"2 MegaPops\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e2 MegaPops\u003c/strong\u003e\u003cbr\u003e\n    Complete a game of CHIMPS with more than 2 million damage dealt by one tower\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/1d77e1025a9a272aa47d3abb1ad89093c648695b.jpg\" alt=\"A Crate Time\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Crate Time\u003c/strong\u003e\u003cbr\u003e\n    Open a Diamond Crate in any Collection Event\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/56b090f6a63ffb77a7a7e1ff79bbdadae69dde77.jpg\" alt=\"Axis of Havoc\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAxis of Havoc\u003c/strong\u003e\u003cbr\u003e\n    Have one of each T5 sniper in one game of CHIMPS\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/950f4d535657a276aefcf78ee8c4202d240efe93.jpg\" alt=\"Tower Keeper\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTower Keeper\u003c/strong\u003e\u003cbr\u003e\n    Have 200 insta-monkeys in your inventory at one time\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/2ffa9be5aee3f07f1073f26d1ea19e1a14fbf284.jpg\" alt=\"A year in the making\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA year in the making\u003c/strong\u003e\u003cbr\u003e\n    Open the Daily Chest 365 times\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/37b0e8cb688e33bd3e94339d28ac47a2c8d7ed3d.jpg\" alt=\"Kali Maaaaaaaa\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKali Maaaaaaaa\u003c/strong\u003e\u003cbr\u003e\n    Gain 10 levels for Adora in one round\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/8807d37c66499b56748d039d19e14b1f22afe18a.jpg\" alt=\"Golden Ticket\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGolden Ticket\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/74aa7dd7f555ec7e42837831a79fd0d7ccc5bda5.jpg\" alt=\"Adventurer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAdventurer\u003c/strong\u003e\u003cbr\u003e\n    Complete an Odyssey\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/eb4987e61c735a02c8d6f2e20026e39721ab3c77.jpg\" alt=\"Seasoned Adventurer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSeasoned Adventurer\u003c/strong\u003e\u003cbr\u003e\n    Complete a Hard Odyssey\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/7cc4547fc4c3dd4cda6f39e0ced235e4c02d98b9.jpg\" alt=\"No Stone Left Unturned\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNo Stone Left Unturned\u003c/strong\u003e\u003cbr\u003e\n    Complete all 3 difficulties of a single Odyssey\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/927ef1d057a69e883aecfa290698a1a14a4dcd71.jpg\" alt=\"12 Tasks of Monk-ules\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e12 Tasks of Monk-ules\u003c/strong\u003e\u003cbr\u003e\n    Complete 12 different Odysseys\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/574ba033e66adb494ba4dc9443dfee88e5f7ddd9.jpg\" alt=\"Modysseus Rises\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eModysseus Rises\u003c/strong\u003e\u003cbr\u003e\n    Complete 50 Odysseys\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/3b2cc14ae1018c404d1069d67d6610e88a189aa5.jpg\" alt=\"Modysseus Forever\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eModysseus Forever\u003c/strong\u003e\u003cbr\u003e\n    Complete 100 Odysseys\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/c1b9fd144ea51ebfbaef4bb1b87636806cc9abcc.jpg\" alt=\"Full Speed Ahead!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFull Speed Ahead!\u003c/strong\u003e\u003cbr\u003e\n    Complete an Odyssey in under 1 hour\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/05d7c9c14bfe5e3ff110652855f8ca9d6c0b712b.jpg\" alt=\"All About That Bling\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAll About That Bling\u003c/strong\u003e\u003cbr\u003e\n    Purchase a Trophy Store item\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/d3cffe557ff6afbc10ab0ceb0cb0642a9f83c590.jpg\" alt=\"Mo Heroes, Mo Problems\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMo Heroes, Mo Problems\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/8807d37c66499b56748d039d19e14b1f22afe18a.jpg\" alt=\"Chunky Monkeys\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChunky Monkeys\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/6e9b1364379bc1213bda913669e4bba52785eb89.jpg\" alt=\"Oathbreakers\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOathbreakers\u003c/strong\u003e\u003cbr\u003e\n    Reanimate 250,000 bloons to fight on your side using the Necromancer Wizard\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/a40e1a24666b59cbe18e6e4864b37e4c64f60b4c.jpg\" alt=\"Living on the Edge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLiving on the Edge\u003c/strong\u003e\u003cbr\u003e\n    Win any non-CHIMPS/Impoppable game with only 1 life remaining\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/e3a0705a45e569edb73b43ceb4d751217e4f23c0.jpg\" alt=\"Freaky Friday\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFreaky Friday\u003c/strong\u003e\u003cbr\u003e\n    Use the Alchemist's Transforming Tonic abilities 100 times\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/f30c91486513bc4b41b03f14478b5b10336ec320.jpg\" alt=\"Ready Player One?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eReady Player One?\u003c/strong\u003e\u003cbr\u003e\n    Host and win 10 Co-op games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/eb932ed9b86537bf31cceee4a65aea3ffc8d51c6.jpg\" alt=\"Crash of the Titans\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCrash of the Titans\u003c/strong\u003e\u003cbr\u003e\n    Strip the fortifications from Fortified DDTs 3000 times\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/c162bb4c64e138fc1a8955e2959643aada476ca8.jpg\" alt=\"A La Code\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA La Code\u003c/strong\u003e\u003cbr\u003e\n    Submit a Challenge to the Challenge Browser\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/4e23824114851889ec1205e7fb6b869834b9d5a5.jpg\" alt=\"Regifted\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRegifted\u003c/strong\u003e\u003cbr\u003e\n    Pop 1,000,000 Bloons with Dartling Gunners\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/6054bb6e63abb39c81afb7586f4fa7f35eb392a6.jpg\" alt=\"Coupon Crazy\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCoupon Crazy\u003c/strong\u003e\u003cbr\u003e\n    Spend at least 50 Trophies in the Trophy Store\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/59ad83deb831f8d6befbf3fa65ce1be4e657e0b1.jpg\" alt=\"Instant Gratification\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInstant Gratification\u003c/strong\u003e\u003cbr\u003e\n    Use a Tier 5 Insta Monkey. NOTE: even after being used, Instas still count toward your collection!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/e224fd452d0fedc18ced9ac5b0eb23de344a6f5b.jpg\" alt=\"Insta Century\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInsta Century\u003c/strong\u003e\u003cbr\u003e\n    Use 100 Insta Monkeys\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/86499180e62c14eeb6ec2fa6b91541dc71f0b628.jpg\" alt=\"Limited Run\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLimited Run\u003c/strong\u003e\u003cbr\u003e\n    Purchase at least 1 new Limited Time item in the Trophy Store\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/87896af993a2bb7923a0403db0f72f75a261be6d.jpg\" alt=\"Tools to Darwin\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTools to Darwin\u003c/strong\u003e\u003cbr\u003e\n    Upgrade towers 20,000 times\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/8807d37c66499b56748d039d19e14b1f22afe18a.jpg\" alt=\"Stubborn Strategy\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStubborn Strategy\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/67491fe33d45e84c661184f8ccdce1814fd45d99.jpg\" alt=\"Achievement of Achievements\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAchievement of Achievements\u003c/strong\u003e\u003cbr\u003e\n    Collect 35 achievements\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/cbbafb12082ac681310d9360461818c6b66f6c4c.jpg\" alt=\"Hook, Line, and Sinker\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHook, Line, and Sinker\u003c/strong\u003e\u003cbr\u003e\n    Rope in 3,000 MOAB-Class Bloons using the MOAB takedown ability\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/96b944a68cf2ab033731fb9ff532ab096f0a50b3.jpg\" alt=\"Moving House\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMoving House\u003c/strong\u003e\u003cbr\u003e\n    Redeploy 1,000 monkey towers using the Support Chinook\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/e3a7863d23a083d8b7fa611266bf3a7248bfbb6a.jpg\" alt=\"Social Butterfly\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSocial Butterfly\u003c/strong\u003e\u003cbr\u003e\n    Use emotes 100 times in co-op games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/b63fe01ffc142a0f9f543827a7e040850dabf68b.jpg\" alt=\"So Shiny!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSo Shiny!\u003c/strong\u003e\u003cbr\u003e\n    Pop 20 Golden Bloons\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/b56ff400947c97cf2384d35572bc63fab50b06fa.jpg\" alt=\"Glittering Gold\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGlittering Gold\u003c/strong\u003e\u003cbr\u003e\n    Pop 100 Golden Bloons\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/37059bc51c53d2b09ee13892d68852aec5c088e4.jpg\" alt=\"Glorious Gold\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGlorious Gold\u003c/strong\u003e\u003cbr\u003e\n    Pop 500 Golden Bloons\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/2bcdc5d85ee2c4a14633f1c1fe0759a19dc14984.jpg\" alt=\"Magical Gold\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMagical Gold\u003c/strong\u003e\u003cbr\u003e\n    Pop 50 Golden Bloons in Magic Monkeys only mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/e7ec654133128574d2a881e36bb76278bcbb1f61.jpg\" alt=\"Team Player\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTeam Player\u003c/strong\u003e\u003cbr\u003e\n    Win 25 times with Monkey Teams\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/8a14c2ac800a0ad6c852f0618313c4009916fe9d.jpg\" alt=\"Team Captain\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTeam Captain\u003c/strong\u003e\u003cbr\u003e\n    Win 50 times with Monkey Teams\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/f307254d3033da888e8747d3f1df94278fb9da2d.jpg\" alt=\"Ultimate Team-up\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUltimate Team-up\u003c/strong\u003e\u003cbr\u003e\n    Win 100 times with Monkey Teams\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/cb3a95c5f236c6fd1829d3d569f84a848ee348c2.jpg\" alt=\"What is this new Bloonery?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhat is this new Bloonery?\u003c/strong\u003e\u003cbr\u003e\n    Defeat a Tier 1 Boss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/d1aad0d6ccdca2285aa7fea1e96b9df453867914.jpg\" alt=\"Who's the Boss?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWho's the Boss?\u003c/strong\u003e\u003cbr\u003e\n    Defeat a Tier 5 Boss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/9ea182fcd5dceaf8e92c577a51bbf9680380f2bb.jpg\" alt=\"I'm the Boss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI'm the Boss\u003c/strong\u003e\u003cbr\u003e\n    Defeat a Tier 5 Elite Boss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/528a7597867a09cd8777d7f86798e1e8edfdbf1f.jpg\" alt=\"Apotheosis\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eApotheosis\u003c/strong\u003e\u003cbr\u003e\n    Upgrade to a Monkey Paragon Tower\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/fb07f1010d99dd1c6506c4777d7ec0621f8f798b.jpg\" alt=\"Like a Boss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLike a Boss\u003c/strong\u003e\u003cbr\u003e\n    Pop 50 Boss Bloons\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/8807d37c66499b56748d039d19e14b1f22afe18a.jpg\" alt=\"Perfect Paragon\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePerfect Paragon\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/1b8ca7e36915b626156e73b01b4e58794f520a97.jpg\" alt=\"Davids vs Goliath\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDavids vs Goliath\u003c/strong\u003e\u003cbr\u003e\n    Win a boss battle without using a Hero\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/220daf08097a8becd82542005f82af88dc979e44.jpg\" alt=\"So Spiiicey Ninja Kiwi\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSo Spiiicey Ninja Kiwi\u003c/strong\u003e\u003cbr\u003e\n    Beat Spice Islands on Alternate Bloon Rounds with only land towers\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/b9e0fe801db423dc1561ecbdecabbc135f70b9e4.jpg\" alt=\"No Harvest\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNo Harvest\u003c/strong\u003e\u003cbr\u003e\n    Beat Cornfield on CHIMPs without removing any corn\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/71d054b9cfe8a34841a08be96ff0aa238b5484ff.jpg\" alt=\"Student Loans\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStudent Loans\u003c/strong\u003e\u003cbr\u003e\n    4 x 10^5 (Go into $400,000 of debt)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/d3cffe557ff6afbc10ab0ceb0cb0642a9f83c590.jpg\" alt=\"Not Lacking Critical Information\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNot Lacking Critical Information\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/f8aed90cb207cd8b4b459e723e61b99a4a239879.jpg\" alt=\"Sticky Situation\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSticky Situation\u003c/strong\u003e\u003cbr\u003e\n    Glue 500,000 Bloons\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/cc0876ab59253ae8b818befc18837c47889c551a.jpg\" alt=\"Big Spender\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBig Spender\u003c/strong\u003e\u003cbr\u003e\n    Spend 1,000,000 cash in one round\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/382e14e28767df1718ccb3145ae32598af8d3c4b.jpg\" alt=\"The Daily Reid\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Daily Reid\u003c/strong\u003e\u003cbr\u003e\n    Win 365 unique daily challenges\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/362d819970f78153ffe0d3c7df3d2d3d481ece29.jpg\" alt=\"I'll Be Back\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI'll Be Back\u003c/strong\u003e\u003cbr\u003e\n    Spend 1,000 MM on Continues or Checkpoints\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/68ef7b0e8c32c65d97248da34f6a3423c802b4d4.jpg\" alt=\"Conquested Territory\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eConquested Territory\u003c/strong\u003e\u003cbr\u003e\n    Capture 5 tiles off other players\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/81b8b55e65d58ce493340381a9bd9e37aabc8ac6.jpg\" alt=\"Stage of Empires\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStage of Empires\u003c/strong\u003e\u003cbr\u003e\n    Capture 50 tiles\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/c9e2edaa9539f989b6ad20df35d2c9f63784cc7a.jpg\" alt=\"Territory Sampler\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTerritory Sampler\u003c/strong\u003e\u003cbr\u003e\n    Capture 1 of each: Boss, Time Attack, Least Tiers and Least Cash tiles\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/be9c61697a05fec1e82cfe9134a030f718226036.jpg\" alt=\"Invigoration\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInvigoration\u003c/strong\u003e\u003cbr\u003e\n    Have 75 buffs active on your Monkeys at once\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/3252f8716f7ce9229b60acf1e84cf38b276bfc50.jpg\" alt=\"Side Quest\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSide Quest\u003c/strong\u003e\u003cbr\u003e\n    Complete a Quest\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/bdbd8d6b4f92f659ff993c619f235dbed355cbed.jpg\" alt=\"World League Training\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWorld League Training\u003c/strong\u003e\u003cbr\u003e\n    Acquire 150,000 Beast Handler XP\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/00d55f253db9d8c56c246ec2c17b09a0a0c21c62.jpg\" alt=\"Life Experience\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLife Experience\u003c/strong\u003e\u003cbr\u003e\n    Earn 5,368,709 experience for any tower\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/d0a878707ecc03b676049469cea7678b4e5349ec.jpg\" alt=\"Heavy Investment\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHeavy Investment\u003c/strong\u003e\u003cbr\u003e\n    Invest at least $401,626 extra when creating any Paragon\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/aa4017c142a48d9ae95cbf51df43b97f99f1023f.jpg\" alt=\"25 to Life\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e25 to Life\u003c/strong\u003e\u003cbr\u003e\n    Defeat 5 unique Bosses at Tier 5 (Can be in Boss Event or Challenge Mode)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/115912709b07bd984c94e13f1bb8f13753b59bb1.jpg\" alt=\"Community Connoisseur\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCommunity Connoisseur\u003c/strong\u003e\u003cbr\u003e\n    Win 100 different community submissions (Challenges, Odysseys, Maps)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/3d94af99850ba2223aed0ec828a53da6785459e5.jpg\" alt=\"Nah, I'd Win\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNah, I'd Win\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/008cfb098cd730d1395ed3c72722a422eda29e2f.jpg\" alt=\"They call me Cave Monkey!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThey call me Cave Monkey!\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/960090/c97546b1ef35bb5572de1776563fc59738495d10.jpg\" alt=\"First Steps\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFirst Steps\u003c/strong\u003e\u003cbr\u003e\n    Complete the First Time Tutorial Quest\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Bloons TD 6 - 5.88% complete with 9/153 achievements unlocked.",
      "date_published": "2025-09-06T00:00:00Z",
      "date_modified": "2025-09-06T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "bloons-td-6"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/hollow-knight/",
      "url": "https://go.waylonwalker.com/steam/hollow-knight/",
      "title": "Hollow Knight",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/367520/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/367520/library_600x900.jpg\" alt=\"Hollow Knight box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/367520/header.jpg\u0026#39;\"/ data-glightbox=\"description: Hollow Knight box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eHollow Knight\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 55.56%\"\u003e\n        55.56%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e35/63 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e125.8h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-09-01\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (35)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/6d15e62c48ba57d23e72b8f24fb775a44223cb8f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/6d15e62c48ba57d23e72b8f24fb775a44223cb8f.jpg\" alt=\"Charmed\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Charmed\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCharmed\u003c/strong\u003e\u003cbr/\u003e\n    Acquire your first Charm\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 24, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/70ff5ba41548568aad51c3bd0d4a53d5c17399ed.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/70ff5ba41548568aad51c3bd0d4a53d5c17399ed.jpg\" alt=\"Enchanted\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Enchanted\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEnchanted\u003c/strong\u003e\u003cbr/\u003e\n    Acquire half of Hallownest\u0026#39;s Charms\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 13, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/2461c5d7f6595602443a0bf0da24f48795873671.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/2461c5d7f6595602443a0bf0da24f48795873671.jpg\" alt=\"Protected\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Protected\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eProtected\u003c/strong\u003e\u003cbr/\u003e\n    Acquire 4 Mask Shards\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 08, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/bc53e3b71da8b6997a92ee2085f8029daa520d17.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/bc53e3b71da8b6997a92ee2085f8029daa520d17.jpg\" alt=\"Masked\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Masked\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMasked\u003c/strong\u003e\u003cbr/\u003e\n    Acquire all Mask Shards\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 20, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/4913c263116ee38deb0a17c724e04cda290210e0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/4913c263116ee38deb0a17c724e04cda290210e0.jpg\" alt=\"Soulful\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Soulful\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSoulful\u003c/strong\u003e\u003cbr/\u003e\n    Acquire 3 Vessel Fragments\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 11, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/9093ee5b02a988b32deedd9fe89b72c733ba0bf6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/9093ee5b02a988b32deedd9fe89b72c733ba0bf6.jpg\" alt=\"Worldsoul\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Worldsoul\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWorldsoul\u003c/strong\u003e\u003cbr/\u003e\n    Acquire all Vessel Fragments\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 28, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/ef1f6b825646067c63f5703d1c7ba38b52d94259.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/ef1f6b825646067c63f5703d1c7ba38b52d94259.jpg\" alt=\"Falsehood\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Falsehood\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFalsehood\u003c/strong\u003e\u003cbr/\u003e\n    Defeat the False Knight\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 24, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/341793aae218e6b14c571ee2daf55b87cf11a784.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/341793aae218e6b14c571ee2daf55b87cf11a784.jpg\" alt=\"Test of Resolve\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Test of Resolve\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTest of Resolve\u003c/strong\u003e\u003cbr/\u003e\n    Defeat Hornet in Greenpath\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 13, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/55742641984670952a75a1b80f3380bc85a8fcce.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/55742641984670952a75a1b80f3380bc85a8fcce.jpg\" alt=\"Proof of Resolve\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Proof of Resolve\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eProof of Resolve\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 24, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/2d3e4c6217b6d911d8a211f3ab4f3f37e49a584c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/2d3e4c6217b6d911d8a211f3ab4f3f37e49a584c.jpg\" alt=\"Illumination\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Illumination\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIllumination\u003c/strong\u003e\u003cbr/\u003e\n    Defeat the Soul Master\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 11, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/fe4da7f785348feab3845233c0050d660b23c9d7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/fe4da7f785348feab3845233c0050d660b23c9d7.jpg\" alt=\"Release\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Release\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRelease\u003c/strong\u003e\u003cbr/\u003e\n    Defeat the Broken Vessel\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 22, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/c1d1c0d98374a06efa17e183ef3121ac6c8cc156.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/c1d1c0d98374a06efa17e183ef3121ac6c8cc156.jpg\" alt=\"Peace\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Peace\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePeace\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 29, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/7505670c8e4283da41ce575341bc35f72ff2639b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/7505670c8e4283da41ce575341bc35f72ff2639b.jpg\" alt=\"Honour\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Honour\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHonour\u003c/strong\u003e\u003cbr/\u003e\n    Defeat the Dung Defender\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 11, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/1a695a0e9bf011f800f3a52e4a04a02776011765.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/1a695a0e9bf011f800f3a52e4a04a02776011765.jpg\" alt=\"Respect\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Respect\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRespect\u003c/strong\u003e\u003cbr/\u003e\n    Defeat the Mantis Lords\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 05, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/a39ee369bc9d5dc54d419ad7cae6c1dd346fc632.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/a39ee369bc9d5dc54d419ad7cae6c1dd346fc632.jpg\" alt=\"Obsession\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Obsession\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eObsession\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 03, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/e8a35f548dcdeb1753fdc880a2df6de8fe245c8e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/e8a35f548dcdeb1753fdc880a2df6de8fe245c8e.jpg\" alt=\"Rivalry\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Rivalry\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRivalry\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 18, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/a0864e337fe427586613b09e8799109deccdbcf4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/a0864e337fe427586613b09e8799109deccdbcf4.jpg\" alt=\"Attunement\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Attunement\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAttunement\u003c/strong\u003e\u003cbr/\u003e\n    Collect 600 Essence\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 27, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/e8f543149d1ccfe831740ad989260d15e57a4de0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/e8f543149d1ccfe831740ad989260d15e57a4de0.jpg\" alt=\"Awakening\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Awakening\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAwakening\u003c/strong\u003e\u003cbr/\u003e\n    Collect 1800 Essence and awaken the Dream Nail\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 03, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/7d3e6f275570f47e11c53342e989bc70152789cf.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/7d3e6f275570f47e11c53342e989bc70152789cf.jpg\" alt=\"Grubfriend\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Grubfriend\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGrubfriend\u003c/strong\u003e\u003cbr/\u003e\n    Rescue half of the imprisoned grubs\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 25, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/378ed9b1dcccd43bfbf39295b17caad3fb398c64.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/378ed9b1dcccd43bfbf39295b17caad3fb398c64.jpg\" alt=\"Metamorphosis\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Metamorphosis\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMetamorphosis\u003c/strong\u003e\u003cbr/\u003e\n    Rescue all of the imprisoned grubs\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 08, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/39c48696aca3c6ccf64eb4a069ab6a44971308a4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/39c48696aca3c6ccf64eb4a069ab6a44971308a4.jpg\" alt=\"Happy Couple\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Happy Couple\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHappy Couple\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 19, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/b2de92ce9fadeae94fc2b25f116a95ff575047d2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/b2de92ce9fadeae94fc2b25f116a95ff575047d2.jpg\" alt=\"Witness\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Witness\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWitness\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 06, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/5599c786f2c5a411951563f33abed35f08ad76e4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/5599c786f2c5a411951563f33abed35f08ad76e4.jpg\" alt=\"Solace\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Solace\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSolace\u003c/strong\u003e\u003cbr/\u003e\n    Bring peace to the Grey Mourner\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 14, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/e7205c4c78fefef7894a6731d1a188e992011ec8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/e7205c4c78fefef7894a6731d1a188e992011ec8.jpg\" alt=\"Execution\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Execution\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExecution\u003c/strong\u003e\u003cbr/\u003e\n    Defeat the Traitor Lord\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 27, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/dad457a73d6612846c24053b76d41a2415ace552.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/dad457a73d6612846c24053b76d41a2415ace552.jpg\" alt=\"Connection\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Connection\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eConnection\u003c/strong\u003e\u003cbr/\u003e\n    Open half of Hallownest\u0026#39;s Stag Stations\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 08, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/96d2673f15230fb83dd61384eb05458f1e0475bc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/96d2673f15230fb83dd61384eb05458f1e0475bc.jpg\" alt=\"Hope\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hope\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHope\u003c/strong\u003e\u003cbr/\u003e\n    Open all of Hallownest\u0026#39;s Stag Stations and discover the Stag Nest\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 23, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/f35cd67af303aa5d609cd1183e9eb29295b302b7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/f35cd67af303aa5d609cd1183e9eb29295b302b7.jpg\" alt=\"Teacher\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Teacher\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTeacher\u003c/strong\u003e\u003cbr/\u003e\n    Destroy Monomon the Teacher\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 25, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/4e6e4ddce73c59559901d5bc7c86481d36a45988.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/4e6e4ddce73c59559901d5bc7c86481d36a45988.jpg\" alt=\"Watcher\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Watcher\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWatcher\u003c/strong\u003e\u003cbr/\u003e\n    Destroy Lurien the Watcher\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 27, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/460d5ab4af6dc0ff8c053c42649fa856949f01b4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/460d5ab4af6dc0ff8c053c42649fa856949f01b4.jpg\" alt=\"Beast\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Beast\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeast\u003c/strong\u003e\u003cbr/\u003e\n    Destroy Herrah the Beast\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 25, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/7e671e6e88cbe98b9dce57281980fea84a70de9b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/7e671e6e88cbe98b9dce57281980fea84a70de9b.jpg\" alt=\"Cartographer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cartographer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCartographer\u003c/strong\u003e\u003cbr/\u003e\n    Acquire a map of each area\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 25, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/11d67c16467ae72066c2a3d33388325c65e9f7f7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/11d67c16467ae72066c2a3d33388325c65e9f7f7.jpg\" alt=\"Warrior\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Warrior\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWarrior\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Trial of the Warrior\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 18, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/1e6a0d37618ba408e9c6ee4e77585ba1b69ee2c1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/1e6a0d37618ba408e9c6ee4e77585ba1b69ee2c1.jpg\" alt=\"Conqueror\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Conqueror\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eConqueror\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Trial of the Conqueror\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 17, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/39db59cf079011e52d49a621de9c540652f9d2d4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/39db59cf079011e52d49a621de9c540652f9d2d4.jpg\" alt=\"The Hollow Knight\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Hollow Knight\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Hollow Knight\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 09, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/8c26d557c3582c7784f338523316f56068e4426d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/8c26d557c3582c7784f338523316f56068e4426d.jpg\" alt=\"Dark Romance\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Dark Romance\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDark Romance\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 23, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/982f6bd69415e06696e2fc414bc595700663ab37.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/982f6bd69415e06696e2fc414bc595700663ab37.jpg\" alt=\"Grand Performance\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Grand Performance\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGrand Performance\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 23, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (28)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/a577316f7ae64c8cfdd0568209a915a9fad0f8ad.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/a577316f7ae64c8cfdd0568209a915a9fad0f8ad.jpg\" alt=\"Blessed\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Blessed\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlessed\u003c/strong\u003e\u003cbr/\u003e\n    Acquire all Charms and receive Salubra\u0026#39;s blessing\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/9f449ef6aacd0ef2423439931ef68466cd762456.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/9f449ef6aacd0ef2423439931ef68466cd762456.jpg\" alt=\"Strength\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Strength\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStrength\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/1b88bf9ae2b7d4b90ea3ad86470c98df618a8229.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/1b88bf9ae2b7d4b90ea3ad86470c98df618a8229.jpg\" alt=\"Ascension\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ascension\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAscension\u003c/strong\u003e\u003cbr/\u003e\n    Collect 2400 Essence and hear the Seer\u0026#39;s final words\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/512e98007863df71f4531d08676464c6aceea95d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/512e98007863df71f4531d08676464c6aceea95d.jpg\" alt=\"Neglect\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Neglect\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNeglect\u003c/strong\u003e\u003cbr/\u003e\n    Leave Zote to die\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/23f190fe7fdc961652855d6134a096b2703bf479.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/23f190fe7fdc961652855d6134a096b2703bf479.jpg\" alt=\"Purity\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Purity\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePurity\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/cf3a66560ca2f5a33665283ef854e518b7c8269e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/cf3a66560ca2f5a33665283ef854e518b7c8269e.jpg\" alt=\"Fool\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fool\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFool\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Trial of the Fool\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/d9a08fbe0afb16ffae9ebcd67c41bb73388a8c26.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/d9a08fbe0afb16ffae9ebcd67c41bb73388a8c26.jpg\" alt=\"Sealed Siblings\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sealed Siblings\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSealed Siblings\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/a43f645a3916af81765b548b85fe19e826ba4c42.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/a43f645a3916af81765b548b85fe19e826ba4c42.jpg\" alt=\"Dream No More\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Dream No More\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDream No More\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/e11d971b5f2c1e977fd5679ad15cbf40b2cb2a4a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/e11d971b5f2c1e977fd5679ad15cbf40b2cb2a4a.jpg\" alt=\"Void\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Void\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVoid\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/d273e50186bcfe48d2c0a07b20bd0efa8d843293.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/d273e50186bcfe48d2c0a07b20bd0efa8d843293.jpg\" alt=\"Speedrun 1\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Speedrun 1\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpeedrun 1\u003c/strong\u003e\u003cbr/\u003e\n    Complete the game in under 10 hours\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/426bfd57af49ba6c1e199f6dffb6393fdd87e98c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/426bfd57af49ba6c1e199f6dffb6393fdd87e98c.jpg\" alt=\"Speedrun 2\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Speedrun 2\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpeedrun 2\u003c/strong\u003e\u003cbr/\u003e\n    Complete the game in under 5 hours\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/eba8bd5fc8e2d0b968bc2eb80433b8112a0d337c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/eba8bd5fc8e2d0b968bc2eb80433b8112a0d337c.jpg\" alt=\"Completion\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Completion\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompletion\u003c/strong\u003e\u003cbr/\u003e\n    Achieve 100% game completion and finish the game\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/6efa8b82b7062070451e05e3569356d0a871dce3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/6efa8b82b7062070451e05e3569356d0a871dce3.jpg\" alt=\"Speed Completion\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Speed Completion\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpeed Completion\u003c/strong\u003e\u003cbr/\u003e\n    Achieve 100% game completion and finish the game in under 20 hours\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/af3a37a198cd9c0eabea41f92128c0f82b12b44b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/af3a37a198cd9c0eabea41f92128c0f82b12b44b.jpg\" alt=\"Steel Soul\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Steel Soul\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSteel Soul\u003c/strong\u003e\u003cbr/\u003e\n    Finish the game in Steel Soul mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/7e987f4454a86176979f97b80af057ba62689db2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/7e987f4454a86176979f97b80af057ba62689db2.jpg\" alt=\"Steel Heart\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Steel Heart\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSteel Heart\u003c/strong\u003e\u003cbr/\u003e\n    Achieve 100% game completion and finish the game in Steel Soul mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/4d6373b0678c444e8ec841f81b4789d36438b8c3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/4d6373b0678c444e8ec841f81b4789d36438b8c3.jpg\" alt=\"Keen Hunter\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Keen Hunter\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKeen Hunter\u003c/strong\u003e\u003cbr/\u003e\n    Record all of Hallownest\u0026#39;s creatures in the Hunter\u0026#39;s Journal\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/ed0b80dee5a89c1ac24907b4fa9048512d95e705.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/ed0b80dee5a89c1ac24907b4fa9048512d95e705.jpg\" alt=\"True Hunter\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: True Hunter\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTrue Hunter\u003c/strong\u003e\u003cbr/\u003e\n    Receive the Hunter\u0026#39;s Mark\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/b5ee4828c750bcf90def63aaffe4a1b27f418efd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/b5ee4828c750bcf90def63aaffe4a1b27f418efd.jpg\" alt=\"Passing of the Age\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Passing of the Age\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePassing of the Age\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/f922c5de7ecfb30d3f7287e5fc472d669ec67fb8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/f922c5de7ecfb30d3f7287e5fc472d669ec67fb8.jpg\" alt=\"Mortality\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mortality\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMortality\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/53bbcbddf3f54a192796ae729edd1b56e9190fc0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/53bbcbddf3f54a192796ae729edd1b56e9190fc0.jpg\" alt=\"Memory\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Memory\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMemory\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/11e465df607e6c5338c241612abd25bd31f44986.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/11e465df607e6c5338c241612abd25bd31f44986.jpg\" alt=\"Ritual\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ritual\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRitual\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/c31aefeb1a1a66ea8df5973948938943e990def6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/c31aefeb1a1a66ea8df5973948938943e990def6.jpg\" alt=\"Banishment\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Banishment\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBanishment\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/\" alt=\"Brotherhood\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Brotherhood\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBrotherhood\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/\" alt=\"Inspiration\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Inspiration\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInspiration\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/\" alt=\"Focus\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Focus\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFocus\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/\" alt=\"Soul \u0026amp; Shade\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Soul \u0026amp; Shade\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSoul \u0026amp; Shade\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/\" alt=\"Embrace the Void\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Embrace the Void\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEmbrace the Void\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/817c85e5f17fcab76b7d08979b0b076afbae509d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/817c85e5f17fcab76b7d08979b0b076afbae509d.jpg\" alt=\"Pure Completion\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Pure Completion\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePure Completion\u003c/strong\u003e\u003cbr/\u003e\n    Achieve 112% game completion and finish the game.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/367520/library_600x900.jpg\" alt=\"Hollow Knight box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/367520/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eHollow Knight\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 55.56%\"\u003e\n        55.56%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e35/63 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e125.8h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-09-01\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (35)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/6d15e62c48ba57d23e72b8f24fb775a44223cb8f.jpg\" alt=\"Charmed\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCharmed\u003c/strong\u003e\u003cbr\u003e\n    Acquire your first Charm\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 24, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/70ff5ba41548568aad51c3bd0d4a53d5c17399ed.jpg\" alt=\"Enchanted\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEnchanted\u003c/strong\u003e\u003cbr\u003e\n    Acquire half of Hallownest's Charms\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 13, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/2461c5d7f6595602443a0bf0da24f48795873671.jpg\" alt=\"Protected\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eProtected\u003c/strong\u003e\u003cbr\u003e\n    Acquire 4 Mask Shards\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 08, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/bc53e3b71da8b6997a92ee2085f8029daa520d17.jpg\" alt=\"Masked\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMasked\u003c/strong\u003e\u003cbr\u003e\n    Acquire all Mask Shards\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 20, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/4913c263116ee38deb0a17c724e04cda290210e0.jpg\" alt=\"Soulful\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSoulful\u003c/strong\u003e\u003cbr\u003e\n    Acquire 3 Vessel Fragments\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 11, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/9093ee5b02a988b32deedd9fe89b72c733ba0bf6.jpg\" alt=\"Worldsoul\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWorldsoul\u003c/strong\u003e\u003cbr\u003e\n    Acquire all Vessel Fragments\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 28, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/ef1f6b825646067c63f5703d1c7ba38b52d94259.jpg\" alt=\"Falsehood\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFalsehood\u003c/strong\u003e\u003cbr\u003e\n    Defeat the False Knight\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 24, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/341793aae218e6b14c571ee2daf55b87cf11a784.jpg\" alt=\"Test of Resolve\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTest of Resolve\u003c/strong\u003e\u003cbr\u003e\n    Defeat Hornet in Greenpath\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 13, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/55742641984670952a75a1b80f3380bc85a8fcce.jpg\" alt=\"Proof of Resolve\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eProof of Resolve\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 24, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/2d3e4c6217b6d911d8a211f3ab4f3f37e49a584c.jpg\" alt=\"Illumination\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIllumination\u003c/strong\u003e\u003cbr\u003e\n    Defeat the Soul Master\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 11, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/fe4da7f785348feab3845233c0050d660b23c9d7.jpg\" alt=\"Release\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRelease\u003c/strong\u003e\u003cbr\u003e\n    Defeat the Broken Vessel\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 22, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/c1d1c0d98374a06efa17e183ef3121ac6c8cc156.jpg\" alt=\"Peace\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePeace\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 29, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/7505670c8e4283da41ce575341bc35f72ff2639b.jpg\" alt=\"Honour\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHonour\u003c/strong\u003e\u003cbr\u003e\n    Defeat the Dung Defender\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 11, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/1a695a0e9bf011f800f3a52e4a04a02776011765.jpg\" alt=\"Respect\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRespect\u003c/strong\u003e\u003cbr\u003e\n    Defeat the Mantis Lords\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 05, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/a39ee369bc9d5dc54d419ad7cae6c1dd346fc632.jpg\" alt=\"Obsession\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eObsession\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 03, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/e8a35f548dcdeb1753fdc880a2df6de8fe245c8e.jpg\" alt=\"Rivalry\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRivalry\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 18, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/a0864e337fe427586613b09e8799109deccdbcf4.jpg\" alt=\"Attunement\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAttunement\u003c/strong\u003e\u003cbr\u003e\n    Collect 600 Essence\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 27, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/e8f543149d1ccfe831740ad989260d15e57a4de0.jpg\" alt=\"Awakening\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAwakening\u003c/strong\u003e\u003cbr\u003e\n    Collect 1800 Essence and awaken the Dream Nail\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 03, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/7d3e6f275570f47e11c53342e989bc70152789cf.jpg\" alt=\"Grubfriend\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGrubfriend\u003c/strong\u003e\u003cbr\u003e\n    Rescue half of the imprisoned grubs\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 25, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/378ed9b1dcccd43bfbf39295b17caad3fb398c64.jpg\" alt=\"Metamorphosis\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMetamorphosis\u003c/strong\u003e\u003cbr\u003e\n    Rescue all of the imprisoned grubs\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 08, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/39c48696aca3c6ccf64eb4a069ab6a44971308a4.jpg\" alt=\"Happy Couple\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHappy Couple\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 19, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/b2de92ce9fadeae94fc2b25f116a95ff575047d2.jpg\" alt=\"Witness\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWitness\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 06, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/5599c786f2c5a411951563f33abed35f08ad76e4.jpg\" alt=\"Solace\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSolace\u003c/strong\u003e\u003cbr\u003e\n    Bring peace to the Grey Mourner\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 14, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/e7205c4c78fefef7894a6731d1a188e992011ec8.jpg\" alt=\"Execution\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExecution\u003c/strong\u003e\u003cbr\u003e\n    Defeat the Traitor Lord\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 27, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/dad457a73d6612846c24053b76d41a2415ace552.jpg\" alt=\"Connection\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eConnection\u003c/strong\u003e\u003cbr\u003e\n    Open half of Hallownest's Stag Stations\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 08, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/96d2673f15230fb83dd61384eb05458f1e0475bc.jpg\" alt=\"Hope\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHope\u003c/strong\u003e\u003cbr\u003e\n    Open all of Hallownest's Stag Stations and discover the Stag Nest\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 23, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/f35cd67af303aa5d609cd1183e9eb29295b302b7.jpg\" alt=\"Teacher\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTeacher\u003c/strong\u003e\u003cbr\u003e\n    Destroy Monomon the Teacher\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 25, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/4e6e4ddce73c59559901d5bc7c86481d36a45988.jpg\" alt=\"Watcher\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWatcher\u003c/strong\u003e\u003cbr\u003e\n    Destroy Lurien the Watcher\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 27, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/460d5ab4af6dc0ff8c053c42649fa856949f01b4.jpg\" alt=\"Beast\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeast\u003c/strong\u003e\u003cbr\u003e\n    Destroy Herrah the Beast\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 25, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/7e671e6e88cbe98b9dce57281980fea84a70de9b.jpg\" alt=\"Cartographer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCartographer\u003c/strong\u003e\u003cbr\u003e\n    Acquire a map of each area\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 25, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/11d67c16467ae72066c2a3d33388325c65e9f7f7.jpg\" alt=\"Warrior\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWarrior\u003c/strong\u003e\u003cbr\u003e\n    Complete the Trial of the Warrior\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 18, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/1e6a0d37618ba408e9c6ee4e77585ba1b69ee2c1.jpg\" alt=\"Conqueror\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eConqueror\u003c/strong\u003e\u003cbr\u003e\n    Complete the Trial of the Conqueror\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 17, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/39db59cf079011e52d49a621de9c540652f9d2d4.jpg\" alt=\"The Hollow Knight\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Hollow Knight\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 09, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/8c26d557c3582c7784f338523316f56068e4426d.jpg\" alt=\"Dark Romance\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDark Romance\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 23, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/982f6bd69415e06696e2fc414bc595700663ab37.jpg\" alt=\"Grand Performance\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGrand Performance\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 23, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (28)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/a577316f7ae64c8cfdd0568209a915a9fad0f8ad.jpg\" alt=\"Blessed\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlessed\u003c/strong\u003e\u003cbr\u003e\n    Acquire all Charms and receive Salubra's blessing\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/9f449ef6aacd0ef2423439931ef68466cd762456.jpg\" alt=\"Strength\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStrength\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/1b88bf9ae2b7d4b90ea3ad86470c98df618a8229.jpg\" alt=\"Ascension\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAscension\u003c/strong\u003e\u003cbr\u003e\n    Collect 2400 Essence and hear the Seer's final words\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/512e98007863df71f4531d08676464c6aceea95d.jpg\" alt=\"Neglect\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNeglect\u003c/strong\u003e\u003cbr\u003e\n    Leave Zote to die\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/23f190fe7fdc961652855d6134a096b2703bf479.jpg\" alt=\"Purity\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePurity\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/cf3a66560ca2f5a33665283ef854e518b7c8269e.jpg\" alt=\"Fool\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFool\u003c/strong\u003e\u003cbr\u003e\n    Complete the Trial of the Fool\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/d9a08fbe0afb16ffae9ebcd67c41bb73388a8c26.jpg\" alt=\"Sealed Siblings\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSealed Siblings\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/a43f645a3916af81765b548b85fe19e826ba4c42.jpg\" alt=\"Dream No More\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDream No More\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/e11d971b5f2c1e977fd5679ad15cbf40b2cb2a4a.jpg\" alt=\"Void\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVoid\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/d273e50186bcfe48d2c0a07b20bd0efa8d843293.jpg\" alt=\"Speedrun 1\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpeedrun 1\u003c/strong\u003e\u003cbr\u003e\n    Complete the game in under 10 hours\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/426bfd57af49ba6c1e199f6dffb6393fdd87e98c.jpg\" alt=\"Speedrun 2\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpeedrun 2\u003c/strong\u003e\u003cbr\u003e\n    Complete the game in under 5 hours\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/eba8bd5fc8e2d0b968bc2eb80433b8112a0d337c.jpg\" alt=\"Completion\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompletion\u003c/strong\u003e\u003cbr\u003e\n    Achieve 100% game completion and finish the game\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/6efa8b82b7062070451e05e3569356d0a871dce3.jpg\" alt=\"Speed Completion\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpeed Completion\u003c/strong\u003e\u003cbr\u003e\n    Achieve 100% game completion and finish the game in under 20 hours\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/af3a37a198cd9c0eabea41f92128c0f82b12b44b.jpg\" alt=\"Steel Soul\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSteel Soul\u003c/strong\u003e\u003cbr\u003e\n    Finish the game in Steel Soul mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/7e987f4454a86176979f97b80af057ba62689db2.jpg\" alt=\"Steel Heart\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSteel Heart\u003c/strong\u003e\u003cbr\u003e\n    Achieve 100% game completion and finish the game in Steel Soul mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/4d6373b0678c444e8ec841f81b4789d36438b8c3.jpg\" alt=\"Keen Hunter\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKeen Hunter\u003c/strong\u003e\u003cbr\u003e\n    Record all of Hallownest's creatures in the Hunter's Journal\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/ed0b80dee5a89c1ac24907b4fa9048512d95e705.jpg\" alt=\"True Hunter\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTrue Hunter\u003c/strong\u003e\u003cbr\u003e\n    Receive the Hunter's Mark\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/b5ee4828c750bcf90def63aaffe4a1b27f418efd.jpg\" alt=\"Passing of the Age\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePassing of the Age\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/f922c5de7ecfb30d3f7287e5fc472d669ec67fb8.jpg\" alt=\"Mortality\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMortality\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/53bbcbddf3f54a192796ae729edd1b56e9190fc0.jpg\" alt=\"Memory\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMemory\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/11e465df607e6c5338c241612abd25bd31f44986.jpg\" alt=\"Ritual\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRitual\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/c31aefeb1a1a66ea8df5973948938943e990def6.jpg\" alt=\"Banishment\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBanishment\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/\" alt=\"Brotherhood\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBrotherhood\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/\" alt=\"Inspiration\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInspiration\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/\" alt=\"Focus\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFocus\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/\" alt=\"Soul \u0026 Shade\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSoul \u0026 Shade\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/\" alt=\"Embrace the Void\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEmbrace the Void\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367520/817c85e5f17fcab76b7d08979b0b076afbae509d.jpg\" alt=\"Pure Completion\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePure Completion\u003c/strong\u003e\u003cbr\u003e\n    Achieve 112% game completion and finish the game.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Hollow Knight - 55.56% complete with 35/63 achievements unlocked.",
      "date_published": "2025-09-01T00:00:00Z",
      "date_modified": "2025-09-01T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "hollow-knight"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/peak/",
      "url": "https://go.waylonwalker.com/steam/peak/",
      "title": "PEAK",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/3527290/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/3527290/library_600x900.jpg\" alt=\"PEAK box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/3527290/header.jpg\u0026#39;\"/ data-glightbox=\"description: PEAK box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003ePEAK\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 3.7%\"\u003e\n        3.7%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e2/54 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e3.9h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-08-31\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (2)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/59f105343a7cda0259cfabd1992463f28dd95200.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/59f105343a7cda0259cfabd1992463f28dd95200.jpg\" alt=\"Cooking Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cooking Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCooking Badge\u003c/strong\u003e\u003cbr/\u003e\n    Cook 20 meals at campfires.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 27, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/1c7eb9a4f5e33c592fe3e205c33edcfca8fd25c1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/1c7eb9a4f5e33c592fe3e205c33edcfca8fd25c1.jpg\" alt=\"Beachcomber Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Beachcomber Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeachcomber Badge\u003c/strong\u003e\u003cbr/\u003e\n    Climb past the SHORE.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 20, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (52)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/872c6763d6463af921c3553d21e7bccba00f35d3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/872c6763d6463af921c3553d21e7bccba00f35d3.jpg\" alt=\"Peak Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Peak Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePeak Badge\u003c/strong\u003e\u003cbr/\u003e\n    Reach the PEAK.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/c209aa569e2f24ced48efc7f7d0fcfb8929ddcce.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/c209aa569e2f24ced48efc7f7d0fcfb8929ddcce.jpg\" alt=\"Knot Tying Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Knot Tying Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKnot Tying Badge\u003c/strong\u003e\u003cbr/\u003e\n    Place 100m of rope in a single expedition.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/adcfd45f1f9a5b166810bcde765b296bd7aa6307.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/adcfd45f1f9a5b166810bcde765b296bd7aa6307.jpg\" alt=\"Participation Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Participation Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eParticipation Badge\u003c/strong\u003e\u003cbr/\u003e\n    Have a friend escape the island without you.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/08c7c216ca0c200944c175bc1f03cc11f97aa327.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/08c7c216ca0c200944c175bc1f03cc11f97aa327.jpg\" alt=\"Trailblazer Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Trailblazer Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTrailblazer Badge\u003c/strong\u003e\u003cbr/\u003e\n    Climb past the TROPICS.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/4d918837219756f88b6fb411f3c6ec2b917f8523.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/4d918837219756f88b6fb411f3c6ec2b917f8523.jpg\" alt=\"Happy Camper Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Happy Camper Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHappy Camper Badge\u003c/strong\u003e\u003cbr/\u003e\n    Receive 5 Morale Boosts from campfires.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/ae8905110ad33ae398a0d21a82fe1f307064c5fb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/ae8905110ad33ae398a0d21a82fe1f307064c5fb.jpg\" alt=\"Alpinist Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Alpinist Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAlpinist Badge\u003c/strong\u003e\u003cbr/\u003e\n    Climb past the ALPINE.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/680044b125a70f9d6b3293f847bf0115f710ae98.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/680044b125a70f9d6b3293f847bf0115f710ae98.jpg\" alt=\"Volcanology Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Volcanology Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVolcanology Badge\u003c/strong\u003e\u003cbr/\u003e\n    Climb past the CALDERA.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/b6352212350b1281e5949a6524009ecfaffd303a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/b6352212350b1281e5949a6524009ecfaffd303a.jpg\" alt=\"Bouldering Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bouldering Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBouldering Badge\u003c/strong\u003e\u003cbr/\u003e\n    Place 10 pitons.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/3e34acf0bdc5e8e618d57ed4051b6674a961a761.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/3e34acf0bdc5e8e618d57ed4051b6674a961a761.jpg\" alt=\"Toxicology Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Toxicology Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eToxicology Badge\u003c/strong\u003e\u003cbr/\u003e\n    Restore 200 total poison by using items.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/f3b16344af02078e58510412f68f07f5a3bef554.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/f3b16344af02078e58510412f68f07f5a3bef554.jpg\" alt=\"Foraging Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Foraging Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eForaging Badge\u003c/strong\u003e\u003cbr/\u003e\n    Eat 5 different berries in a single expedition.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/ad231c9a8244dbe6fd7a2b722c2068719e499be4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/ad231c9a8244dbe6fd7a2b722c2068719e499be4.jpg\" alt=\"Esoterica Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Esoterica Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEsoterica Badge\u003c/strong\u003e\u003cbr/\u003e\n    Obtain a mystical item.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/0e8f81985c2d3102cd469112f97223d22125e35b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/0e8f81985c2d3102cd469112f97223d22125e35b.jpg\" alt=\"Lone Wolf Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Lone Wolf Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLone Wolf Badge\u003c/strong\u003e\u003cbr/\u003e\n    Escape the island in a solo expedition.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/2c6b08b788bb9f884be54aa6b762f161994834d2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/2c6b08b788bb9f884be54aa6b762f161994834d2.jpg\" alt=\"Clutch Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Clutch Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eClutch Badge\u003c/strong\u003e\u003cbr/\u003e\n    Resurrect 3 scouts in a single expedition.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/5f6f1907569a33eb62aebf8d0c75e66db5509549.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/5f6f1907569a33eb62aebf8d0c75e66db5509549.jpg\" alt=\"Balloon Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Balloon Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBalloon Badge\u003c/strong\u003e\u003cbr/\u003e\n    Escape the island without taking fall damage.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/52b14c9fd204fe795d8cbb61663f673b86cd1bf7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/52b14c9fd204fe795d8cbb61663f673b86cd1bf7.jpg\" alt=\"Leave No Trace Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Leave No Trace Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLeave No Trace Badge\u003c/strong\u003e\u003cbr/\u003e\n    Escape the island without placing anything on the mountain.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/2d29940da60a812076e97d91d82f316d981bc552.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/2d29940da60a812076e97d91d82f316d981bc552.jpg\" alt=\"Speed Climber Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Speed Climber Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpeed Climber Badge\u003c/strong\u003e\u003cbr/\u003e\n    Escape the island in under an hour.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/dc55f05cead6da8fc6d7534a06420ab085095dab.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/dc55f05cead6da8fc6d7534a06420ab085095dab.jpg\" alt=\"Bing Bong Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bing Bong Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBing Bong Badge\u003c/strong\u003e\u003cbr/\u003e\n    Help Bing Bong escape the island.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/7df1b695aa8618de20684d3ac3b155da1e4094cd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/7df1b695aa8618de20684d3ac3b155da1e4094cd.jpg\" alt=\"Naturalist Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Naturalist Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNaturalist Badge\u003c/strong\u003e\u003cbr/\u003e\n    Escape the island without eating any packaged food.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/ca74df980945b5ad9b1aefc8bf61686c7cee0be4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/ca74df980945b5ad9b1aefc8bf61686c7cee0be4.jpg\" alt=\"Gourmand Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Gourmand Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGourmand Badge\u003c/strong\u003e\u003cbr/\u003e\n    Escape the island after cooking and eating a coconut half, a honeycomb, a yellow winterberry, and an egg.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/30f54b2dc7c920c7a4372c34f030cf2fe4b0c904.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/30f54b2dc7c920c7a4372c34f030cf2fe4b0c904.jpg\" alt=\"Mycology Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mycology Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMycology Badge\u003c/strong\u003e\u003cbr/\u003e\n    Eat four different non-toxic mushrooms in a single expedition.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/8c3fe3d2eb49cb6d920cb2cdcf2aa6f2cb2b3167.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/8c3fe3d2eb49cb6d920cb2cdcf2aa6f2cb2b3167.jpg\" alt=\"First Aid Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: First Aid Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFirst Aid Badge\u003c/strong\u003e\u003cbr/\u003e\n    Heal your friends for 100 points of injury in a single expedition.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/2f73b72495694ecee87919961c15d9431dc9bb18.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/2f73b72495694ecee87919961c15d9431dc9bb18.jpg\" alt=\"Survivalist Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Survivalist Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSurvivalist Badge\u003c/strong\u003e\u003cbr/\u003e\n    Escape the island without ever losing consciousness.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/7d7633df25696d11b458fe294d5d00791243e9e0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/7d7633df25696d11b458fe294d5d00791243e9e0.jpg\" alt=\"Animal Serenading Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Animal Serenading Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAnimal Serenading Badge\u003c/strong\u003e\u003cbr/\u003e\n    Play the bugle for a capybara.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/ee86200b7333f439d40a1c15ca6551f5fa02e1bb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/ee86200b7333f439d40a1c15ca6551f5fa02e1bb.jpg\" alt=\"Arborist Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Arborist Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArborist Badge\u003c/strong\u003e\u003cbr/\u003e\n    Reach the top of a really big tree.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/2c65ac4eb3bbf6bbe02d19641ef4afdbdd1d5aa1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/2c65ac4eb3bbf6bbe02d19641ef4afdbdd1d5aa1.jpg\" alt=\"Mentorship Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mentorship Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMentorship Badge\u003c/strong\u003e\u003cbr/\u003e\n    Have a 1-on-1 with the Scoutmaster.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/95cc9ce0ad2a7b402f60b380c37b321f8104846e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/95cc9ce0ad2a7b402f60b380c37b321f8104846e.jpg\" alt=\"Emergency Preparedness Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Emergency Preparedness Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEmergency Preparedness Badge\u003c/strong\u003e\u003cbr/\u003e\n    Heal an unconscious friend with an item to save them from death.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/623990845edc6b7e7a3591a543923a0507356490.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/623990845edc6b7e7a3591a543923a0507356490.jpg\" alt=\"High Altitude Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: High Altitude Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHigh Altitude Badge\u003c/strong\u003e\u003cbr/\u003e\n    Climb 5000m total.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/b6712f9c8113a1a7c66ebf4c685ca41f06aab598.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/b6712f9c8113a1a7c66ebf4c685ca41f06aab598.jpg\" alt=\"Plunderer Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Plunderer Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePlunderer Badge\u003c/strong\u003e\u003cbr/\u003e\n    Open 15 luggages in a single expedition.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/7e2752b0fd334c62fa8e9c33f94ff148900c1310.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/7e2752b0fd334c62fa8e9c33f94ff148900c1310.jpg\" alt=\"Bookworm Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bookworm Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBookworm Badge\u003c/strong\u003e\u003cbr/\u003e\n    Read all of Scoutmaster Myres\u0026#39;s journal entries.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/43c8e5a5f436b7992d826b2eb1ee6ca5926fff4b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/43c8e5a5f436b7992d826b2eb1ee6ca5926fff4b.jpg\" alt=\"Endurance Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Endurance Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEndurance Badge\u003c/strong\u003e\u003cbr/\u003e\n    Climb 50m upwards without touching the ground.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/8d3b6538701b338c533edd21f6f96438ccbb5e27.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/8d3b6538701b338c533edd21f6f96438ccbb5e27.jpg\" alt=\"Nomad Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Nomad Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNomad Badge\u003c/strong\u003e\u003cbr/\u003e\n    Climb past the MESA.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/8fad9e85b8299250818db82fdf566d761121cc9a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/8fad9e85b8299250818db82fdf566d761121cc9a.jpg\" alt=\"Ultimate Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ultimate Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUltimate Badge\u003c/strong\u003e\u003cbr/\u003e\n    Catch a Flying Disc from 100m away.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/5418e39582953a08895061345a55a7182937baea.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/5418e39582953a08895061345a55a7182937baea.jpg\" alt=\"Cool Cucumber Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cool Cucumber Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCool Cucumber Badge\u003c/strong\u003e\u003cbr/\u003e\n    Climb past the MESA without ever having more than 10% Heat.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/bb7847efa4f3fdc753bd30688f557afb3b5a9b07.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/bb7847efa4f3fdc753bd30688f557afb3b5a9b07.jpg\" alt=\"Needlepoint Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Needlepoint Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNeedlepoint Badge\u003c/strong\u003e\u003cbr/\u003e\n    Have a lot of cactuses stuck to you.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/2ea1f88b36c6416b5bc58e3bffb7a63510eee39f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/2ea1f88b36c6416b5bc58e3bffb7a63510eee39f.jpg\" alt=\"Aeronautics Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Aeronautics Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAeronautics Badge\u003c/strong\u003e\u003cbr/\u003e\n    Achieve flight.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/50646ee6476bba68169b763a7b7f4a465c09d583.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/50646ee6476bba68169b763a7b7f4a465c09d583.jpg\" alt=\"24 Karat Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: 24 Karat Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e24 Karat Badge\u003c/strong\u003e\u003cbr/\u003e\n    Offer The Kiln a worthy sacrifice.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/f0a1dda89831d0d613b9b73a8f32d96f417b54c0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/f0a1dda89831d0d613b9b73a8f32d96f417b54c0.jpg\" alt=\"Resourcefulness Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Resourcefulness Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eResourcefulness Badge\u003c/strong\u003e\u003cbr/\u003e\n    Give in to your hunger.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/7e05f985fbd08bafb766314917b5cd857c6c2a7a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/7e05f985fbd08bafb766314917b5cd857c6c2a7a.jpg\" alt=\"Daredevil Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Daredevil Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDaredevil Badge\u003c/strong\u003e\u003cbr/\u003e\n    Shoot across the MESA canyon in a Scout Cannon.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/b49a0c2aa5bb652c2e6ecfdc57ccc28d49e33f39.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/b49a0c2aa5bb652c2e6ecfdc57ccc28d49e33f39.jpg\" alt=\"Megaentomology Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Megaentomology Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMegaentomology Badge\u003c/strong\u003e\u003cbr/\u003e\n    Survive an Antlion attack.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/b718db38a9d552456b69608abb21712a00a17ccf.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/b718db38a9d552456b69608abb21712a00a17ccf.jpg\" alt=\"Astronomy Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Astronomy Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAstronomy Badge\u003c/strong\u003e\u003cbr/\u003e\n    Look a little too closely at the blazing sun.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/be89f4398d2d5e045084d0f3ae6fc614b9502361.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/be89f4398d2d5e045084d0f3ae6fc614b9502361.jpg\" alt=\"Bundled Up Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bundled Up Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBundled Up Badge\u003c/strong\u003e\u003cbr/\u003e\n    Climb past the ALPINE without ever having more than 20% Cold.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/3d4ac6ffb9a3c7b1d802b91aebde66e0e7450b74.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/3d4ac6ffb9a3c7b1d802b91aebde66e0e7450b74.jpg\" alt=\"Forestry Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Forestry Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eForestry Badge\u003c/strong\u003e\u003cbr/\u003e\n    Climb past the ROOTS.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/35c2dd94aee952a32c1650bffc2684e21c945db7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/35c2dd94aee952a32c1650bffc2684e21c945db7.jpg\" alt=\"Tread Lightly Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tread Lightly Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTread Lightly Badge\u003c/strong\u003e\u003cbr/\u003e\n    Climb past the ROOTS without ever having more than 25% spores.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/5b223346eb5582f81162d92c6c3cc3bf033c7f0f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/5b223346eb5582f81162d92c6c3cc3bf033c7f0f.jpg\" alt=\"Web Security Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Web Security Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWeb Security Badge\u003c/strong\u003e\u003cbr/\u003e\n    Escape a spider\u0026#39;s web and survive.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/7ef1a19e7f1fc0156e8fbdc51425e6518cd2628b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/7ef1a19e7f1fc0156e8fbdc51425e6518cd2628b.jpg\" alt=\"Undead Encounter Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Undead Encounter Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUndead Encounter Badge\u003c/strong\u003e\u003cbr/\u003e\n    Cure yourself from a zombie bite.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/60c5d0119b273cabd8ad12e29f48e3b32dacf874.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/60c5d0119b273cabd8ad12e29f48e3b32dacf874.jpg\" alt=\"Advanced Mycology Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Advanced Mycology Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAdvanced Mycology Badge\u003c/strong\u003e\u003cbr/\u003e\n    Try all 5 types of Shroomberry in a single expedition.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/8c2578497e1d65abff1092f5229cef68c061b3b9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/8c2578497e1d65abff1092f5229cef68c061b3b9.jpg\" alt=\"Disaster Response Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Disaster Response Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDisaster Response Badge\u003c/strong\u003e\u003cbr/\u003e\n    Pull an unconscious friend 30m with the Rescue Claw.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/bae410cc1fda34ebea932ccd7c1b5e7595345a3a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/bae410cc1fda34ebea932ccd7c1b5e7595345a3a.jpg\" alt=\"Calcium Intake Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Calcium Intake Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCalcium Intake Badge\u003c/strong\u003e\u003cbr/\u003e\n    Block 100 total damage with the Fortified Milk.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/070ee570b3e6bf5299bcf9d9077e1d840eb812ad.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/070ee570b3e6bf5299bcf9d9077e1d840eb812ad.jpg\" alt=\"Competitive Eating Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Competitive Eating Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompetitive Eating Badge\u003c/strong\u003e\u003cbr/\u003e\n    Eat 3 Hot Dogs in 5 seconds or less.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/77f181c574365f647af0073f559b639213855576.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/77f181c574365f647af0073f559b639213855576.jpg\" alt=\"Applied Esoterica Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Applied Esoterica Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eApplied Esoterica Badge\u003c/strong\u003e\u003cbr/\u003e\n    Resurrect a friend using unholy means.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/6ff2bd89d83094ee9047e2455f1e64fdcb6612b3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/6ff2bd89d83094ee9047e2455f1e64fdcb6612b3.jpg\" alt=\"Mycoacrobatics Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mycoacrobatics Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMycoacrobatics Badge\u003c/strong\u003e\u003cbr/\u003e\n    Bounce up 40m off a mushroom.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/3b753366be9aa0a7577f0268fb36841555ffe410.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/3b753366be9aa0a7577f0268fb36841555ffe410.jpg\" alt=\"Cryptogastronomy Badge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cryptogastronomy Badge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCryptogastronomy Badge\u003c/strong\u003e\u003cbr/\u003e\n    Cook and eat a Mandrake.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/3527290/library_600x900.jpg\" alt=\"PEAK box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/3527290/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003ePEAK\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 3.7%\"\u003e\n        3.7%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e2/54 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e3.9h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-08-31\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (2)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/59f105343a7cda0259cfabd1992463f28dd95200.jpg\" alt=\"Cooking Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCooking Badge\u003c/strong\u003e\u003cbr\u003e\n    Cook 20 meals at campfires.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 27, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/1c7eb9a4f5e33c592fe3e205c33edcfca8fd25c1.jpg\" alt=\"Beachcomber Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeachcomber Badge\u003c/strong\u003e\u003cbr\u003e\n    Climb past the SHORE.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 20, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (52)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/872c6763d6463af921c3553d21e7bccba00f35d3.jpg\" alt=\"Peak Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePeak Badge\u003c/strong\u003e\u003cbr\u003e\n    Reach the PEAK.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/c209aa569e2f24ced48efc7f7d0fcfb8929ddcce.jpg\" alt=\"Knot Tying Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKnot Tying Badge\u003c/strong\u003e\u003cbr\u003e\n    Place 100m of rope in a single expedition.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/adcfd45f1f9a5b166810bcde765b296bd7aa6307.jpg\" alt=\"Participation Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eParticipation Badge\u003c/strong\u003e\u003cbr\u003e\n    Have a friend escape the island without you.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/08c7c216ca0c200944c175bc1f03cc11f97aa327.jpg\" alt=\"Trailblazer Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTrailblazer Badge\u003c/strong\u003e\u003cbr\u003e\n    Climb past the TROPICS.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/4d918837219756f88b6fb411f3c6ec2b917f8523.jpg\" alt=\"Happy Camper Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHappy Camper Badge\u003c/strong\u003e\u003cbr\u003e\n    Receive 5 Morale Boosts from campfires.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/ae8905110ad33ae398a0d21a82fe1f307064c5fb.jpg\" alt=\"Alpinist Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAlpinist Badge\u003c/strong\u003e\u003cbr\u003e\n    Climb past the ALPINE.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/680044b125a70f9d6b3293f847bf0115f710ae98.jpg\" alt=\"Volcanology Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVolcanology Badge\u003c/strong\u003e\u003cbr\u003e\n    Climb past the CALDERA.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/b6352212350b1281e5949a6524009ecfaffd303a.jpg\" alt=\"Bouldering Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBouldering Badge\u003c/strong\u003e\u003cbr\u003e\n    Place 10 pitons.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/3e34acf0bdc5e8e618d57ed4051b6674a961a761.jpg\" alt=\"Toxicology Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eToxicology Badge\u003c/strong\u003e\u003cbr\u003e\n    Restore 200 total poison by using items.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/f3b16344af02078e58510412f68f07f5a3bef554.jpg\" alt=\"Foraging Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eForaging Badge\u003c/strong\u003e\u003cbr\u003e\n    Eat 5 different berries in a single expedition.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/ad231c9a8244dbe6fd7a2b722c2068719e499be4.jpg\" alt=\"Esoterica Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEsoterica Badge\u003c/strong\u003e\u003cbr\u003e\n    Obtain a mystical item.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/0e8f81985c2d3102cd469112f97223d22125e35b.jpg\" alt=\"Lone Wolf Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLone Wolf Badge\u003c/strong\u003e\u003cbr\u003e\n    Escape the island in a solo expedition.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/2c6b08b788bb9f884be54aa6b762f161994834d2.jpg\" alt=\"Clutch Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eClutch Badge\u003c/strong\u003e\u003cbr\u003e\n    Resurrect 3 scouts in a single expedition.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/5f6f1907569a33eb62aebf8d0c75e66db5509549.jpg\" alt=\"Balloon Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBalloon Badge\u003c/strong\u003e\u003cbr\u003e\n    Escape the island without taking fall damage.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/52b14c9fd204fe795d8cbb61663f673b86cd1bf7.jpg\" alt=\"Leave No Trace Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLeave No Trace Badge\u003c/strong\u003e\u003cbr\u003e\n    Escape the island without placing anything on the mountain.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/2d29940da60a812076e97d91d82f316d981bc552.jpg\" alt=\"Speed Climber Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpeed Climber Badge\u003c/strong\u003e\u003cbr\u003e\n    Escape the island in under an hour.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/dc55f05cead6da8fc6d7534a06420ab085095dab.jpg\" alt=\"Bing Bong Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBing Bong Badge\u003c/strong\u003e\u003cbr\u003e\n    Help Bing Bong escape the island.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/7df1b695aa8618de20684d3ac3b155da1e4094cd.jpg\" alt=\"Naturalist Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNaturalist Badge\u003c/strong\u003e\u003cbr\u003e\n    Escape the island without eating any packaged food.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/ca74df980945b5ad9b1aefc8bf61686c7cee0be4.jpg\" alt=\"Gourmand Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGourmand Badge\u003c/strong\u003e\u003cbr\u003e\n    Escape the island after cooking and eating a coconut half, a honeycomb, a yellow winterberry, and an egg.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/30f54b2dc7c920c7a4372c34f030cf2fe4b0c904.jpg\" alt=\"Mycology Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMycology Badge\u003c/strong\u003e\u003cbr\u003e\n    Eat four different non-toxic mushrooms in a single expedition.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/8c3fe3d2eb49cb6d920cb2cdcf2aa6f2cb2b3167.jpg\" alt=\"First Aid Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFirst Aid Badge\u003c/strong\u003e\u003cbr\u003e\n    Heal your friends for 100 points of injury in a single expedition.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/2f73b72495694ecee87919961c15d9431dc9bb18.jpg\" alt=\"Survivalist Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSurvivalist Badge\u003c/strong\u003e\u003cbr\u003e\n    Escape the island without ever losing consciousness.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/7d7633df25696d11b458fe294d5d00791243e9e0.jpg\" alt=\"Animal Serenading Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAnimal Serenading Badge\u003c/strong\u003e\u003cbr\u003e\n    Play the bugle for a capybara.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/ee86200b7333f439d40a1c15ca6551f5fa02e1bb.jpg\" alt=\"Arborist Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArborist Badge\u003c/strong\u003e\u003cbr\u003e\n    Reach the top of a really big tree.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/2c65ac4eb3bbf6bbe02d19641ef4afdbdd1d5aa1.jpg\" alt=\"Mentorship Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMentorship Badge\u003c/strong\u003e\u003cbr\u003e\n    Have a 1-on-1 with the Scoutmaster.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/95cc9ce0ad2a7b402f60b380c37b321f8104846e.jpg\" alt=\"Emergency Preparedness Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEmergency Preparedness Badge\u003c/strong\u003e\u003cbr\u003e\n    Heal an unconscious friend with an item to save them from death.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/623990845edc6b7e7a3591a543923a0507356490.jpg\" alt=\"High Altitude Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHigh Altitude Badge\u003c/strong\u003e\u003cbr\u003e\n    Climb 5000m total.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/b6712f9c8113a1a7c66ebf4c685ca41f06aab598.jpg\" alt=\"Plunderer Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePlunderer Badge\u003c/strong\u003e\u003cbr\u003e\n    Open 15 luggages in a single expedition.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/7e2752b0fd334c62fa8e9c33f94ff148900c1310.jpg\" alt=\"Bookworm Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBookworm Badge\u003c/strong\u003e\u003cbr\u003e\n    Read all of Scoutmaster Myres's journal entries.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/43c8e5a5f436b7992d826b2eb1ee6ca5926fff4b.jpg\" alt=\"Endurance Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEndurance Badge\u003c/strong\u003e\u003cbr\u003e\n    Climb 50m upwards without touching the ground.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/8d3b6538701b338c533edd21f6f96438ccbb5e27.jpg\" alt=\"Nomad Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNomad Badge\u003c/strong\u003e\u003cbr\u003e\n    Climb past the MESA.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/8fad9e85b8299250818db82fdf566d761121cc9a.jpg\" alt=\"Ultimate Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUltimate Badge\u003c/strong\u003e\u003cbr\u003e\n    Catch a Flying Disc from 100m away.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/5418e39582953a08895061345a55a7182937baea.jpg\" alt=\"Cool Cucumber Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCool Cucumber Badge\u003c/strong\u003e\u003cbr\u003e\n    Climb past the MESA without ever having more than 10% Heat.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/bb7847efa4f3fdc753bd30688f557afb3b5a9b07.jpg\" alt=\"Needlepoint Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNeedlepoint Badge\u003c/strong\u003e\u003cbr\u003e\n    Have a lot of cactuses stuck to you.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/2ea1f88b36c6416b5bc58e3bffb7a63510eee39f.jpg\" alt=\"Aeronautics Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAeronautics Badge\u003c/strong\u003e\u003cbr\u003e\n    Achieve flight.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/50646ee6476bba68169b763a7b7f4a465c09d583.jpg\" alt=\"24 Karat Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e24 Karat Badge\u003c/strong\u003e\u003cbr\u003e\n    Offer The Kiln a worthy sacrifice.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/f0a1dda89831d0d613b9b73a8f32d96f417b54c0.jpg\" alt=\"Resourcefulness Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eResourcefulness Badge\u003c/strong\u003e\u003cbr\u003e\n    Give in to your hunger.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/7e05f985fbd08bafb766314917b5cd857c6c2a7a.jpg\" alt=\"Daredevil Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDaredevil Badge\u003c/strong\u003e\u003cbr\u003e\n    Shoot across the MESA canyon in a Scout Cannon.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/b49a0c2aa5bb652c2e6ecfdc57ccc28d49e33f39.jpg\" alt=\"Megaentomology Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMegaentomology Badge\u003c/strong\u003e\u003cbr\u003e\n    Survive an Antlion attack.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/b718db38a9d552456b69608abb21712a00a17ccf.jpg\" alt=\"Astronomy Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAstronomy Badge\u003c/strong\u003e\u003cbr\u003e\n    Look a little too closely at the blazing sun.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/be89f4398d2d5e045084d0f3ae6fc614b9502361.jpg\" alt=\"Bundled Up Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBundled Up Badge\u003c/strong\u003e\u003cbr\u003e\n    Climb past the ALPINE without ever having more than 20% Cold.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/3d4ac6ffb9a3c7b1d802b91aebde66e0e7450b74.jpg\" alt=\"Forestry Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eForestry Badge\u003c/strong\u003e\u003cbr\u003e\n    Climb past the ROOTS.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/35c2dd94aee952a32c1650bffc2684e21c945db7.jpg\" alt=\"Tread Lightly Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTread Lightly Badge\u003c/strong\u003e\u003cbr\u003e\n    Climb past the ROOTS without ever having more than 25% spores.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/5b223346eb5582f81162d92c6c3cc3bf033c7f0f.jpg\" alt=\"Web Security Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWeb Security Badge\u003c/strong\u003e\u003cbr\u003e\n    Escape a spider's web and survive.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/7ef1a19e7f1fc0156e8fbdc51425e6518cd2628b.jpg\" alt=\"Undead Encounter Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUndead Encounter Badge\u003c/strong\u003e\u003cbr\u003e\n    Cure yourself from a zombie bite.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/60c5d0119b273cabd8ad12e29f48e3b32dacf874.jpg\" alt=\"Advanced Mycology Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAdvanced Mycology Badge\u003c/strong\u003e\u003cbr\u003e\n    Try all 5 types of Shroomberry in a single expedition.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/8c2578497e1d65abff1092f5229cef68c061b3b9.jpg\" alt=\"Disaster Response Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDisaster Response Badge\u003c/strong\u003e\u003cbr\u003e\n    Pull an unconscious friend 30m with the Rescue Claw.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/bae410cc1fda34ebea932ccd7c1b5e7595345a3a.jpg\" alt=\"Calcium Intake Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCalcium Intake Badge\u003c/strong\u003e\u003cbr\u003e\n    Block 100 total damage with the Fortified Milk.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/070ee570b3e6bf5299bcf9d9077e1d840eb812ad.jpg\" alt=\"Competitive Eating Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompetitive Eating Badge\u003c/strong\u003e\u003cbr\u003e\n    Eat 3 Hot Dogs in 5 seconds or less.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/77f181c574365f647af0073f559b639213855576.jpg\" alt=\"Applied Esoterica Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eApplied Esoterica Badge\u003c/strong\u003e\u003cbr\u003e\n    Resurrect a friend using unholy means.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/6ff2bd89d83094ee9047e2455f1e64fdcb6612b3.jpg\" alt=\"Mycoacrobatics Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMycoacrobatics Badge\u003c/strong\u003e\u003cbr\u003e\n    Bounce up 40m off a mushroom.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/3527290/3b753366be9aa0a7577f0268fb36841555ffe410.jpg\" alt=\"Cryptogastronomy Badge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCryptogastronomy Badge\u003c/strong\u003e\u003cbr\u003e\n    Cook and eat a Mandrake.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for PEAK - 3.7% complete with 2/54 achievements unlocked.",
      "date_published": "2025-08-31T00:00:00Z",
      "date_modified": "2025-08-31T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "peak"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/a-more-human-internet/",
      "url": "https://go.waylonwalker.com/a-more-human-internet/",
      "title": "A More Human Internet",
      "content_html": "\u003cp\u003eAn idea for a post that may never happen\u003c/p\u003e\n",
      "content_text": "\nAn idea for a post that may never happen\n\n\n\n",
      "summary": "An idea for a post that may never happen",
      "date_published": "2025-08-21T14:36:00Z",
      "date_modified": "2025-08-21T14:36:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "webdev",
        "blog"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/factorio/",
      "url": "https://go.waylonwalker.com/steam/factorio/",
      "title": "Factorio",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/427520/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/427520/library_600x900.jpg\" alt=\"Factorio box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/427520/header.jpg\u0026#39;\"/ data-glightbox=\"description: Factorio box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eFactorio\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 18.18%\"\u003e\n        18.18%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e16/88 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e51.2h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-08-17\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (16)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/b9540428e8efdc7ee2b4c90f4b5b02367e0c0a59.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/b9540428e8efdc7ee2b4c90f4b5b02367e0c0a59.jpg\" alt=\"Automated construction\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Automated construction\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAutomated construction\u003c/strong\u003e\u003cbr/\u003e\n    Construct 100 machines using robots.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 16, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/661261c4eb1f55a688086892b028b7a987d7dda5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/661261c4eb1f55a688086892b028b7a987d7dda5.jpg\" alt=\"Circuit veteran 1\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Circuit veteran 1\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCircuit veteran 1\u003c/strong\u003e\u003cbr/\u003e\n    Produce 1.0k advanced circuits per hour.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 15, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/6d9a57494300e9d4865bcd742324fea315e214c7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/6d9a57494300e9d4865bcd742324fea315e214c7.jpg\" alt=\"Eco unfriendly\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Eco unfriendly\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEco unfriendly\u003c/strong\u003e\u003cbr/\u003e\n    Research oil processing.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 11, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/f5e5bc078d13b629b5ceee342a35b02c33afe022.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/f5e5bc078d13b629b5ceee342a35b02c33afe022.jpg\" alt=\"Getting on track\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Getting on track\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGetting on track\u003c/strong\u003e\u003cbr/\u003e\n    Build a locomotive.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 11, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/7acd8c1392f87748aba32dbd1318bb7e2f725f2c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/7acd8c1392f87748aba32dbd1318bb7e2f725f2c.jpg\" alt=\"Iron throne 1\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Iron throne 1\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIron throne 1\u003c/strong\u003e\u003cbr/\u003e\n    Produce 20k iron plates per hour.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 11, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/3e51374fdc48ce64d3f9e0e777232994050dd1eb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/3e51374fdc48ce64d3f9e0e777232994050dd1eb.jpg\" alt=\"It stinks and they don\u0026#39;t like it\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: It stinks and they don\u0026#39;t like it\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt stinks and they don\u0026#39;t like it\u003c/strong\u003e\u003cbr/\u003e\n    Trigger an alien attack by pollution.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 11, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/b39cc492b38eb9d08a56f37454ff9514d18371be.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/b39cc492b38eb9d08a56f37454ff9514d18371be.jpg\" alt=\"Mass production 1\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mass production 1\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMass production 1\u003c/strong\u003e\u003cbr/\u003e\n    Produce 10k electronic circuits.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 12, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/acf97fe357a385889c4b2d2f626808055b256602.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/acf97fe357a385889c4b2d2f626808055b256602.jpg\" alt=\"Trans-Factorio express\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Trans-Factorio express\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTrans-Factorio express\u003c/strong\u003e\u003cbr/\u003e\n    Have a train plan a path 1,000 tiles or longer.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 11, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/e1d92af6edd8a80fe854fc9c64f2d4d6b77936ce.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/e1d92af6edd8a80fe854fc9c64f2d4d6b77936ce.jpg\" alt=\"Watch your step\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Watch your step\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWatch your step\u003c/strong\u003e\u003cbr/\u003e\n    Get killed by a moving locomotive.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 13, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/9eed2629b3859b2f7e7d55a916bf14c2a6c31f69.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/9eed2629b3859b2f7e7d55a916bf14c2a6c31f69.jpg\" alt=\"Automate this!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Automate this!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAutomate this!\u003c/strong\u003e\u003cbr/\u003e\n    Build an assembling machine.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 10, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/40afb2da9fc5cab9e80b469568e75d8fb089e05b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/40afb2da9fc5cab9e80b469568e75d8fb089e05b.jpg\" alt=\"Pest control\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Pest control\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePest control\u003c/strong\u003e\u003cbr/\u003e\n    Destroy a biter spawner.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 11, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/41a3b63ce89d975980db6d1ca0487bd98757874d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/41a3b63ce89d975980db6d1ca0487bd98757874d.jpg\" alt=\"Research with automation\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Research with automation\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eResearch with automation\u003c/strong\u003e\u003cbr/\u003e\n    Research a technology using automation science packs.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 10, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/6b692734f1e5017bba84597ca2b5acd3ade0355b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/6b692734f1e5017bba84597ca2b5acd3ade0355b.jpg\" alt=\"Research with chemicals\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Research with chemicals\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eResearch with chemicals\u003c/strong\u003e\u003cbr/\u003e\n    Research a technology using chemical science packs.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 13, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/c8188e93148c1e14950c0a172366690daf4a7ed1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/c8188e93148c1e14950c0a172366690daf4a7ed1.jpg\" alt=\"Research with logistics\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Research with logistics\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eResearch with logistics\u003c/strong\u003e\u003cbr/\u003e\n    Research a technology using logistic science packs.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 11, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/8ff6536d4172954ef581fc93b80d9082f6d011a9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/8ff6536d4172954ef581fc93b80d9082f6d011a9.jpg\" alt=\"Solar power\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Solar power\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSolar power\u003c/strong\u003e\u003cbr/\u003e\n    Start producing electric power by solar panels.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 11, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/ea783e418c1af691bb148c912d3a2eac19538799.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/ea783e418c1af691bb148c912d3a2eac19538799.jpg\" alt=\"Steam power\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Steam power\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSteam power\u003c/strong\u003e\u003cbr/\u003e\n    Start producing electric power by steam engine.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 10, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (72)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/e0c48b248e6a6cc9d73cc6a40450a5e52dab1a4a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/e0c48b248e6a6cc9d73cc6a40450a5e52dab1a4a.jpg\" alt=\"Automated cleanup\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Automated cleanup\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAutomated cleanup\u003c/strong\u003e\u003cbr/\u003e\n    Deconstruct 100 objects with the construction robots.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/f1a58ea294c90e70675d00ddb9b786ce0b10229c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/f1a58ea294c90e70675d00ddb9b786ce0b10229c.jpg\" alt=\"Circuit veteran 2\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Circuit veteran 2\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCircuit veteran 2\u003c/strong\u003e\u003cbr/\u003e\n    Produce 10k advanced circuits per hour.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/02e538c2592312e809b65d98c55f30d3dfdaadc3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/02e538c2592312e809b65d98c55f30d3dfdaadc3.jpg\" alt=\"Circuit veteran 3\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Circuit veteran 3\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCircuit veteran 3\u003c/strong\u003e\u003cbr/\u003e\n    Produce 25k advanced circuits per hour.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/607f54f482db98368f4e2dc91f52168aa0c2a7d5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/607f54f482db98368f4e2dc91f52168aa0c2a7d5.jpg\" alt=\"Computer age 1\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Computer age 1\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eComputer age 1\u003c/strong\u003e\u003cbr/\u003e\n    Produce 500 processing units per hour.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/6551260ef930cb73ce5ebff208bf844091c40618.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/6551260ef930cb73ce5ebff208bf844091c40618.jpg\" alt=\"Computer age 2\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Computer age 2\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eComputer age 2\u003c/strong\u003e\u003cbr/\u003e\n    Produce 1.0k processing units per hour.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/90f9aaa78fa62e688c5107a917a2e62c214f0973.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/90f9aaa78fa62e688c5107a917a2e62c214f0973.jpg\" alt=\"Computer age 3\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Computer age 3\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eComputer age 3\u003c/strong\u003e\u003cbr/\u003e\n    Produce 5k processing units per hour.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/36cb61c6fa886e1a736c64d490b5a1ea6baa1826.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/36cb61c6fa886e1a736c64d490b5a1ea6baa1826.jpg\" alt=\"You\u0026#39;ve got a package\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: You\u0026#39;ve got a package\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou\u0026#39;ve got a package\u003c/strong\u003e\u003cbr/\u003e\n    Supply the character by logistic robot.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/a3a45bf567a1e8848169348bb4eda8f33a47ccce.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/a3a45bf567a1e8848169348bb4eda8f33a47ccce.jpg\" alt=\"Delivery service\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Delivery service\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDelivery service\u003c/strong\u003e\u003cbr/\u003e\n    Supply the character with 10k items delivered by logistic robots.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/f450fe5dc4f0768e228fab3f18d6f5b4e520eeba.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/f450fe5dc4f0768e228fab3f18d6f5b4e520eeba.jpg\" alt=\"Getting on track like a pro\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Getting on track like a pro\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGetting on track like a pro\u003c/strong\u003e\u003cbr/\u003e\n    Build a locomotive within the first 90 minutes of the game.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/c90a3320e9f5088ef5f500d12d266acc26c756f4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/c90a3320e9f5088ef5f500d12d266acc26c756f4.jpg\" alt=\"Golem\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Golem\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGolem\u003c/strong\u003e\u003cbr/\u003e\n    Survive a hit of 500 damage or more.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/e8ed80e5d37d42ad75f8579c3c8857b525a59307.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/e8ed80e5d37d42ad75f8579c3c8857b525a59307.jpg\" alt=\"Iron throne 2\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Iron throne 2\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIron throne 2\u003c/strong\u003e\u003cbr/\u003e\n    Produce 200k iron plates per hour.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/dbb57490929910717a62021311f210bd8dbe3ec2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/dbb57490929910717a62021311f210bd8dbe3ec2.jpg\" alt=\"Iron throne 3\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Iron throne 3\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIron throne 3\u003c/strong\u003e\u003cbr/\u003e\n    Produce 400k iron plates per hour.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/06056d64ac23ffc36e99da6269923ecbf87ba166.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/06056d64ac23ffc36e99da6269923ecbf87ba166.jpg\" alt=\"Lazy bastard\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Lazy bastard\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLazy bastard\u003c/strong\u003e\u003cbr/\u003e\n    Launch a rocket to space while manually crafting no more than 111 items.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/1392eef06d6324b87bd551e920d84c3f61bb6c3b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/1392eef06d6324b87bd551e920d84c3f61bb6c3b.jpg\" alt=\"Logistic network embargo\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Logistic network embargo\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLogistic network embargo\u003c/strong\u003e\u003cbr/\u003e\n    Finish research with space science pack for the base game or any planetary science pack for Space Age without building any active provider, buffer, or requester chests.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/c6c496a921f13f1be5745689149ce98643258310.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/c6c496a921f13f1be5745689149ce98643258310.jpg\" alt=\"Mass production 2\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mass production 2\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMass production 2\u003c/strong\u003e\u003cbr/\u003e\n    Produce 1M electronic circuits.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/473d481603bd0fb03a62388d3b21ba914d9bc854.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/473d481603bd0fb03a62388d3b21ba914d9bc854.jpg\" alt=\"Mass production 3\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mass production 3\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMass production 3\u003c/strong\u003e\u003cbr/\u003e\n    Produce 20M electronic circuits.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/fe3c55eda5d3622dc15afe955438b816aa9dbad4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/fe3c55eda5d3622dc15afe955438b816aa9dbad4.jpg\" alt=\"Minions\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Minions\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMinions\u003c/strong\u003e\u003cbr/\u003e\n    Have 100 combat robots or more following you.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/a57f168382712b5d3636e269a83bc109691a5c2c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/a57f168382712b5d3636e269a83bc109691a5c2c.jpg\" alt=\"Smoke me a kipper, I\u0026#39;ll be back for breakfast\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Smoke me a kipper, I\u0026#39;ll be back for breakfast\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSmoke me a kipper, I\u0026#39;ll be back for breakfast\u003c/strong\u003e\u003cbr/\u003e\n    Launch a rocket to space.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/9f01127b856cf1518d15e93121c48ef3eaa02fc4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/9f01127b856cf1518d15e93121c48ef3eaa02fc4.jpg\" alt=\"No time for chitchat\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: No time for chitchat\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNo time for chitchat\u003c/strong\u003e\u003cbr/\u003e\n    Launch a rocket to space within 15 hours.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/672a9bbabbc29a0c15afda9c7e09a38975e669dc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/672a9bbabbc29a0c15afda9c7e09a38975e669dc.jpg\" alt=\"There is no spoon\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: There is no spoon\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThere is no spoon\u003c/strong\u003e\u003cbr/\u003e\n    Launch a rocket to space within 8 hours.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/677d3d0ab28d3b4f3b955efd438c2ee0040d8607.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/677d3d0ab28d3b4f3b955efd438c2ee0040d8607.jpg\" alt=\"Pyromaniac\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Pyromaniac\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePyromaniac\u003c/strong\u003e\u003cbr/\u003e\n    Destroy 10k trees with fire.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/05358ff927aa7a31d4aaf18ad358dbac9a5f0e87.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/05358ff927aa7a31d4aaf18ad358dbac9a5f0e87.jpg\" alt=\"Raining bullets\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Raining bullets\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRaining bullets\u003c/strong\u003e\u003cbr/\u003e\n    Launch a rocket to space without building any laser turrets.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/ed0595e7b473492f88cdaa6aa7646be223f823e4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/ed0595e7b473492f88cdaa6aa7646be223f823e4.jpg\" alt=\"Run Forrest, run\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Run Forrest, run\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRun Forrest, run\u003c/strong\u003e\u003cbr/\u003e\n    Destroy 100 trees by impact.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/3312595cf7a076d299bcf57c0713023d29abbc2a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/3312595cf7a076d299bcf57c0713023d29abbc2a.jpg\" alt=\"Solaris\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Solaris\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSolaris\u003c/strong\u003e\u003cbr/\u003e\n    Produce more than 10 GJ per hour using only solar panels.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/e47e702d5cc68562e9bcfe8d964180f665080017.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/e47e702d5cc68562e9bcfe8d964180f665080017.jpg\" alt=\"So long and thanks for all the fish\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: So long and thanks for all the fish\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSo long and thanks for all the fish\u003c/strong\u003e\u003cbr/\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/1692469a0f40c7bc7cfc727656ed29d9003215d0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/1692469a0f40c7bc7cfc727656ed29d9003215d0.jpg\" alt=\"Steam all the way\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Steam all the way\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSteam all the way\u003c/strong\u003e\u003cbr/\u003e\n    Launch a rocket to space without building any solar panels.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/2aa2d449aa1e458a8a2efd7c129c2db8508b384d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/2aa2d449aa1e458a8a2efd7c129c2db8508b384d.jpg\" alt=\"Steamrolled\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Steamrolled\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSteamrolled\u003c/strong\u003e\u003cbr/\u003e\n    Destroy 10 spawners by impact.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/aea4109ce6c579b2ac9e90047033e13971909a34.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/aea4109ce6c579b2ac9e90047033e13971909a34.jpg\" alt=\"Tech maniac\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tech maniac\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTech maniac\u003c/strong\u003e\u003cbr/\u003e\n    Research all technologies.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/bca8a790e94392e41e26b06286220c9c84cce0d1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/bca8a790e94392e41e26b06286220c9c84cce0d1.jpg\" alt=\"You are doing it right\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: You are doing it right\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou are doing it right\u003c/strong\u003e\u003cbr/\u003e\n    Construct more machines using robots than manually.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/3cf0ab41521827dc38279ba13e0bff2c6a22d6bb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/3cf0ab41521827dc38279ba13e0bff2c6a22d6bb.jpg\" alt=\"Arachnophilia\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Arachnophilia\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArachnophilia\u003c/strong\u003e\u003cbr/\u003e\n    Build a spidertron.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/c2fb39ccbc6539546ae3bc2aa0423a86342b1ff5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/c2fb39ccbc6539546ae3bc2aa0423a86342b1ff5.jpg\" alt=\"Art of siege\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Art of siege\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArt of siege\u003c/strong\u003e\u003cbr/\u003e\n    Destroy an enemy structure using artillery.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/87dec96764d95e3925a840571256b09e8c4d8a84.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/87dec96764d95e3925a840571256b09e8c4d8a84.jpg\" alt=\"Crafting with efficiency\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Crafting with efficiency\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCrafting with efficiency\u003c/strong\u003e\u003cbr/\u003e\n    Craft an efficiency module 3.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/7093129c7107ec352221dc4e200cb713e789ee39.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/7093129c7107ec352221dc4e200cb713e789ee39.jpg\" alt=\"Crafting with productivity\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Crafting with productivity\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCrafting with productivity\u003c/strong\u003e\u003cbr/\u003e\n    Craft a productivity module 3.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/0248b4d3ca941165cd30da55e2a25a6e8e960389.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/0248b4d3ca941165cd30da55e2a25a6e8e960389.jpg\" alt=\"Crafting with quality\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Crafting with quality\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCrafting with quality\u003c/strong\u003e\u003cbr/\u003e\n    Craft a quality module 3.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/7dd49addf184971dd8e8f661a946495db1b7a300.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/7dd49addf184971dd8e8f661a946495db1b7a300.jpg\" alt=\"Crafting with speed\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Crafting with speed\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCrafting with speed\u003c/strong\u003e\u003cbr/\u003e\n    Craft a speed module 3.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/1b0119b55c05754e30a48931855a6946bc837d69.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/1b0119b55c05754e30a48931855a6946bc837d69.jpg\" alt=\"I am the destroyer of worlds\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: I am the destroyer of worlds\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI am the destroyer of worlds\u003c/strong\u003e\u003cbr/\u003e\n    Use an atomic bomb.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/015a096783d904852ef88d4c6ad4cac961cdad8f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/015a096783d904852ef88d4c6ad4cac961cdad8f.jpg\" alt=\"Express delivery\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Express delivery\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpress delivery\u003c/strong\u003e\u003cbr/\u003e\n    Finish the game within 40 hours.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/6e7b7d6234175c1514a2629be49f4ccaafd10ecc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/6e7b7d6234175c1514a2629be49f4ccaafd10ecc.jpg\" alt=\"Fusion power\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fusion power\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFusion power\u003c/strong\u003e\u003cbr/\u003e\n    Start producing electric power by fusion powerplant.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/e4cc2ffadf1c14e6edaf65be27d5556db0e58691.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/e4cc2ffadf1c14e6edaf65be27d5556db0e58691.jpg\" alt=\"Get off my lawn\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Get off my lawn\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGet off my lawn\u003c/strong\u003e\u003cbr/\u003e\n    Disturb a demolisher by building on its territory.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/930e9d781efb5cc3da96ccab89ffd40eaf904918.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/930e9d781efb5cc3da96ccab89ffd40eaf904918.jpg\" alt=\"If it bleeds, we can kill it\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: If it bleeds, we can kill it\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIf it bleeds, we can kill it\u003c/strong\u003e\u003cbr/\u003e\n    Kill a small demolisher.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/c15cc06e3ed77d615d4d43b476120f5f87c4b7fe.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/c15cc06e3ed77d615d4d43b476120f5f87c4b7fe.jpg\" alt=\"It stinks and they do like it\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: It stinks and they do like it\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt stinks and they do like it\u003c/strong\u003e\u003cbr/\u003e\n    Attract a group of pentapods using spores.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/4420d548736988a8c0d6ae94146a667bf8ce157b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/4420d548736988a8c0d6ae94146a667bf8ce157b.jpg\" alt=\"Keeping your hands clean\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Keeping your hands clean\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKeeping your hands clean\u003c/strong\u003e\u003cbr/\u003e\n    Destroy your first enemy structure using artillery.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/b45e4a294e34c139c4717cca5f7b514f26952a68.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/b45e4a294e34c139c4717cca5f7b514f26952a68.jpg\" alt=\"Look at my shiny rare armor\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Look at my shiny rare armor\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLook at my shiny rare armor\u003c/strong\u003e\u003cbr/\u003e\n    Equip rare or better quality of power armor MK2 or mech armor.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/1cb43583d18977036c03a3b3d5670d3451d066af.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/1cb43583d18977036c03a3b3d5670d3451d066af.jpg\" alt=\"Make it better\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Make it better\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMake it better\u003c/strong\u003e\u003cbr/\u003e\n    Insert a quality module into a module slot.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/5570d3e200275c981a840ee0c44fdbc026e8221a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/5570d3e200275c981a840ee0c44fdbc026e8221a.jpg\" alt=\"Mining with determination\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mining with determination\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMining with determination\u003c/strong\u003e\u003cbr/\u003e\n    Completely deplete a resource patch.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/e10e7891b7d5da37e04aa38ec2ce117686d584de.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/e10e7891b7d5da37e04aa38ec2ce117686d584de.jpg\" alt=\"My modules are legendary\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: My modules are legendary\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMy modules are legendary\u003c/strong\u003e\u003cbr/\u003e\n    Craft a legendary quality module 3.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/2aa1adb4a0c15e0031b4a0a5dbfc88d7b75fddac.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/2aa1adb4a0c15e0031b4a0a5dbfc88d7b75fddac.jpg\" alt=\"No room for more\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: No room for more\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNo room for more\u003c/strong\u003e\u003cbr/\u003e\n    Fill every tile of legendary mech armor with legendary equipment.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/a1220545a5560e7df877bb6c7a3b8bb440ced36e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/a1220545a5560e7df877bb6c7a3b8bb440ced36e.jpg\" alt=\"Nuclear power\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Nuclear power\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNuclear power\u003c/strong\u003e\u003cbr/\u003e\n    Start producing electric power by nuclear powerplant.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/9cb410a1343df6fb29d16210d1c4adf12cbebd6b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/9cb410a1343df6fb29d16210d1c4adf12cbebd6b.jpg\" alt=\"Reach for the stars\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Reach for the stars\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eReach for the stars\u003c/strong\u003e\u003cbr/\u003e\n    Create a space platform.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/3aa8c8ebc18260fd6e1e5832693a6bcc5e6e8e03.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/3aa8c8ebc18260fd6e1e5832693a6bcc5e6e8e03.jpg\" alt=\"Research with agriculture\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Research with agriculture\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eResearch with agriculture\u003c/strong\u003e\u003cbr/\u003e\n    Research a technology using agricultural science packs.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/6d76d3b9e8291a5c038c87174b002f709eeb5904.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/6d76d3b9e8291a5c038c87174b002f709eeb5904.jpg\" alt=\"Research with cryogenics\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Research with cryogenics\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eResearch with cryogenics\u003c/strong\u003e\u003cbr/\u003e\n    Research a technology using cryogenic science packs.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/0e342f02279ad26bba9c84ec26101753d1cc39f8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/0e342f02279ad26bba9c84ec26101753d1cc39f8.jpg\" alt=\"Research with electromagnetics\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Research with electromagnetics\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eResearch with electromagnetics\u003c/strong\u003e\u003cbr/\u003e\n    Research a technology using electromagnetic science packs.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/dce76ff159b1baa2663521183a70cbacc3daa84b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/dce76ff159b1baa2663521183a70cbacc3daa84b.jpg\" alt=\"Research with metallurgics\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Research with metallurgics\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eResearch with metallurgics\u003c/strong\u003e\u003cbr/\u003e\n    Research a technology using metallurgic science packs.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/bca20d90e638683f197b8b49f53d956b1651320c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/bca20d90e638683f197b8b49f53d956b1651320c.jpg\" alt=\"Research with military\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Research with military\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eResearch with military\u003c/strong\u003e\u003cbr/\u003e\n    Research a technology using military science packs.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/e617f6afff198946d387b2ca9e1b81d06f6d687d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/e617f6afff198946d387b2ca9e1b81d06f6d687d.jpg\" alt=\"Research with production\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Research with production\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eResearch with production\u003c/strong\u003e\u003cbr/\u003e\n    Research a technology using production science packs.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/f2fe5fa9b25b9737998780b89a809b2789cd0718.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/f2fe5fa9b25b9737998780b89a809b2789cd0718.jpg\" alt=\"Research with space\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Research with space\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eResearch with space\u003c/strong\u003e\u003cbr/\u003e\n    Research a technology using space science packs.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/1755dd4a9e39109cc8d88600b2e4dae9e5cf7174.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/1755dd4a9e39109cc8d88600b2e4dae9e5cf7174.jpg\" alt=\"Research with utility\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Research with utility\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eResearch with utility\u003c/strong\u003e\u003cbr/\u003e\n    Research a technology using utility science packs.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/eea2e036c7445159872b5f3bb9e2a9cecb0016bf.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/eea2e036c7445159872b5f3bb9e2a9cecb0016bf.jpg\" alt=\"Rush to space\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Rush to space\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRush to space\u003c/strong\u003e\u003cbr/\u003e\n    Research a technology using another planet\u0026#39;s science pack before unlocking production or utility science packs.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/3b85110d2ef53a7763f1235fc1f237b446cc2615.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/3b85110d2ef53a7763f1235fc1f237b446cc2615.jpg\" alt=\"Second star to the right and straight on till morning\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Second star to the right and straight on till morning\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSecond star to the right and straight on till morning\u003c/strong\u003e\u003cbr/\u003e\n    Finish the game.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/4faa6d435e4fb5f0b81fc226de498f194094653c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/4faa6d435e4fb5f0b81fc226de498f194094653c.jpg\" alt=\"Going to shattered planet 1\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Going to shattered planet 1\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGoing to shattered planet 1\u003c/strong\u003e\u003cbr/\u003e\n    Travel 10 000 km towards the shattered planet.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/3e6fd7ca5dedb84254cea0e8ea554d9a0860f308.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/3e6fd7ca5dedb84254cea0e8ea554d9a0860f308.jpg\" alt=\"Going to shattered planet 2\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Going to shattered planet 2\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGoing to shattered planet 2\u003c/strong\u003e\u003cbr/\u003e\n    Travel 30 000 km towards the shattered planet.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/163fe54fc6ac47f48d964bb854505dc1ffca0785.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/163fe54fc6ac47f48d964bb854505dc1ffca0785.jpg\" alt=\"Going to shattered planet 3\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Going to shattered planet 3\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGoing to shattered planet 3\u003c/strong\u003e\u003cbr/\u003e\n    Travel 60 000 km towards the shattered planet.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/39262652c2225fb09ca6ba8627ff6f31e65f13bd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/39262652c2225fb09ca6ba8627ff6f31e65f13bd.jpg\" alt=\"Size doesn\u0026#39;t matter\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Size doesn\u0026#39;t matter\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSize doesn\u0026#39;t matter\u003c/strong\u003e\u003cbr/\u003e\n    Kill a big demolisher.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/989b68375b3713e3332eb32073abfc9e29813ab9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/989b68375b3713e3332eb32073abfc9e29813ab9.jpg\" alt=\"Terraformer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Terraformer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTerraformer\u003c/strong\u003e\u003cbr/\u003e\n    Destroy a cliff.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/299ea00856ff7879e175bbe2fa8afe827a5474e2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/299ea00856ff7879e175bbe2fa8afe827a5474e2.jpg\" alt=\"Today\u0026#39;s fish is trout a la creme\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Today\u0026#39;s fish is trout a la creme\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eToday\u0026#39;s fish is trout a la creme\u003c/strong\u003e\u003cbr/\u003e\n    Eat a legendary fish.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/807c10ca53a954a55f5a73383bb24d0d959c84b3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/807c10ca53a954a55f5a73383bb24d0d959c84b3.jpg\" alt=\"Visit Aquilo\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Visit Aquilo\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVisit Aquilo\u003c/strong\u003e\u003cbr/\u003e\n    Travel to planet Aquilo.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/dd89560e6a8336c08b3d0d69f999bf02ac750f12.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/dd89560e6a8336c08b3d0d69f999bf02ac750f12.jpg\" alt=\"Visit Fulgora\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Visit Fulgora\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVisit Fulgora\u003c/strong\u003e\u003cbr/\u003e\n    Travel to planet Fulgora.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/73ad45fe11becc2b92d8fdab63c361db1ced3a8c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/73ad45fe11becc2b92d8fdab63c361db1ced3a8c.jpg\" alt=\"Visit Gleba\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Visit Gleba\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVisit Gleba\u003c/strong\u003e\u003cbr/\u003e\n    Travel to planet Gleba.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/872d6a1a326277c8d8d9410a628fc0b35d001f31.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/872d6a1a326277c8d8d9410a628fc0b35d001f31.jpg\" alt=\"Visit Vulcanus\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Visit Vulcanus\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVisit Vulcanus\u003c/strong\u003e\u003cbr/\u003e\n    Travel to planet Vulcanus.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/88587ea6d457b88c526a224ef1fd86360da5da46.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/88587ea6d457b88c526a224ef1fd86360da5da46.jpg\" alt=\"We need bigger guns\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: We need bigger guns\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWe need bigger guns\u003c/strong\u003e\u003cbr/\u003e\n    Kill a medium demolisher.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/3da8cdfe32693d4da903878732975b8a11686cc9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/3da8cdfe32693d4da903878732975b8a11686cc9.jpg\" alt=\"Work around the clock\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Work around the clock\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWork around the clock\u003c/strong\u003e\u003cbr/\u003e\n    Finish the game within 100 hours.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/0db8d5e50226757c32300b63bf979e3381a397f1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/0db8d5e50226757c32300b63bf979e3381a397f1.jpg\" alt=\"Research with promethium\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Research with promethium\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eResearch with promethium\u003c/strong\u003e\u003cbr/\u003e\n    Research a technology using promethium science packs.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/427520/library_600x900.jpg\" alt=\"Factorio box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/427520/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eFactorio\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 18.18%\"\u003e\n        18.18%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e16/88 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e51.2h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-08-17\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (16)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/b9540428e8efdc7ee2b4c90f4b5b02367e0c0a59.jpg\" alt=\"Automated construction\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAutomated construction\u003c/strong\u003e\u003cbr\u003e\n    Construct 100 machines using robots.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 16, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/661261c4eb1f55a688086892b028b7a987d7dda5.jpg\" alt=\"Circuit veteran 1\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCircuit veteran 1\u003c/strong\u003e\u003cbr\u003e\n    Produce 1.0k advanced circuits per hour.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 15, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/6d9a57494300e9d4865bcd742324fea315e214c7.jpg\" alt=\"Eco unfriendly\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEco unfriendly\u003c/strong\u003e\u003cbr\u003e\n    Research oil processing.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 11, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/f5e5bc078d13b629b5ceee342a35b02c33afe022.jpg\" alt=\"Getting on track\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGetting on track\u003c/strong\u003e\u003cbr\u003e\n    Build a locomotive.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 11, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/7acd8c1392f87748aba32dbd1318bb7e2f725f2c.jpg\" alt=\"Iron throne 1\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIron throne 1\u003c/strong\u003e\u003cbr\u003e\n    Produce 20k iron plates per hour.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 11, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/3e51374fdc48ce64d3f9e0e777232994050dd1eb.jpg\" alt=\"It stinks and they don't like it\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt stinks and they don't like it\u003c/strong\u003e\u003cbr\u003e\n    Trigger an alien attack by pollution.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 11, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/b39cc492b38eb9d08a56f37454ff9514d18371be.jpg\" alt=\"Mass production 1\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMass production 1\u003c/strong\u003e\u003cbr\u003e\n    Produce 10k electronic circuits.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 12, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/acf97fe357a385889c4b2d2f626808055b256602.jpg\" alt=\"Trans-Factorio express\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTrans-Factorio express\u003c/strong\u003e\u003cbr\u003e\n    Have a train plan a path 1,000 tiles or longer.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 11, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/e1d92af6edd8a80fe854fc9c64f2d4d6b77936ce.jpg\" alt=\"Watch your step\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWatch your step\u003c/strong\u003e\u003cbr\u003e\n    Get killed by a moving locomotive.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 13, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/9eed2629b3859b2f7e7d55a916bf14c2a6c31f69.jpg\" alt=\"Automate this!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAutomate this!\u003c/strong\u003e\u003cbr\u003e\n    Build an assembling machine.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 10, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/40afb2da9fc5cab9e80b469568e75d8fb089e05b.jpg\" alt=\"Pest control\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePest control\u003c/strong\u003e\u003cbr\u003e\n    Destroy a biter spawner.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 11, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/41a3b63ce89d975980db6d1ca0487bd98757874d.jpg\" alt=\"Research with automation\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eResearch with automation\u003c/strong\u003e\u003cbr\u003e\n    Research a technology using automation science packs.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 10, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/6b692734f1e5017bba84597ca2b5acd3ade0355b.jpg\" alt=\"Research with chemicals\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eResearch with chemicals\u003c/strong\u003e\u003cbr\u003e\n    Research a technology using chemical science packs.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 13, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/c8188e93148c1e14950c0a172366690daf4a7ed1.jpg\" alt=\"Research with logistics\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eResearch with logistics\u003c/strong\u003e\u003cbr\u003e\n    Research a technology using logistic science packs.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 11, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/8ff6536d4172954ef581fc93b80d9082f6d011a9.jpg\" alt=\"Solar power\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSolar power\u003c/strong\u003e\u003cbr\u003e\n    Start producing electric power by solar panels.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 11, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/ea783e418c1af691bb148c912d3a2eac19538799.jpg\" alt=\"Steam power\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSteam power\u003c/strong\u003e\u003cbr\u003e\n    Start producing electric power by steam engine.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 10, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (72)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/e0c48b248e6a6cc9d73cc6a40450a5e52dab1a4a.jpg\" alt=\"Automated cleanup\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAutomated cleanup\u003c/strong\u003e\u003cbr\u003e\n    Deconstruct 100 objects with the construction robots.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/f1a58ea294c90e70675d00ddb9b786ce0b10229c.jpg\" alt=\"Circuit veteran 2\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCircuit veteran 2\u003c/strong\u003e\u003cbr\u003e\n    Produce 10k advanced circuits per hour.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/02e538c2592312e809b65d98c55f30d3dfdaadc3.jpg\" alt=\"Circuit veteran 3\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCircuit veteran 3\u003c/strong\u003e\u003cbr\u003e\n    Produce 25k advanced circuits per hour.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/607f54f482db98368f4e2dc91f52168aa0c2a7d5.jpg\" alt=\"Computer age 1\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eComputer age 1\u003c/strong\u003e\u003cbr\u003e\n    Produce 500 processing units per hour.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/6551260ef930cb73ce5ebff208bf844091c40618.jpg\" alt=\"Computer age 2\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eComputer age 2\u003c/strong\u003e\u003cbr\u003e\n    Produce 1.0k processing units per hour.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/90f9aaa78fa62e688c5107a917a2e62c214f0973.jpg\" alt=\"Computer age 3\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eComputer age 3\u003c/strong\u003e\u003cbr\u003e\n    Produce 5k processing units per hour.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/36cb61c6fa886e1a736c64d490b5a1ea6baa1826.jpg\" alt=\"You've got a package\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou've got a package\u003c/strong\u003e\u003cbr\u003e\n    Supply the character by logistic robot.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/a3a45bf567a1e8848169348bb4eda8f33a47ccce.jpg\" alt=\"Delivery service\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDelivery service\u003c/strong\u003e\u003cbr\u003e\n    Supply the character with 10k items delivered by logistic robots.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/f450fe5dc4f0768e228fab3f18d6f5b4e520eeba.jpg\" alt=\"Getting on track like a pro\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGetting on track like a pro\u003c/strong\u003e\u003cbr\u003e\n    Build a locomotive within the first 90 minutes of the game.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/c90a3320e9f5088ef5f500d12d266acc26c756f4.jpg\" alt=\"Golem\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGolem\u003c/strong\u003e\u003cbr\u003e\n    Survive a hit of 500 damage or more.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/e8ed80e5d37d42ad75f8579c3c8857b525a59307.jpg\" alt=\"Iron throne 2\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIron throne 2\u003c/strong\u003e\u003cbr\u003e\n    Produce 200k iron plates per hour.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/dbb57490929910717a62021311f210bd8dbe3ec2.jpg\" alt=\"Iron throne 3\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIron throne 3\u003c/strong\u003e\u003cbr\u003e\n    Produce 400k iron plates per hour.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/06056d64ac23ffc36e99da6269923ecbf87ba166.jpg\" alt=\"Lazy bastard\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLazy bastard\u003c/strong\u003e\u003cbr\u003e\n    Launch a rocket to space while manually crafting no more than 111 items.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/1392eef06d6324b87bd551e920d84c3f61bb6c3b.jpg\" alt=\"Logistic network embargo\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLogistic network embargo\u003c/strong\u003e\u003cbr\u003e\n    Finish research with space science pack for the base game or any planetary science pack for Space Age without building any active provider, buffer, or requester chests.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/c6c496a921f13f1be5745689149ce98643258310.jpg\" alt=\"Mass production 2\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMass production 2\u003c/strong\u003e\u003cbr\u003e\n    Produce 1M electronic circuits.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/473d481603bd0fb03a62388d3b21ba914d9bc854.jpg\" alt=\"Mass production 3\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMass production 3\u003c/strong\u003e\u003cbr\u003e\n    Produce 20M electronic circuits.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/fe3c55eda5d3622dc15afe955438b816aa9dbad4.jpg\" alt=\"Minions\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMinions\u003c/strong\u003e\u003cbr\u003e\n    Have 100 combat robots or more following you.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/a57f168382712b5d3636e269a83bc109691a5c2c.jpg\" alt=\"Smoke me a kipper, I'll be back for breakfast\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSmoke me a kipper, I'll be back for breakfast\u003c/strong\u003e\u003cbr\u003e\n    Launch a rocket to space.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/9f01127b856cf1518d15e93121c48ef3eaa02fc4.jpg\" alt=\"No time for chitchat\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNo time for chitchat\u003c/strong\u003e\u003cbr\u003e\n    Launch a rocket to space within 15 hours.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/672a9bbabbc29a0c15afda9c7e09a38975e669dc.jpg\" alt=\"There is no spoon\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThere is no spoon\u003c/strong\u003e\u003cbr\u003e\n    Launch a rocket to space within 8 hours.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/677d3d0ab28d3b4f3b955efd438c2ee0040d8607.jpg\" alt=\"Pyromaniac\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePyromaniac\u003c/strong\u003e\u003cbr\u003e\n    Destroy 10k trees with fire.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/05358ff927aa7a31d4aaf18ad358dbac9a5f0e87.jpg\" alt=\"Raining bullets\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRaining bullets\u003c/strong\u003e\u003cbr\u003e\n    Launch a rocket to space without building any laser turrets.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/ed0595e7b473492f88cdaa6aa7646be223f823e4.jpg\" alt=\"Run Forrest, run\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRun Forrest, run\u003c/strong\u003e\u003cbr\u003e\n    Destroy 100 trees by impact.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/3312595cf7a076d299bcf57c0713023d29abbc2a.jpg\" alt=\"Solaris\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSolaris\u003c/strong\u003e\u003cbr\u003e\n    Produce more than 10 GJ per hour using only solar panels.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/e47e702d5cc68562e9bcfe8d964180f665080017.jpg\" alt=\"So long and thanks for all the fish\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSo long and thanks for all the fish\u003c/strong\u003e\u003cbr\u003e\n     \n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/1692469a0f40c7bc7cfc727656ed29d9003215d0.jpg\" alt=\"Steam all the way\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSteam all the way\u003c/strong\u003e\u003cbr\u003e\n    Launch a rocket to space without building any solar panels.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/2aa2d449aa1e458a8a2efd7c129c2db8508b384d.jpg\" alt=\"Steamrolled\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSteamrolled\u003c/strong\u003e\u003cbr\u003e\n    Destroy 10 spawners by impact.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/aea4109ce6c579b2ac9e90047033e13971909a34.jpg\" alt=\"Tech maniac\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTech maniac\u003c/strong\u003e\u003cbr\u003e\n    Research all technologies.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/bca8a790e94392e41e26b06286220c9c84cce0d1.jpg\" alt=\"You are doing it right\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou are doing it right\u003c/strong\u003e\u003cbr\u003e\n    Construct more machines using robots than manually.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/3cf0ab41521827dc38279ba13e0bff2c6a22d6bb.jpg\" alt=\"Arachnophilia\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArachnophilia\u003c/strong\u003e\u003cbr\u003e\n    Build a spidertron.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/c2fb39ccbc6539546ae3bc2aa0423a86342b1ff5.jpg\" alt=\"Art of siege\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArt of siege\u003c/strong\u003e\u003cbr\u003e\n    Destroy an enemy structure using artillery.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/87dec96764d95e3925a840571256b09e8c4d8a84.jpg\" alt=\"Crafting with efficiency\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCrafting with efficiency\u003c/strong\u003e\u003cbr\u003e\n    Craft an efficiency module 3.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/7093129c7107ec352221dc4e200cb713e789ee39.jpg\" alt=\"Crafting with productivity\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCrafting with productivity\u003c/strong\u003e\u003cbr\u003e\n    Craft a productivity module 3.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/0248b4d3ca941165cd30da55e2a25a6e8e960389.jpg\" alt=\"Crafting with quality\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCrafting with quality\u003c/strong\u003e\u003cbr\u003e\n    Craft a quality module 3.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/7dd49addf184971dd8e8f661a946495db1b7a300.jpg\" alt=\"Crafting with speed\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCrafting with speed\u003c/strong\u003e\u003cbr\u003e\n    Craft a speed module 3.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/1b0119b55c05754e30a48931855a6946bc837d69.jpg\" alt=\"I am the destroyer of worlds\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI am the destroyer of worlds\u003c/strong\u003e\u003cbr\u003e\n    Use an atomic bomb.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/015a096783d904852ef88d4c6ad4cac961cdad8f.jpg\" alt=\"Express delivery\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpress delivery\u003c/strong\u003e\u003cbr\u003e\n    Finish the game within 40 hours.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/6e7b7d6234175c1514a2629be49f4ccaafd10ecc.jpg\" alt=\"Fusion power\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFusion power\u003c/strong\u003e\u003cbr\u003e\n    Start producing electric power by fusion powerplant.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/e4cc2ffadf1c14e6edaf65be27d5556db0e58691.jpg\" alt=\"Get off my lawn\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGet off my lawn\u003c/strong\u003e\u003cbr\u003e\n    Disturb a demolisher by building on its territory.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/930e9d781efb5cc3da96ccab89ffd40eaf904918.jpg\" alt=\"If it bleeds, we can kill it\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIf it bleeds, we can kill it\u003c/strong\u003e\u003cbr\u003e\n    Kill a small demolisher.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/c15cc06e3ed77d615d4d43b476120f5f87c4b7fe.jpg\" alt=\"It stinks and they do like it\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt stinks and they do like it\u003c/strong\u003e\u003cbr\u003e\n    Attract a group of pentapods using spores.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/4420d548736988a8c0d6ae94146a667bf8ce157b.jpg\" alt=\"Keeping your hands clean\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKeeping your hands clean\u003c/strong\u003e\u003cbr\u003e\n    Destroy your first enemy structure using artillery.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/b45e4a294e34c139c4717cca5f7b514f26952a68.jpg\" alt=\"Look at my shiny rare armor\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLook at my shiny rare armor\u003c/strong\u003e\u003cbr\u003e\n    Equip rare or better quality of power armor MK2 or mech armor.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/1cb43583d18977036c03a3b3d5670d3451d066af.jpg\" alt=\"Make it better\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMake it better\u003c/strong\u003e\u003cbr\u003e\n    Insert a quality module into a module slot.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/5570d3e200275c981a840ee0c44fdbc026e8221a.jpg\" alt=\"Mining with determination\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMining with determination\u003c/strong\u003e\u003cbr\u003e\n    Completely deplete a resource patch.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/e10e7891b7d5da37e04aa38ec2ce117686d584de.jpg\" alt=\"My modules are legendary\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMy modules are legendary\u003c/strong\u003e\u003cbr\u003e\n    Craft a legendary quality module 3.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/2aa1adb4a0c15e0031b4a0a5dbfc88d7b75fddac.jpg\" alt=\"No room for more\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNo room for more\u003c/strong\u003e\u003cbr\u003e\n    Fill every tile of legendary mech armor with legendary equipment.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/a1220545a5560e7df877bb6c7a3b8bb440ced36e.jpg\" alt=\"Nuclear power\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNuclear power\u003c/strong\u003e\u003cbr\u003e\n    Start producing electric power by nuclear powerplant.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/9cb410a1343df6fb29d16210d1c4adf12cbebd6b.jpg\" alt=\"Reach for the stars\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eReach for the stars\u003c/strong\u003e\u003cbr\u003e\n    Create a space platform.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/3aa8c8ebc18260fd6e1e5832693a6bcc5e6e8e03.jpg\" alt=\"Research with agriculture\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eResearch with agriculture\u003c/strong\u003e\u003cbr\u003e\n    Research a technology using agricultural science packs.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/6d76d3b9e8291a5c038c87174b002f709eeb5904.jpg\" alt=\"Research with cryogenics\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eResearch with cryogenics\u003c/strong\u003e\u003cbr\u003e\n    Research a technology using cryogenic science packs.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/0e342f02279ad26bba9c84ec26101753d1cc39f8.jpg\" alt=\"Research with electromagnetics\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eResearch with electromagnetics\u003c/strong\u003e\u003cbr\u003e\n    Research a technology using electromagnetic science packs.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/dce76ff159b1baa2663521183a70cbacc3daa84b.jpg\" alt=\"Research with metallurgics\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eResearch with metallurgics\u003c/strong\u003e\u003cbr\u003e\n    Research a technology using metallurgic science packs.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/bca20d90e638683f197b8b49f53d956b1651320c.jpg\" alt=\"Research with military\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eResearch with military\u003c/strong\u003e\u003cbr\u003e\n    Research a technology using military science packs.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/e617f6afff198946d387b2ca9e1b81d06f6d687d.jpg\" alt=\"Research with production\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eResearch with production\u003c/strong\u003e\u003cbr\u003e\n    Research a technology using production science packs.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/f2fe5fa9b25b9737998780b89a809b2789cd0718.jpg\" alt=\"Research with space\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eResearch with space\u003c/strong\u003e\u003cbr\u003e\n    Research a technology using space science packs.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/1755dd4a9e39109cc8d88600b2e4dae9e5cf7174.jpg\" alt=\"Research with utility\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eResearch with utility\u003c/strong\u003e\u003cbr\u003e\n    Research a technology using utility science packs.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/eea2e036c7445159872b5f3bb9e2a9cecb0016bf.jpg\" alt=\"Rush to space\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRush to space\u003c/strong\u003e\u003cbr\u003e\n    Research a technology using another planet's science pack before unlocking production or utility science packs.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/3b85110d2ef53a7763f1235fc1f237b446cc2615.jpg\" alt=\"Second star to the right and straight on till morning\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSecond star to the right and straight on till morning\u003c/strong\u003e\u003cbr\u003e\n    Finish the game.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/4faa6d435e4fb5f0b81fc226de498f194094653c.jpg\" alt=\"Going to shattered planet 1\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGoing to shattered planet 1\u003c/strong\u003e\u003cbr\u003e\n    Travel 10 000 km towards the shattered planet.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/3e6fd7ca5dedb84254cea0e8ea554d9a0860f308.jpg\" alt=\"Going to shattered planet 2\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGoing to shattered planet 2\u003c/strong\u003e\u003cbr\u003e\n    Travel 30 000 km towards the shattered planet.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/163fe54fc6ac47f48d964bb854505dc1ffca0785.jpg\" alt=\"Going to shattered planet 3\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGoing to shattered planet 3\u003c/strong\u003e\u003cbr\u003e\n    Travel 60 000 km towards the shattered planet.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/39262652c2225fb09ca6ba8627ff6f31e65f13bd.jpg\" alt=\"Size doesn't matter\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSize doesn't matter\u003c/strong\u003e\u003cbr\u003e\n    Kill a big demolisher.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/989b68375b3713e3332eb32073abfc9e29813ab9.jpg\" alt=\"Terraformer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTerraformer\u003c/strong\u003e\u003cbr\u003e\n    Destroy a cliff.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/299ea00856ff7879e175bbe2fa8afe827a5474e2.jpg\" alt=\"Today's fish is trout a la creme\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eToday's fish is trout a la creme\u003c/strong\u003e\u003cbr\u003e\n    Eat a legendary fish.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/807c10ca53a954a55f5a73383bb24d0d959c84b3.jpg\" alt=\"Visit Aquilo\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVisit Aquilo\u003c/strong\u003e\u003cbr\u003e\n    Travel to planet Aquilo.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/dd89560e6a8336c08b3d0d69f999bf02ac750f12.jpg\" alt=\"Visit Fulgora\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVisit Fulgora\u003c/strong\u003e\u003cbr\u003e\n    Travel to planet Fulgora.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/73ad45fe11becc2b92d8fdab63c361db1ced3a8c.jpg\" alt=\"Visit Gleba\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVisit Gleba\u003c/strong\u003e\u003cbr\u003e\n    Travel to planet Gleba.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/872d6a1a326277c8d8d9410a628fc0b35d001f31.jpg\" alt=\"Visit Vulcanus\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVisit Vulcanus\u003c/strong\u003e\u003cbr\u003e\n    Travel to planet Vulcanus.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/88587ea6d457b88c526a224ef1fd86360da5da46.jpg\" alt=\"We need bigger guns\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWe need bigger guns\u003c/strong\u003e\u003cbr\u003e\n    Kill a medium demolisher.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/3da8cdfe32693d4da903878732975b8a11686cc9.jpg\" alt=\"Work around the clock\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWork around the clock\u003c/strong\u003e\u003cbr\u003e\n    Finish the game within 100 hours.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/427520/0db8d5e50226757c32300b63bf979e3381a397f1.jpg\" alt=\"Research with promethium\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eResearch with promethium\u003c/strong\u003e\u003cbr\u003e\n    Research a technology using promethium science packs.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Factorio - 18.18% complete with 16/88 achievements unlocked.",
      "date_published": "2025-08-17T00:00:00Z",
      "date_modified": "2025-08-17T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "factorio"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/rounds/",
      "url": "https://go.waylonwalker.com/steam/rounds/",
      "title": "ROUNDS",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/1557740/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/1557740/library_600x900.jpg\" alt=\"ROUNDS box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/1557740/header.jpg\u0026#39;\"/ data-glightbox=\"description: ROUNDS box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eROUNDS\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 95.83%\"\u003e\n        95.83%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e23/24 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e22.7h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-08-16\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (23)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/d95cfa8133694d6b4a6d5cec3653d4efe6eb754a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/d95cfa8133694d6b4a6d5cec3653d4efe6eb754a.jpg\" alt=\"Ace\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ace\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAce\u003c/strong\u003e\u003cbr/\u003e\n    Win 5-0\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 03, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/a9b2d67d1fd0a2a6cd117c1c1af082957c0447d4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/a9b2d67d1fd0a2a6cd117c1c1af082957c0447d4.jpg\" alt=\"Three in a row!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Three in a row!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThree in a row!\u003c/strong\u003e\u003cbr/\u003e\n    Win 3 matches in a row\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 03, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/e5123898603e7fdd6500ca8e8a63f889adca97ff.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/e5123898603e7fdd6500ca8e8a63f889adca97ff.jpg\" alt=\"Impenetrable\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Impenetrable\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eImpenetrable\u003c/strong\u003e\u003cbr/\u003e\n    Block 10 times in 10 seconds\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 26, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/b0061e8d99bd447d92942b0354405bff9c513f86.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/b0061e8d99bd447d92942b0354405bff9c513f86.jpg\" alt=\"Destroyer of worlds\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Destroyer of worlds\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDestroyer of worlds\u003c/strong\u003e\u003cbr/\u003e\n    Deal 500 DMG with one bullet\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: February 01, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/89794310574b51809b43df2c60f7afbbbbc4bfaa.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/89794310574b51809b43df2c60f7afbbbbc4bfaa.jpg\" alt=\"Beekeeper\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Beekeeper\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeekeeper\u003c/strong\u003e\u003cbr/\u003e\n    Have 30 of your own bullets on screen at the same time\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 03, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/58a02b867c24f924ae1d128a96dc52cffb9c7f73.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/58a02b867c24f924ae1d128a96dc52cffb9c7f73.jpg\" alt=\"Expensive taste\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Expensive taste\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpensive taste\u003c/strong\u003e\u003cbr/\u003e\n    Pick 3 or more rare cards in one match\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 02, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/163e9099c885a9c316610a3eecc60b612ab901cf.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/163e9099c885a9c316610a3eecc60b612ab901cf.jpg\" alt=\"Titan\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Titan\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTitan\u003c/strong\u003e\u003cbr/\u003e\n    Reach 1000 HP\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: February 02, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/377a4dd464ec09243dbddff329b0a557979df474.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/377a4dd464ec09243dbddff329b0a557979df474.jpg\" alt=\"Healer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Healer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHealer\u003c/strong\u003e\u003cbr/\u003e\n    Heal 500 HP in one round\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: February 01, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/3975c8fde067d5d8b61c65a1268c30c94659ef19.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/3975c8fde067d5d8b61c65a1268c30c94659ef19.jpg\" alt=\"Hypersonic\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hypersonic\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHypersonic\u003c/strong\u003e\u003cbr/\u003e\n    Fire a bullet with over 350% projectile speed\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 03, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/0a1234c03b71c4788541f4ae4cd7c94050664609.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/0a1234c03b71c4788541f4ae4cd7c94050664609.jpg\" alt=\"Shieldmastery\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Shieldmastery\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShieldmastery\u003c/strong\u003e\u003cbr/\u003e\n    Have 4 cards that interact with your block\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 23, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/849c37eda4098dcb577aaf2b47617d3bc4b0fb2b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/849c37eda4098dcb577aaf2b47617d3bc4b0fb2b.jpg\" alt=\"Victory\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Victory\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVictory\u003c/strong\u003e\u003cbr/\u003e\n    Win a match\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 03, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/4e7db7f037189c1a54c1343b5bd359b5cdf2138c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/4e7db7f037189c1a54c1343b5bd359b5cdf2138c.jpg\" alt=\"Accidental Winner\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Accidental Winner\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAccidental Winner\u003c/strong\u003e\u003cbr/\u003e\n    Win 10 rounds by your opponent falling out\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 17, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/d1367e27b474bba64d8951393ff37965d2b16f7e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/d1367e27b474bba64d8951393ff37965d2b16f7e.jpg\" alt=\"Winner\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Winner\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWinner\u003c/strong\u003e\u003cbr/\u003e\n    Win 20 matches\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 31, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/ef26b6aff982f2a18b4026aa9b6ed99207d9dfe4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/ef26b6aff982f2a18b4026aa9b6ed99207d9dfe4.jpg\" alt=\"Frosty\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Frosty\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFrosty\u003c/strong\u003e\u003cbr/\u003e\n    Use Frost Slam 20 times\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: February 02, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/7cb251d2696752411f0417b774bef9502211484c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/7cb251d2696752411f0417b774bef9502211484c.jpg\" alt=\"Demon\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Demon\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDemon\u003c/strong\u003e\u003cbr/\u003e\n    Use Demonic Pact 3 times in a single match\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 26, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/9e428a822b0c89fd5246ff66005fa5951b73136c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/9e428a822b0c89fd5246ff66005fa5951b73136c.jpg\" alt=\"In Control\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: In Control\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIn Control\u003c/strong\u003e\u003cbr/\u003e\n    Use Remote 3 times in a single match\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 27, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/c3eed90dc27856c204a7363134e6fff660bd6cea.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/c3eed90dc27856c204a7363134e6fff660bd6cea.jpg\" alt=\"Teleporter\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Teleporter\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTeleporter\u003c/strong\u003e\u003cbr/\u003e\n    Use Teleport 3 times in a single match\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 29, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/4ccf62c6d557d3cb86361fb21c09ff9c18d99177.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/4ccf62c6d557d3cb86361fb21c09ff9c18d99177.jpg\" alt=\"Star\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Star\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStar\u003c/strong\u003e\u003cbr/\u003e\n    Use Supernova 3 times in a single match\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: February 02, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/362812567ebd747e7dbf37a0d02e6173db479658.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/362812567ebd747e7dbf37a0d02e6173db479658.jpg\" alt=\"Joker\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Joker\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJoker\u003c/strong\u003e\u003cbr/\u003e\n    Lose 0-5\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: February 01, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/bc78c9cb4a463e7de69ced8e35429d91c5c652de.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/bc78c9cb4a463e7de69ced8e35429d91c5c652de.jpg\" alt=\"Radient\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Radient\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRadient\u003c/strong\u003e\u003cbr/\u003e\n    Use Radiance 3 times in a single match\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 17, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/03cdab4c9649ecacb658d810eef1b38482464a5a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/03cdab4c9649ecacb658d810eef1b38482464a5a.jpg\" alt=\"Phoenix\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Phoenix\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePhoenix\u003c/strong\u003e\u003cbr/\u003e\n    Use Phoenix\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: February 02, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/cd060eab768a2901c07399b0bc6b059d3d7c24c1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/cd060eab768a2901c07399b0bc6b059d3d7c24c1.jpg\" alt=\"Shield Up\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Shield Up\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShield Up\u003c/strong\u003e\u003cbr/\u003e\n    Trigger a block with Shields Up\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 29, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/c8da32575bf6f29347e05577933353df1052618b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/c8da32575bf6f29347e05577933353df1052618b.jpg\" alt=\"Sharp\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sharp\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSharp\u003c/strong\u003e\u003cbr/\u003e\n    Use Saw\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 17, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (1)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/f7ce0b1c9bcc03eb8cafc5c3402c98a2c00b00a5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/f7ce0b1c9bcc03eb8cafc5c3402c98a2c00b00a5.jpg\" alt=\"Champion\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Champion\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChampion\u003c/strong\u003e\u003cbr/\u003e\n    Win 50 Matches\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/1557740/library_600x900.jpg\" alt=\"ROUNDS box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/1557740/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eROUNDS\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 95.83%\"\u003e\n        95.83%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e23/24 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e22.7h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-08-16\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (23)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/d95cfa8133694d6b4a6d5cec3653d4efe6eb754a.jpg\" alt=\"Ace\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAce\u003c/strong\u003e\u003cbr\u003e\n    Win 5-0\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 03, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/a9b2d67d1fd0a2a6cd117c1c1af082957c0447d4.jpg\" alt=\"Three in a row!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThree in a row!\u003c/strong\u003e\u003cbr\u003e\n    Win 3 matches in a row\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 03, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/e5123898603e7fdd6500ca8e8a63f889adca97ff.jpg\" alt=\"Impenetrable\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eImpenetrable\u003c/strong\u003e\u003cbr\u003e\n    Block 10 times in 10 seconds\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 26, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/b0061e8d99bd447d92942b0354405bff9c513f86.jpg\" alt=\"Destroyer of worlds\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDestroyer of worlds\u003c/strong\u003e\u003cbr\u003e\n    Deal 500 DMG with one bullet\u003cbr\u003e\n    \u003csmall\u003eUnlocked: February 01, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/89794310574b51809b43df2c60f7afbbbbc4bfaa.jpg\" alt=\"Beekeeper\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeekeeper\u003c/strong\u003e\u003cbr\u003e\n    Have 30 of your own bullets on screen at the same time\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 03, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/58a02b867c24f924ae1d128a96dc52cffb9c7f73.jpg\" alt=\"Expensive taste\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpensive taste\u003c/strong\u003e\u003cbr\u003e\n    Pick 3 or more rare cards in one match\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 02, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/163e9099c885a9c316610a3eecc60b612ab901cf.jpg\" alt=\"Titan\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTitan\u003c/strong\u003e\u003cbr\u003e\n    Reach 1000 HP\u003cbr\u003e\n    \u003csmall\u003eUnlocked: February 02, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/377a4dd464ec09243dbddff329b0a557979df474.jpg\" alt=\"Healer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHealer\u003c/strong\u003e\u003cbr\u003e\n    Heal 500 HP in one round\u003cbr\u003e\n    \u003csmall\u003eUnlocked: February 01, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/3975c8fde067d5d8b61c65a1268c30c94659ef19.jpg\" alt=\"Hypersonic\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHypersonic\u003c/strong\u003e\u003cbr\u003e\n    Fire a bullet with over 350% projectile speed\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 03, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/0a1234c03b71c4788541f4ae4cd7c94050664609.jpg\" alt=\"Shieldmastery\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShieldmastery\u003c/strong\u003e\u003cbr\u003e\n    Have 4 cards that interact with your block\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 23, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/849c37eda4098dcb577aaf2b47617d3bc4b0fb2b.jpg\" alt=\"Victory\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVictory\u003c/strong\u003e\u003cbr\u003e\n    Win a match\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 03, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/4e7db7f037189c1a54c1343b5bd359b5cdf2138c.jpg\" alt=\"Accidental Winner\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAccidental Winner\u003c/strong\u003e\u003cbr\u003e\n    Win 10 rounds by your opponent falling out\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 17, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/d1367e27b474bba64d8951393ff37965d2b16f7e.jpg\" alt=\"Winner\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWinner\u003c/strong\u003e\u003cbr\u003e\n    Win 20 matches\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 31, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/ef26b6aff982f2a18b4026aa9b6ed99207d9dfe4.jpg\" alt=\"Frosty\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFrosty\u003c/strong\u003e\u003cbr\u003e\n    Use Frost Slam 20 times\u003cbr\u003e\n    \u003csmall\u003eUnlocked: February 02, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/7cb251d2696752411f0417b774bef9502211484c.jpg\" alt=\"Demon\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDemon\u003c/strong\u003e\u003cbr\u003e\n    Use Demonic Pact 3 times in a single match\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 26, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/9e428a822b0c89fd5246ff66005fa5951b73136c.jpg\" alt=\"In Control\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIn Control\u003c/strong\u003e\u003cbr\u003e\n    Use Remote 3 times in a single match\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 27, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/c3eed90dc27856c204a7363134e6fff660bd6cea.jpg\" alt=\"Teleporter\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTeleporter\u003c/strong\u003e\u003cbr\u003e\n    Use Teleport 3 times in a single match\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 29, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/4ccf62c6d557d3cb86361fb21c09ff9c18d99177.jpg\" alt=\"Star\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStar\u003c/strong\u003e\u003cbr\u003e\n    Use Supernova 3 times in a single match\u003cbr\u003e\n    \u003csmall\u003eUnlocked: February 02, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/362812567ebd747e7dbf37a0d02e6173db479658.jpg\" alt=\"Joker\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJoker\u003c/strong\u003e\u003cbr\u003e\n    Lose 0-5\u003cbr\u003e\n    \u003csmall\u003eUnlocked: February 01, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/bc78c9cb4a463e7de69ced8e35429d91c5c652de.jpg\" alt=\"Radient\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRadient\u003c/strong\u003e\u003cbr\u003e\n    Use Radiance 3 times in a single match\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 17, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/03cdab4c9649ecacb658d810eef1b38482464a5a.jpg\" alt=\"Phoenix\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePhoenix\u003c/strong\u003e\u003cbr\u003e\n    Use Phoenix\u003cbr\u003e\n    \u003csmall\u003eUnlocked: February 02, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/cd060eab768a2901c07399b0bc6b059d3d7c24c1.jpg\" alt=\"Shield Up\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShield Up\u003c/strong\u003e\u003cbr\u003e\n    Trigger a block with Shields Up\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 29, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/c8da32575bf6f29347e05577933353df1052618b.jpg\" alt=\"Sharp\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSharp\u003c/strong\u003e\u003cbr\u003e\n    Use Saw\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 17, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (1)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1557740/f7ce0b1c9bcc03eb8cafc5c3402c98a2c00b00a5.jpg\" alt=\"Champion\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChampion\u003c/strong\u003e\u003cbr\u003e\n    Win 50 Matches\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for ROUNDS - 95.83% complete with 23/24 achievements unlocked.",
      "date_published": "2025-08-16T00:00:00Z",
      "date_modified": "2025-08-16T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "rounds"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/should-i-kubernetes-my-homelab/",
      "url": "https://go.waylonwalker.com/should-i-kubernetes-my-homelab/",
      "title": "Should I kubernetes My Homelab",
      "content_html": "\u003cp\u003eYes\u003c/p\u003e\n\u003cp\u003eOk we should probably dive deeper into this, but good chance if you are here\nand have made it this far you it would probably be a fine choice.  The choice\nis quite time and skill dependant.\u003c/p\u003e\n\u003ch2 id=\"time\"\u003eTime \u003ca href=\"#time\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eFirst thing up, if you like copy pasting thing into your \u003ca href=\"/homelab/\" class=\"glossary-term\" title=\"A place to self host applications. For me this is primarily self built web applications, and applications for sharing files with my family. Techno Tim has a...\"\u003ehomelab\u003c/a\u003e, changing a\nfew config options, but mostly running it as the docs instructed, kubernetes is\nnot for you.  The homelab/self hosting space is heavily reliant on docker\ncompose, 90% of the things you want to run will likely have a docker command,\nand likely a docker compose example that you can copy paste and get running\nright away.  Maybe 5% of projects have something for kubernetes, you Will have\nto do it yourself.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eKubernetes is \u003cstrong\u003every\u003c/strong\u003e DIY in the self hosting space, and not very plug and play.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"skill\"\u003eSkill \u003ca href=\"#skill\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n",
      "content_text": "\nYes\n\nOk we should probably dive deeper into this, but good chance if you are here\nand have made it this far you it would probably be a fine choice.  The choice\nis quite time and skill dependant.\n\n## Time\n\nFirst thing up, if you like copy pasting thing into your homelab, changing a\nfew config options, but mostly running it as the docs instructed, kubernetes is\nnot for you.  The homelab/self hosting space is heavily reliant on docker\ncompose, 90% of the things you want to run will likely have a docker command,\nand likely a docker compose example that you can copy paste and get running\nright away.  Maybe 5% of projects have something for kubernetes, you Will have\nto do it yourself.\n\n\u003e Kubernetes is **very** DIY in the self hosting space, and not very plug and play.\n\n## Skill\n",
      "summary": "Yes",
      "date_published": "2025-08-11T09:28:16Z",
      "date_modified": "2025-08-11T09:28:16Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "homelab",
        "kubernetes"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/descenders/",
      "url": "https://go.waylonwalker.com/steam/descenders/",
      "title": "Descenders",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/681280/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/681280/library_600x900.jpg\" alt=\"Descenders box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/681280/header.jpg\u0026#39;\"/ data-glightbox=\"description: Descenders box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eDescenders\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 73.81%\"\u003e\n        73.81%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e31/42 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e324.1h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-07-22\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (31)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/e38ab73fcb0a796beeb81ce104981367ce219ade.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/e38ab73fcb0a796beeb81ce104981367ce219ade.jpg\" alt=\"Into The Woods\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Into The Woods\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInto The Woods\u003c/strong\u003e\u003cbr/\u003e\n    Reach the forest\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 26, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/c85c82410ec12992fb9f7df11d0bdf0dabe47f7a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/c85c82410ec12992fb9f7df11d0bdf0dabe47f7a.jpg\" alt=\"The Rampage Begins\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Rampage Begins\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Rampage Begins\u003c/strong\u003e\u003cbr/\u003e\n    Reach the canyon\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 18, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/32934ec967a736bea615d92075fd6ab70888926e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/32934ec967a736bea615d92075fd6ab70888926e.jpg\" alt=\"The Final Challenge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Final Challenge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Final Challenge\u003c/strong\u003e\u003cbr/\u003e\n    Reach the peaks\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 17, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/6e89bf45f190ec1f52c359e1e766de47e22d2410.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/6e89bf45f190ec1f52c359e1e766de47e22d2410.jpg\" alt=\"Made It\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Made It\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMade It\u003c/strong\u003e\u003cbr/\u003e\n    Complete boss jump in peaks\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/430f4b056f8d69d4e807008dfc595d2533373aa7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/430f4b056f8d69d4e807008dfc595d2533373aa7.jpg\" alt=\"It Begins\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: It Begins\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt Begins\u003c/strong\u003e\u003cbr/\u003e\n    Get sponsored by a team\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 08, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/9b47f81de1f7cbd3fcda91316436035cf4a42e93.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/9b47f81de1f7cbd3fcda91316436035cf4a42e93.jpg\" alt=\"Carving a Path\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Carving a Path\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCarving a Path\u003c/strong\u003e\u003cbr/\u003e\n    Get 10.000 REP\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 26, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/0c62fef52e6bb905b5bd4c0cf2cdc57a8f07c162.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/0c62fef52e6bb905b5bd4c0cf2cdc57a8f07c162.jpg\" alt=\"Found Your Flow\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Found Your Flow\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFound Your Flow\u003c/strong\u003e\u003cbr/\u003e\n    Get 50.000 REP\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 13, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/62e42f215b3ac5233bf9b7e0a91eeb537e0512d5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/62e42f215b3ac5233bf9b7e0a91eeb537e0512d5.jpg\" alt=\"Ain\u0026#39;t No Scrub\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ain\u0026#39;t No Scrub\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAin\u0026#39;t No Scrub\u003c/strong\u003e\u003cbr/\u003e\n    Get 250.000 REP\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 17, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/ffa304f89c0594b24b6bc8759544dcede525b69b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/ffa304f89c0594b24b6bc8759544dcede525b69b.jpg\" alt=\"Get Some Gear\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Get Some Gear\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGet Some Gear\u003c/strong\u003e\u003cbr/\u003e\n    Unlock 10 items\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 30, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/c161d5c6b362d9321e196a5195134303245dae60.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/c161d5c6b362d9321e196a5195134303245dae60.jpg\" alt=\"It\u0026#39;s Getting Cluttered in Here\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: It\u0026#39;s Getting Cluttered in Here\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt\u0026#39;s Getting Cluttered in Here\u003c/strong\u003e\u003cbr/\u003e\n    Unlock 25 items\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 15, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/360a00be451774e86ee0b19b4100d4675bf6546b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/360a00be451774e86ee0b19b4100d4675bf6546b.jpg\" alt=\"Quite a Collection\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Quite a Collection\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eQuite a Collection\u003c/strong\u003e\u003cbr/\u003e\n    Unlock 50 items\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 25, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/0e2852c494139f8bd0fd454010ac4c094adcfcf9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/0e2852c494139f8bd0fd454010ac4c094adcfcf9.jpg\" alt=\"Wipeout\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Wipeout\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWipeout\u003c/strong\u003e\u003cbr/\u003e\n    Get REKT\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 26, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/de42f4842143c195408fb377f5d73b90279fd597.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/de42f4842143c195408fb377f5d73b90279fd597.jpg\" alt=\"Gap in the Market\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Gap in the Market\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGap in the Market\u003c/strong\u003e\u003cbr/\u003e\n    Complete 10 mini-bosses\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 27, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/ebd6dac1adc4d01da79d0d0d3310cdca452c68b7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/ebd6dac1adc4d01da79d0d0d3310cdca452c68b7.jpg\" alt=\"Show em who\u0026#39;s Boss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Show em who\u0026#39;s Boss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShow em who\u0026#39;s Boss\u003c/strong\u003e\u003cbr/\u003e\n    Survive a boss jump\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 26, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/ff10a958b0fd3dd4b5e89a8ca76926f359f2518e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/ff10a958b0fd3dd4b5e89a8ca76926f359f2518e.jpg\" alt=\"The training was worth it\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The training was worth it\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe training was worth it\u003c/strong\u003e\u003cbr/\u003e\n    Jump over the train\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 30, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/7c4fd0dd278c9cfd19e2a3b978138051ddc3c1b4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/7c4fd0dd278c9cfd19e2a3b978138051ddc3c1b4.jpg\" alt=\"Represent your style\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Represent your style\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRepresent your style\u003c/strong\u003e\u003cbr/\u003e\n    Complete a team node\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 27, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/48b6089e81df50e15c2fa0a179da5047e7264234.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/48b6089e81df50e15c2fa0a179da5047e7264234.jpg\" alt=\"Dialed in\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Dialed in\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDialed in\u003c/strong\u003e\u003cbr/\u003e\n    Unlock a shortcut\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 30, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/c3ec81d8799c13a235fd7c90df35331891ac02dc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/c3ec81d8799c13a235fd7c90df35331891ac02dc.jpg\" alt=\"Flipping Heck\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Flipping Heck\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFlipping Heck\u003c/strong\u003e\u003cbr/\u003e\n    Land a double frontflip\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 17, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/c3ec81d8799c13a235fd7c90df35331891ac02dc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/c3ec81d8799c13a235fd7c90df35331891ac02dc.jpg\" alt=\"Every Axis\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Every Axis\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEvery Axis\u003c/strong\u003e\u003cbr/\u003e\n    Land a 360 frontflip\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 23, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/c3ec81d8799c13a235fd7c90df35331891ac02dc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/c3ec81d8799c13a235fd7c90df35331891ac02dc.jpg\" alt=\"Getting Dizzy\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Getting Dizzy\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGetting Dizzy\u003c/strong\u003e\u003cbr/\u003e\n    Land a 720 double backflip\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 07, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/bf8bf3da22e9430b43bee13e1dc451e69fa8128c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/bf8bf3da22e9430b43bee13e1dc451e69fa8128c.jpg\" alt=\"Speed Demon\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Speed Demon\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpeed Demon\u003c/strong\u003e\u003cbr/\u003e\n    Reach 100kmh/62mph\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/52ca5fd350c98a2643ebab5bae744a4b84586dd4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/52ca5fd350c98a2643ebab5bae744a4b84586dd4.jpg\" alt=\"The Ring Of Fire\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Ring Of Fire\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Ring Of Fire\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 26, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/82874520432e507326b7446b9b0d5918aade23f3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/82874520432e507326b7446b9b0d5918aade23f3.jpg\" alt=\"Flying Finish\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Flying Finish\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFlying Finish\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 24, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/b194e7218a62b96acec83adaf85d4c35d3451c6b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/b194e7218a62b96acec83adaf85d4c35d3451c6b.jpg\" alt=\"Bring A Friend\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bring A Friend\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBring A Friend\u003c/strong\u003e\u003cbr/\u003e\n    Finish a level together with someone else\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 08, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/7a1a062b395907c9504890c4fb4fcf18966ec994.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/7a1a062b395907c9504890c4fb4fcf18966ec994.jpg\" alt=\"Get The Gang Together\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Get The Gang Together\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGet The Gang Together\u003c/strong\u003e\u003cbr/\u003e\n    Finish a session with 3 different crew members\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 25, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/14c51279177c5ca9d0b1de4bb2561e615cdf482e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/14c51279177c5ca9d0b1de4bb2561e615cdf482e.jpg\" alt=\"You\u0026#39;re Still Here?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: You\u0026#39;re Still Here?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou\u0026#39;re Still Here?\u003c/strong\u003e\u003cbr/\u003e\n    Finish the credits\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/6ea5b74071a9631bc6a404ee98f2c294b1516a8e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/6ea5b74071a9631bc6a404ee98f2c294b1516a8e.jpg\" alt=\"No More Robots Amateur Tour\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: No More Robots Amateur Tour\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNo More Robots Amateur Tour\u003c/strong\u003e\u003cbr/\u003e\n    Complete all of the missions in the No More Robots Amateur Tour\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/9adc298ec71442bb1a4cc3400310461e31d140bc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/9adc298ec71442bb1a4cc3400310461e31d140bc.jpg\" alt=\"Power Up Audio Amateur Tour\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Power Up Audio Amateur Tour\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePower Up Audio Amateur Tour\u003c/strong\u003e\u003cbr/\u003e\n    Complete all of the missions in the Power Up Audio Amateur Tour\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 10, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/ee9b1682e980a0fdbfde1e69fffc8fdc5f7337d1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/ee9b1682e980a0fdbfde1e69fffc8fdc5f7337d1.jpg\" alt=\"Liquicity Amateur Tour\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Liquicity Amateur Tour\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLiquicity Amateur Tour\u003c/strong\u003e\u003cbr/\u003e\n    Complete all of the missions in the Liquicity Amateur Tour\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 17, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/23f543cca8f8dfcf33fb254e8688b45f72f51e06.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/23f543cca8f8dfcf33fb254e8688b45f72f51e06.jpg\" alt=\"RageSquid Amateur Tour\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: RageSquid Amateur Tour\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRageSquid Amateur Tour\u003c/strong\u003e\u003cbr/\u003e\n    Complete all of the missions in the RageSquid Amateur Tour\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 02, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/bf0867b46e147d72740fce00f4ccecd4d175fd28.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/bf0867b46e147d72740fce00f4ccecd4d175fd28.jpg\" alt=\"No More Robots Pro Tour\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: No More Robots Pro Tour\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNo More Robots Pro Tour\u003c/strong\u003e\u003cbr/\u003e\n    Complete all of the missions in the No More Robots Pro Tour\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 26, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (11)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/9a310c1cf9da14c4e8589f1be836156f44074cf7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/9a310c1cf9da14c4e8589f1be836156f44074cf7.jpg\" alt=\"A True Descender\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A True Descender\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA True Descender\u003c/strong\u003e\u003cbr/\u003e\n    Finish a session from highlands to peaks\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/6b0d64e48166c913ed0c54c7713ba8452b5d8799.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/6b0d64e48166c913ed0c54c7713ba8452b5d8799.jpg\" alt=\"The Golden Run\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Golden Run\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Golden Run\u003c/strong\u003e\u003cbr/\u003e\n    Finish a session from highlands to peaks without bailing a single time\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/666257a1028885e483fcea19ea09561bb22e08fd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/666257a1028885e483fcea19ea09561bb22e08fd.jpg\" alt=\"It\u0026#39;s Getting Hot In Here\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: It\u0026#39;s Getting Hot In Here\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt\u0026#39;s Getting Hot In Here\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/4de454e98754eefd8b481d06fffd2d5ee1ee83fe.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/4de454e98754eefd8b481d06fffd2d5ee1ee83fe.jpg\" alt=\"Hotshot\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hotshot\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHotshot\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/242c2b2775cebd699f54eeea120e16dca78f8332.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/242c2b2775cebd699f54eeea120e16dca78f8332.jpg\" alt=\"Pull My Finger\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Pull My Finger\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePull My Finger\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/d49748dcc9a2bf6dca6c9d75986e5e350c18a909.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/d49748dcc9a2bf6dca6c9d75986e5e350c18a909.jpg\" alt=\"Go The Extra Mile\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Go The Extra Mile\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGo The Extra Mile\u003c/strong\u003e\u003cbr/\u003e\n    Complete all bonus worlds\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/ed7942572546e3617b9e0b517225235412852744.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/ed7942572546e3617b9e0b517225235412852744.jpg\" alt=\"Veteran\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Veteran\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVeteran\u003c/strong\u003e\u003cbr/\u003e\n    Complete a sponsorship\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/5f8c1fec13e747ef8b7987e59b4c9f08983299e9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/5f8c1fec13e747ef8b7987e59b4c9f08983299e9.jpg\" alt=\"What A Legend\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: What A Legend\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhat A Legend\u003c/strong\u003e\u003cbr/\u003e\n    Finish Career+ in one session\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/eaa3a28e19bb2dac6538bb8a8b27ab33d24dda93.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/eaa3a28e19bb2dac6538bb8a8b27ab33d24dda93.jpg\" alt=\"Power Up Audio Pro Tour\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Power Up Audio Pro Tour\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePower Up Audio Pro Tour\u003c/strong\u003e\u003cbr/\u003e\n    Complete all of the missions in the Power Up Audio Pro Tour\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/3798fc004e5aef1daa775bb7759154dd47478d90.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/3798fc004e5aef1daa775bb7759154dd47478d90.jpg\" alt=\"Liquicity Pro Tour\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Liquicity Pro Tour\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLiquicity Pro Tour\u003c/strong\u003e\u003cbr/\u003e\n    Complete all of the missions in the Liquicity Pro Tour\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/04b9c9824412ccaa345c133ea6c02fc7eeb234eb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/04b9c9824412ccaa345c133ea6c02fc7eeb234eb.jpg\" alt=\"RageSquid Pro Tour\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: RageSquid Pro Tour\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRageSquid Pro Tour\u003c/strong\u003e\u003cbr/\u003e\n    Complete all of the missions in the RageSquid Pro Tour\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/681280/library_600x900.jpg\" alt=\"Descenders box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/681280/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eDescenders\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 73.81%\"\u003e\n        73.81%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e31/42 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e324.1h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-07-22\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (31)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/e38ab73fcb0a796beeb81ce104981367ce219ade.jpg\" alt=\"Into The Woods\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInto The Woods\u003c/strong\u003e\u003cbr\u003e\n    Reach the forest\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 26, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/c85c82410ec12992fb9f7df11d0bdf0dabe47f7a.jpg\" alt=\"The Rampage Begins\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Rampage Begins\u003c/strong\u003e\u003cbr\u003e\n    Reach the canyon\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 18, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/32934ec967a736bea615d92075fd6ab70888926e.jpg\" alt=\"The Final Challenge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Final Challenge\u003c/strong\u003e\u003cbr\u003e\n    Reach the peaks\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 17, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/6e89bf45f190ec1f52c359e1e766de47e22d2410.jpg\" alt=\"Made It\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMade It\u003c/strong\u003e\u003cbr\u003e\n    Complete boss jump in peaks\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/430f4b056f8d69d4e807008dfc595d2533373aa7.jpg\" alt=\"It Begins\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt Begins\u003c/strong\u003e\u003cbr\u003e\n    Get sponsored by a team\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 08, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/9b47f81de1f7cbd3fcda91316436035cf4a42e93.jpg\" alt=\"Carving a Path\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCarving a Path\u003c/strong\u003e\u003cbr\u003e\n    Get 10.000 REP\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 26, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/0c62fef52e6bb905b5bd4c0cf2cdc57a8f07c162.jpg\" alt=\"Found Your Flow\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFound Your Flow\u003c/strong\u003e\u003cbr\u003e\n    Get 50.000 REP\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 13, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/62e42f215b3ac5233bf9b7e0a91eeb537e0512d5.jpg\" alt=\"Ain't No Scrub\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAin't No Scrub\u003c/strong\u003e\u003cbr\u003e\n    Get 250.000 REP\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 17, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/ffa304f89c0594b24b6bc8759544dcede525b69b.jpg\" alt=\"Get Some Gear\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGet Some Gear\u003c/strong\u003e\u003cbr\u003e\n    Unlock 10 items\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 30, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/c161d5c6b362d9321e196a5195134303245dae60.jpg\" alt=\"It's Getting Cluttered in Here\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt's Getting Cluttered in Here\u003c/strong\u003e\u003cbr\u003e\n    Unlock 25 items\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 15, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/360a00be451774e86ee0b19b4100d4675bf6546b.jpg\" alt=\"Quite a Collection\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eQuite a Collection\u003c/strong\u003e\u003cbr\u003e\n    Unlock 50 items\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 25, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/0e2852c494139f8bd0fd454010ac4c094adcfcf9.jpg\" alt=\"Wipeout\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWipeout\u003c/strong\u003e\u003cbr\u003e\n    Get REKT\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 26, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/de42f4842143c195408fb377f5d73b90279fd597.jpg\" alt=\"Gap in the Market\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGap in the Market\u003c/strong\u003e\u003cbr\u003e\n    Complete 10 mini-bosses\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 27, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/ebd6dac1adc4d01da79d0d0d3310cdca452c68b7.jpg\" alt=\"Show em who's Boss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShow em who's Boss\u003c/strong\u003e\u003cbr\u003e\n    Survive a boss jump\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 26, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/ff10a958b0fd3dd4b5e89a8ca76926f359f2518e.jpg\" alt=\"The training was worth it\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe training was worth it\u003c/strong\u003e\u003cbr\u003e\n    Jump over the train\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 30, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/7c4fd0dd278c9cfd19e2a3b978138051ddc3c1b4.jpg\" alt=\"Represent your style\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRepresent your style\u003c/strong\u003e\u003cbr\u003e\n    Complete a team node\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 27, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/48b6089e81df50e15c2fa0a179da5047e7264234.jpg\" alt=\"Dialed in\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDialed in\u003c/strong\u003e\u003cbr\u003e\n    Unlock a shortcut\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 30, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/c3ec81d8799c13a235fd7c90df35331891ac02dc.jpg\" alt=\"Flipping Heck\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFlipping Heck\u003c/strong\u003e\u003cbr\u003e\n    Land a double frontflip\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 17, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/c3ec81d8799c13a235fd7c90df35331891ac02dc.jpg\" alt=\"Every Axis\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEvery Axis\u003c/strong\u003e\u003cbr\u003e\n    Land a 360 frontflip\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 23, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/c3ec81d8799c13a235fd7c90df35331891ac02dc.jpg\" alt=\"Getting Dizzy\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGetting Dizzy\u003c/strong\u003e\u003cbr\u003e\n    Land a 720 double backflip\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 07, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/bf8bf3da22e9430b43bee13e1dc451e69fa8128c.jpg\" alt=\"Speed Demon\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpeed Demon\u003c/strong\u003e\u003cbr\u003e\n    Reach 100kmh/62mph\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/52ca5fd350c98a2643ebab5bae744a4b84586dd4.jpg\" alt=\"The Ring Of Fire\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Ring Of Fire\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 26, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/82874520432e507326b7446b9b0d5918aade23f3.jpg\" alt=\"Flying Finish\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFlying Finish\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 24, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/b194e7218a62b96acec83adaf85d4c35d3451c6b.jpg\" alt=\"Bring A Friend\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBring A Friend\u003c/strong\u003e\u003cbr\u003e\n    Finish a level together with someone else\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 08, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/7a1a062b395907c9504890c4fb4fcf18966ec994.jpg\" alt=\"Get The Gang Together\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGet The Gang Together\u003c/strong\u003e\u003cbr\u003e\n    Finish a session with 3 different crew members\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 25, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/14c51279177c5ca9d0b1de4bb2561e615cdf482e.jpg\" alt=\"You're Still Here?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou're Still Here?\u003c/strong\u003e\u003cbr\u003e\n    Finish the credits\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/6ea5b74071a9631bc6a404ee98f2c294b1516a8e.jpg\" alt=\"No More Robots Amateur Tour\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNo More Robots Amateur Tour\u003c/strong\u003e\u003cbr\u003e\n    Complete all of the missions in the No More Robots Amateur Tour\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/9adc298ec71442bb1a4cc3400310461e31d140bc.jpg\" alt=\"Power Up Audio Amateur Tour\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePower Up Audio Amateur Tour\u003c/strong\u003e\u003cbr\u003e\n    Complete all of the missions in the Power Up Audio Amateur Tour\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 10, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/ee9b1682e980a0fdbfde1e69fffc8fdc5f7337d1.jpg\" alt=\"Liquicity Amateur Tour\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLiquicity Amateur Tour\u003c/strong\u003e\u003cbr\u003e\n    Complete all of the missions in the Liquicity Amateur Tour\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 17, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/23f543cca8f8dfcf33fb254e8688b45f72f51e06.jpg\" alt=\"RageSquid Amateur Tour\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRageSquid Amateur Tour\u003c/strong\u003e\u003cbr\u003e\n    Complete all of the missions in the RageSquid Amateur Tour\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 02, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/bf0867b46e147d72740fce00f4ccecd4d175fd28.jpg\" alt=\"No More Robots Pro Tour\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNo More Robots Pro Tour\u003c/strong\u003e\u003cbr\u003e\n    Complete all of the missions in the No More Robots Pro Tour\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 26, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (11)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/9a310c1cf9da14c4e8589f1be836156f44074cf7.jpg\" alt=\"A True Descender\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA True Descender\u003c/strong\u003e\u003cbr\u003e\n    Finish a session from highlands to peaks\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/6b0d64e48166c913ed0c54c7713ba8452b5d8799.jpg\" alt=\"The Golden Run\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Golden Run\u003c/strong\u003e\u003cbr\u003e\n    Finish a session from highlands to peaks without bailing a single time\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/666257a1028885e483fcea19ea09561bb22e08fd.jpg\" alt=\"It's Getting Hot In Here\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt's Getting Hot In Here\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/4de454e98754eefd8b481d06fffd2d5ee1ee83fe.jpg\" alt=\"Hotshot\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHotshot\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/242c2b2775cebd699f54eeea120e16dca78f8332.jpg\" alt=\"Pull My Finger\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePull My Finger\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/d49748dcc9a2bf6dca6c9d75986e5e350c18a909.jpg\" alt=\"Go The Extra Mile\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGo The Extra Mile\u003c/strong\u003e\u003cbr\u003e\n    Complete all bonus worlds\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/ed7942572546e3617b9e0b517225235412852744.jpg\" alt=\"Veteran\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVeteran\u003c/strong\u003e\u003cbr\u003e\n    Complete a sponsorship\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/5f8c1fec13e747ef8b7987e59b4c9f08983299e9.jpg\" alt=\"What A Legend\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhat A Legend\u003c/strong\u003e\u003cbr\u003e\n    Finish Career+ in one session\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/eaa3a28e19bb2dac6538bb8a8b27ab33d24dda93.jpg\" alt=\"Power Up Audio Pro Tour\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePower Up Audio Pro Tour\u003c/strong\u003e\u003cbr\u003e\n    Complete all of the missions in the Power Up Audio Pro Tour\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/3798fc004e5aef1daa775bb7759154dd47478d90.jpg\" alt=\"Liquicity Pro Tour\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLiquicity Pro Tour\u003c/strong\u003e\u003cbr\u003e\n    Complete all of the missions in the Liquicity Pro Tour\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/681280/04b9c9824412ccaa345c133ea6c02fc7eeb234eb.jpg\" alt=\"RageSquid Pro Tour\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRageSquid Pro Tour\u003c/strong\u003e\u003cbr\u003e\n    Complete all of the missions in the RageSquid Pro Tour\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Descenders - 73.81% complete with 31/42 achievements unlocked.",
      "date_published": "2025-07-22T00:00:00Z",
      "date_modified": "2025-07-22T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "descenders"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/among-us/",
      "url": "https://go.waylonwalker.com/steam/among-us/",
      "title": "Among Us",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/945360/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/945360/library_600x900.jpg\" alt=\"Among Us box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/945360/header.jpg\u0026#39;\"/ data-glightbox=\"description: Among Us box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eAmong Us\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 69.7%\"\u003e\n        69.7%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e23/33 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e198.9h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-07-06\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (23)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/28d77d90c1978829c159eae6fe799a191c34be83.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/28d77d90c1978829c159eae6fe799a191c34be83.jpg\" alt=\"A TASTE FOR IT\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A TASTE FOR IT\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA TASTE FOR IT\u003c/strong\u003e\u003cbr/\u003e\n    Get your first kill\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: February 28, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/f2b99effc0a886290c7b86e1d13bf8fb8df9552c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/f2b99effc0a886290c7b86e1d13bf8fb8df9552c.jpg\" alt=\"KILLER\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: KILLER\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKILLER\u003c/strong\u003e\u003cbr/\u003e\n    Get 5 total kills\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 03, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/c56c94c6016eaa474ba59118c0c70b814156fe20.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/c56c94c6016eaa474ba59118c0c70b814156fe20.jpg\" alt=\"ASSASSIN\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: ASSASSIN\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eASSASSIN\u003c/strong\u003e\u003cbr/\u003e\n    Get 50 total kills\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 06, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/11d6a7da14eaa7036982b4375ea7caba288339ce.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/11d6a7da14eaa7036982b4375ea7caba288339ce.jpg\" alt=\"INTERN\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: INTERN\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eINTERN\u003c/strong\u003e\u003cbr/\u003e\n    Complete 10 total tasks\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 01, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/fb8ff2604057a9cc13acf74166c52ff945354803.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/fb8ff2604057a9cc13acf74166c52ff945354803.jpg\" alt=\"MANAGER\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: MANAGER\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMANAGER\u003c/strong\u003e\u003cbr/\u003e\n    Complete 100 total tasks\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 02, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/1c1b96b03b075eb3b42e368ebbdf257e19ef9087.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/1c1b96b03b075eb3b42e368ebbdf257e19ef9087.jpg\" alt=\"A SHIP ADRIFT\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A SHIP ADRIFT\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA SHIP ADRIFT\u003c/strong\u003e\u003cbr/\u003e\n    Win 3 games on Skeld\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 01, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/144c10dcf276eaffe8a7c03553c7d8a63c0de116.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/144c10dcf276eaffe8a7c03553c7d8a63c0de116.jpg\" alt=\"CORPORATE LOCKDOWN\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: CORPORATE LOCKDOWN\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCORPORATE LOCKDOWN\u003c/strong\u003e\u003cbr/\u003e\n    Win 3 games on MIRA\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 01, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/4d3d812ce857674d5013fb8c499bfacfd063277c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/4d3d812ce857674d5013fb8c499bfacfd063277c.jpg\" alt=\"UNEARTHED\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: UNEARTHED\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUNEARTHED\u003c/strong\u003e\u003cbr/\u003e\n    Win 3 games on Polus\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: February 28, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/78c3fd6c3f272601db4023d546f4e0879c3880c3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/78c3fd6c3f272601db4023d546f4e0879c3880c3.jpg\" alt=\"TOPPAT CREWMATES\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: TOPPAT CREWMATES\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTOPPAT CREWMATES\u003c/strong\u003e\u003cbr/\u003e\n    Win 3 games on The Airship\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 15, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/9c5048637cd0aecf7f9fcd4ac4f46c0d0c1d7541.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/9c5048637cd0aecf7f9fcd4ac4f46c0d0c1d7541.jpg\" alt=\"NEVER SUSPECT A THING\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: NEVER SUSPECT A THING\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNEVER SUSPECT A THING\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 07, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/cbf1cacf0178c63aa2f8545030d53b5f9891aeb0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/cbf1cacf0178c63aa2f8545030d53b5f9891aeb0.jpg\" alt=\"SLASHER\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: SLASHER\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSLASHER\u003c/strong\u003e\u003cbr/\u003e\n    Win a game by killing all crewmates as Impostor.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: February 28, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/36b531782d1eba6166eb54769d36f42a3e87ace0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/36b531782d1eba6166eb54769d36f42a3e87ace0.jpg\" alt=\"SURVIVOR\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: SURVIVOR\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSURVIVOR\u003c/strong\u003e\u003cbr/\u003e\n    Survive and win a game as a crewmate\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: February 27, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/e2bf2b4ca2e03bbf1b48a9a8c72dd2fde4ee7e68.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/e2bf2b4ca2e03bbf1b48a9a8c72dd2fde4ee7e68.jpg\" alt=\"SMOOTH TALKER\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: SMOOTH TALKER\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSMOOTH TALKER\u003c/strong\u003e\u003cbr/\u003e\n    Win a game by vote as Impostor\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 01, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/c486b2f15c031a9929e6193a334c8f947b326009.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/c486b2f15c031a9929e6193a334c8f947b326009.jpg\" alt=\"IMPOSSIBLE TASK\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: IMPOSSIBLE TASK\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIMPOSSIBLE TASK\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 02, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/6d53ce190945abd26dc4d5cf265cda396196e736.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/6d53ce190945abd26dc4d5cf265cda396196e736.jpg\" alt=\"LIGHTS OUT\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: LIGHTS OUT\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLIGHTS OUT\u003c/strong\u003e\u003cbr/\u003e\n    Get a kill during a lights sabotage\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 05, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/bf78b9db17985ba127345ac32258f3116ed7ec00.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/bf78b9db17985ba127345ac32258f3116ed7ec00.jpg\" alt=\"WATCH ME SCAN\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: WATCH ME SCAN\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWATCH ME SCAN\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 16, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/cb4695fda4b61e880404ba5051185a1c154e6156.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/cb4695fda4b61e880404ba5051185a1c154e6156.jpg\" alt=\"CREWPOSTOR\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: CREWPOSTOR\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCREWPOSTOR\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 01, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/970151abaa23e371daaea0423122126184346103.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/970151abaa23e371daaea0423122126184346103.jpg\" alt=\"SHERLOCK\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: SHERLOCK\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSHERLOCK\u003c/strong\u003e\u003cbr/\u003e\n    Win a game as crew with your only votes being for the Impostor\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 01, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/d98da75d64e92504c70b54339a17ab98b8b732fa.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/d98da75d64e92504c70b54339a17ab98b8b732fa.jpg\" alt=\"CIRCUMVENTER\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: CIRCUMVENTER\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCIRCUMVENTER\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: February 28, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/7428551173ce6c4ba93f2b0c7acd226ce208e18a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/7428551173ce6c4ba93f2b0c7acd226ce208e18a.jpg\" alt=\"HIDDEN TALENT\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: HIDDEN TALENT\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHIDDEN TALENT\u003c/strong\u003e\u003cbr/\u003e\n    Survive a Game as Crew in Hide n Seek Mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 01, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/2529465727f1115c5d69e58bb5f7df53aa11c03f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/2529465727f1115c5d69e58bb5f7df53aa11c03f.jpg\" alt=\"NO ESCAPE\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: NO ESCAPE\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNO ESCAPE\u003c/strong\u003e\u003cbr/\u003e\n    Kill all hiders as impostor in Hide n Seek Mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 30, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/90221101a3a9b33c742711741e0585c887f7d791.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/90221101a3a9b33c742711741e0585c887f7d791.jpg\" alt=\"I CAN BE YOUR ANGLE\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: I CAN BE YOUR ANGLE\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI CAN BE YOUR ANGLE\u003c/strong\u003e\u003cbr/\u003e\n    Block a kill as a guardian angel\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 04, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/12a62b22955b0aeac6f250a7e736dc0e82e1d5e7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/12a62b22955b0aeac6f250a7e736dc0e82e1d5e7.jpg\" alt=\"YOU CAN\u0026#39;T RUN\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: YOU CAN\u0026#39;T RUN\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYOU CAN\u0026#39;T RUN\u003c/strong\u003e\u003cbr/\u003e\n    10 wins as a hider in Hide n Seek Mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 06, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (10)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/afbceff91aaf5f9370fad840d7bab3f377af2670.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/afbceff91aaf5f9370fad840d7bab3f377af2670.jpg\" alt=\"SCOURGE\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: SCOURGE\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSCOURGE\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/29745d3324fb6675789cb0104aeefa84eebde23d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/29745d3324fb6675789cb0104aeefa84eebde23d.jpg\" alt=\"TASKMASTER\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: TASKMASTER\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTASKMASTER\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/2edf1ad6047e2020c3e64a4fca7f66728f804f9b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/2edf1ad6047e2020c3e64a4fca7f66728f804f9b.jpg\" alt=\"A WELL-OILED MACHINE\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A WELL-OILED MACHINE\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA WELL-OILED MACHINE\u003c/strong\u003e\u003cbr/\u003e\n    Win a game by completing all tasks as a crewmate\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/b350cf33a97104167c9aac0c60079f2946396a91.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/b350cf33a97104167c9aac0c60079f2946396a91.jpg\" alt=\"SABOTEUR\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: SABOTEUR\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSABOTEUR\u003c/strong\u003e\u003cbr/\u003e\n    Win a game by sabotaging a critical system as Impostor.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/7407736424058a1a0c06821bd7bb1a8f97b68f2b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/7407736424058a1a0c06821bd7bb1a8f97b68f2b.jpg\" alt=\"H U N G E R\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: H U N G E R\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eH U N G E R\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/4f3b552ac6ab7e1986fc89043d7f4619005b99e3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/4f3b552ac6ab7e1986fc89043d7f4619005b99e3.jpg\" alt=\"PERFORM UNDER PRESSURE\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: PERFORM UNDER PRESSURE\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePERFORM UNDER PRESSURE\u003c/strong\u003e\u003cbr/\u003e\n    Do all your tasks in Hide n Seek Mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/d40f4fafc7838afc8ccb8f90ce97b24518098086.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/d40f4fafc7838afc8ccb8f90ce97b24518098086.jpg\" alt=\"TRUST NO ONE\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: TRUST NO ONE\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTRUST NO ONE\u003c/strong\u003e\u003cbr/\u003e\n    Kill Someone while disguised as them\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/38a89336b3ce67d98296ea40a609ad6e285ecf78.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/38a89336b3ce67d98296ea40a609ad6e285ecf78.jpg\" alt=\"BUT YOU CAN HIDE\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: BUT YOU CAN HIDE\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBUT YOU CAN HIDE\u003c/strong\u003e\u003cbr/\u003e\n    50 wins as a hider in Hide n Seek Mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/b5d7f62a454b6b57fc25704a2148b3f8ebd11f46.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/b5d7f62a454b6b57fc25704a2148b3f8ebd11f46.jpg\" alt=\"YOU CAN RUN\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: YOU CAN RUN\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYOU CAN RUN\u003c/strong\u003e\u003cbr/\u003e\n    100 kills as a seeker in Hide n Seek Mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/42e9cf46caa4d881206ae70089ca5b4df648dd00.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/42e9cf46caa4d881206ae70089ca5b4df648dd00.jpg\" alt=\"BUT YOU CAN\u0026#39;T HIDE\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: BUT YOU CAN\u0026#39;T HIDE\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBUT YOU CAN\u0026#39;T HIDE\u003c/strong\u003e\u003cbr/\u003e\n    200 kills as a seeker in Hide n Seek Mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/945360/library_600x900.jpg\" alt=\"Among Us box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/945360/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eAmong Us\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 69.7%\"\u003e\n        69.7%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e23/33 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e198.9h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-07-06\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (23)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/28d77d90c1978829c159eae6fe799a191c34be83.jpg\" alt=\"A TASTE FOR IT\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA TASTE FOR IT\u003c/strong\u003e\u003cbr\u003e\n    Get your first kill\u003cbr\u003e\n    \u003csmall\u003eUnlocked: February 28, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/f2b99effc0a886290c7b86e1d13bf8fb8df9552c.jpg\" alt=\"KILLER\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKILLER\u003c/strong\u003e\u003cbr\u003e\n    Get 5 total kills\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 03, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/c56c94c6016eaa474ba59118c0c70b814156fe20.jpg\" alt=\"ASSASSIN\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eASSASSIN\u003c/strong\u003e\u003cbr\u003e\n    Get 50 total kills\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 06, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/11d6a7da14eaa7036982b4375ea7caba288339ce.jpg\" alt=\"INTERN\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eINTERN\u003c/strong\u003e\u003cbr\u003e\n    Complete 10 total tasks\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 01, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/fb8ff2604057a9cc13acf74166c52ff945354803.jpg\" alt=\"MANAGER\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMANAGER\u003c/strong\u003e\u003cbr\u003e\n    Complete 100 total tasks\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 02, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/1c1b96b03b075eb3b42e368ebbdf257e19ef9087.jpg\" alt=\"A SHIP ADRIFT\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA SHIP ADRIFT\u003c/strong\u003e\u003cbr\u003e\n    Win 3 games on Skeld\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 01, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/144c10dcf276eaffe8a7c03553c7d8a63c0de116.jpg\" alt=\"CORPORATE LOCKDOWN\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCORPORATE LOCKDOWN\u003c/strong\u003e\u003cbr\u003e\n    Win 3 games on MIRA\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 01, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/4d3d812ce857674d5013fb8c499bfacfd063277c.jpg\" alt=\"UNEARTHED\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUNEARTHED\u003c/strong\u003e\u003cbr\u003e\n    Win 3 games on Polus\u003cbr\u003e\n    \u003csmall\u003eUnlocked: February 28, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/78c3fd6c3f272601db4023d546f4e0879c3880c3.jpg\" alt=\"TOPPAT CREWMATES\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTOPPAT CREWMATES\u003c/strong\u003e\u003cbr\u003e\n    Win 3 games on The Airship\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 15, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/9c5048637cd0aecf7f9fcd4ac4f46c0d0c1d7541.jpg\" alt=\"NEVER SUSPECT A THING\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNEVER SUSPECT A THING\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 07, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/cbf1cacf0178c63aa2f8545030d53b5f9891aeb0.jpg\" alt=\"SLASHER\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSLASHER\u003c/strong\u003e\u003cbr\u003e\n    Win a game by killing all crewmates as Impostor.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: February 28, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/36b531782d1eba6166eb54769d36f42a3e87ace0.jpg\" alt=\"SURVIVOR\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSURVIVOR\u003c/strong\u003e\u003cbr\u003e\n    Survive and win a game as a crewmate\u003cbr\u003e\n    \u003csmall\u003eUnlocked: February 27, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/e2bf2b4ca2e03bbf1b48a9a8c72dd2fde4ee7e68.jpg\" alt=\"SMOOTH TALKER\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSMOOTH TALKER\u003c/strong\u003e\u003cbr\u003e\n    Win a game by vote as Impostor\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 01, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/c486b2f15c031a9929e6193a334c8f947b326009.jpg\" alt=\"IMPOSSIBLE TASK\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIMPOSSIBLE TASK\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 02, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/6d53ce190945abd26dc4d5cf265cda396196e736.jpg\" alt=\"LIGHTS OUT\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLIGHTS OUT\u003c/strong\u003e\u003cbr\u003e\n    Get a kill during a lights sabotage\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 05, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/bf78b9db17985ba127345ac32258f3116ed7ec00.jpg\" alt=\"WATCH ME SCAN\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWATCH ME SCAN\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 16, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/cb4695fda4b61e880404ba5051185a1c154e6156.jpg\" alt=\"CREWPOSTOR\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCREWPOSTOR\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 01, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/970151abaa23e371daaea0423122126184346103.jpg\" alt=\"SHERLOCK\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSHERLOCK\u003c/strong\u003e\u003cbr\u003e\n    Win a game as crew with your only votes being for the Impostor\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 01, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/d98da75d64e92504c70b54339a17ab98b8b732fa.jpg\" alt=\"CIRCUMVENTER\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCIRCUMVENTER\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: February 28, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/7428551173ce6c4ba93f2b0c7acd226ce208e18a.jpg\" alt=\"HIDDEN TALENT\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHIDDEN TALENT\u003c/strong\u003e\u003cbr\u003e\n    Survive a Game as Crew in Hide n Seek Mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 01, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/2529465727f1115c5d69e58bb5f7df53aa11c03f.jpg\" alt=\"NO ESCAPE\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNO ESCAPE\u003c/strong\u003e\u003cbr\u003e\n    Kill all hiders as impostor in Hide n Seek Mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 30, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/90221101a3a9b33c742711741e0585c887f7d791.jpg\" alt=\"I CAN BE YOUR ANGLE\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI CAN BE YOUR ANGLE\u003c/strong\u003e\u003cbr\u003e\n    Block a kill as a guardian angel\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 04, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/12a62b22955b0aeac6f250a7e736dc0e82e1d5e7.jpg\" alt=\"YOU CAN'T RUN\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYOU CAN'T RUN\u003c/strong\u003e\u003cbr\u003e\n    10 wins as a hider in Hide n Seek Mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 06, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (10)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/afbceff91aaf5f9370fad840d7bab3f377af2670.jpg\" alt=\"SCOURGE\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSCOURGE\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/29745d3324fb6675789cb0104aeefa84eebde23d.jpg\" alt=\"TASKMASTER\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTASKMASTER\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/2edf1ad6047e2020c3e64a4fca7f66728f804f9b.jpg\" alt=\"A WELL-OILED MACHINE\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA WELL-OILED MACHINE\u003c/strong\u003e\u003cbr\u003e\n    Win a game by completing all tasks as a crewmate\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/b350cf33a97104167c9aac0c60079f2946396a91.jpg\" alt=\"SABOTEUR\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSABOTEUR\u003c/strong\u003e\u003cbr\u003e\n    Win a game by sabotaging a critical system as Impostor.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/7407736424058a1a0c06821bd7bb1a8f97b68f2b.jpg\" alt=\"H U N G E R\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eH U N G E R\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/4f3b552ac6ab7e1986fc89043d7f4619005b99e3.jpg\" alt=\"PERFORM UNDER PRESSURE\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePERFORM UNDER PRESSURE\u003c/strong\u003e\u003cbr\u003e\n    Do all your tasks in Hide n Seek Mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/d40f4fafc7838afc8ccb8f90ce97b24518098086.jpg\" alt=\"TRUST NO ONE\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTRUST NO ONE\u003c/strong\u003e\u003cbr\u003e\n    Kill Someone while disguised as them\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/38a89336b3ce67d98296ea40a609ad6e285ecf78.jpg\" alt=\"BUT YOU CAN HIDE\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBUT YOU CAN HIDE\u003c/strong\u003e\u003cbr\u003e\n    50 wins as a hider in Hide n Seek Mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/b5d7f62a454b6b57fc25704a2148b3f8ebd11f46.jpg\" alt=\"YOU CAN RUN\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYOU CAN RUN\u003c/strong\u003e\u003cbr\u003e\n    100 kills as a seeker in Hide n Seek Mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/945360/42e9cf46caa4d881206ae70089ca5b4df648dd00.jpg\" alt=\"BUT YOU CAN'T HIDE\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBUT YOU CAN'T HIDE\u003c/strong\u003e\u003cbr\u003e\n    200 kills as a seeker in Hide n Seek Mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Among Us - 69.7% complete with 23/33 achievements unlocked.",
      "date_published": "2025-07-06T00:00:00Z",
      "date_modified": "2025-07-06T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "among-us"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/gpg-setup-for-kdewallet/",
      "url": "https://go.waylonwalker.com/gpg-setup-for-kdewallet/",
      "title": "gpg setup for kdewallet",
      "content_html": "\u003cp\u003eI’m trying to setup gpg for kdewallet on archlinux with hyprland so that brave\nshuts up.  I’ve tried this, but brave still complains about the wallet setup,\nso this post is to be continued.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo pacman -S gnupg\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egpg --full-generate-key\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# use RSA\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# key length 4096\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# passphrase\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egpg --list-keys\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nI'm trying to setup gpg for kdewallet on archlinux with hyprland so that brave\nshuts up.  I've tried this, but brave still complains about the wallet setup,\nso this post is to be continued.\n\n``` bash\nsudo pacman -S gnupg\ngpg --full-generate-key\n# use RSA\n# key length 4096\n# passphrase\ngpg --list-keys\n```\n",
      "summary": "I'm trying to setup gpg for kdewallet on archlinux with hyprland so that brave shuts up. I've tried this, but brave still complains about the wallet setup,...",
      "date_published": "2025-07-04T13:52:43Z",
      "date_modified": "2025-07-04T13:52:43Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/ultimate-chicken-horse/",
      "url": "https://go.waylonwalker.com/steam/ultimate-chicken-horse/",
      "title": "Ultimate Chicken Horse",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/386940/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/386940/library_600x900.jpg\" alt=\"Ultimate Chicken Horse box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/386940/header.jpg\u0026#39;\"/ data-glightbox=\"description: Ultimate Chicken Horse box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eUltimate Chicken Horse\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 58.06%\"\u003e\n        58.06%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e18/31 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e11.3h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-06-26\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (18)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/45c9322e679083ec61b8dfeef88e1a2f50ee02e7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/45c9322e679083ec61b8dfeef88e1a2f50ee02e7.jpg\" alt=\"Gettin\u0026#39; the Hang of It\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Gettin\u0026#39; the Hang of It\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGettin\u0026#39; the Hang of It\u003c/strong\u003e\u003cbr/\u003e\n    Play 10 games\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 13, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/9682511728c8b550ec9bf5124dbbbba993969ab1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/9682511728c8b550ec9bf5124dbbbba993969ab1.jpg\" alt=\"Seasoned Vet\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Seasoned Vet\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSeasoned Vet\u003c/strong\u003e\u003cbr/\u003e\n    Play 30 games\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: February 12, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/bbed9b926bd8e8c5af88d5d27216de72c4d4da28.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/bbed9b926bd8e8c5af88d5d27216de72c4d4da28.jpg\" alt=\"Techie\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Techie\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTechie\u003c/strong\u003e\u003cbr/\u003e\n    Play 10 games online\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 13, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/f01cd9aacbc2ee372837b75d040f9c241dd92b1b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/f01cd9aacbc2ee372837b75d040f9c241dd92b1b.jpg\" alt=\"Trappist\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Trappist\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTrappist\u003c/strong\u003e\u003cbr/\u003e\n    Place 200 traps\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 15, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/d9cc3b320e5c6f4f64e0925bc0cfcc5ba8f7d18d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/d9cc3b320e5c6f4f64e0925bc0cfcc5ba8f7d18d.jpg\" alt=\"Young Explorer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Young Explorer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYoung Explorer\u003c/strong\u003e\u003cbr/\u003e\n    Unlock a level\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 13, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/78edd86fa38ae959bf98e1ee233073901638d3c9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/78edd86fa38ae959bf98e1ee233073901638d3c9.jpg\" alt=\"A New Friend Appears\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A New Friend Appears\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA New Friend Appears\u003c/strong\u003e\u003cbr/\u003e\n    Unlock a character\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 15, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/1aa050f8b2a60f50337f8ea486a0a77b95db4501.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/1aa050f8b2a60f50337f8ea486a0a77b95db4501.jpg\" alt=\"Gettin\u0026#39; Fancy\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Gettin\u0026#39; Fancy\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGettin\u0026#39; Fancy\u003c/strong\u003e\u003cbr/\u003e\n    Unlock an outfit\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 21, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/c5d2cde5f5c7f46d53275eafac4334f1437524e9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/c5d2cde5f5c7f46d53275eafac4334f1437524e9.jpg\" alt=\"Wilhelm Audition\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Wilhelm Audition\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWilhelm Audition\u003c/strong\u003e\u003cbr/\u003e\n    Fall into the void 100 times\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 23, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/a87b57762c79d8c40e0eb2bb07b4d6f0bc159a2e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/a87b57762c79d8c40e0eb2bb07b4d6f0bc159a2e.jpg\" alt=\"Animal Cruelty\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Animal Cruelty\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAnimal Cruelty\u003c/strong\u003e\u003cbr/\u003e\n    Kill people with traps 100 times\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 13, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/73c7b8441aa3bdd1bfefdcc9707f4108cb63bf9b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/73c7b8441aa3bdd1bfefdcc9707f4108cb63bf9b.jpg\" alt=\"Not So Sharp\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Not So Sharp\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNot So Sharp\u003c/strong\u003e\u003cbr/\u003e\n    Die on barbed wire 10 times\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 09, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/1469fb6c14504a4926b1afe0fa2c4863df690551.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/1469fb6c14504a4926b1afe0fa2c4863df690551.jpg\" alt=\"Neat and Nimble\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Neat and Nimble\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNeat and Nimble\u003c/strong\u003e\u003cbr/\u003e\n    Wall jump 1000 times\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 12, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/808e8faa879edaf0bfed4a1433dc870e25b7224e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/808e8faa879edaf0bfed4a1433dc870e25b7224e.jpg\" alt=\"Craftsperson\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Craftsperson\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCraftsperson\u003c/strong\u003e\u003cbr/\u003e\n    Attach two blocks together with glue\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 13, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/7e8c34c3f2c1d5b050ffffcb68f38ee32849a97c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/7e8c34c3f2c1d5b050ffffcb68f38ee32849a97c.jpg\" alt=\"Engineer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Engineer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEngineer\u003c/strong\u003e\u003cbr/\u003e\n    Glue four blocks together\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 13, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/91a224614ba8831f182b9d7afdaf18eca98e00f5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/91a224614ba8831f182b9d7afdaf18eca98e00f5.jpg\" alt=\"Space-Time Cadet\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Space-Time Cadet\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpace-Time Cadet\u003c/strong\u003e\u003cbr/\u003e\n    Teleport 50 times\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: February 12, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/226aaf078bf7576a4fdfe105865928719b141324.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/226aaf078bf7576a4fdfe105865928719b141324.jpg\" alt=\"Greedy McGreedster\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Greedy McGreedster\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGreedy McGreedster\u003c/strong\u003e\u003cbr/\u003e\n    Get 50 coins\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 21, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/8d61d80ea379b933e4f3ebd84b518d9d655e1f56.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/8d61d80ea379b933e4f3ebd84b518d9d655e1f56.jpg\" alt=\"Droppin\u0026#39; Bills\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Droppin\u0026#39; Bills\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDroppin\u0026#39; Bills\u003c/strong\u003e\u003cbr/\u003e\n    Die with the coin 10 times\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 09, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/ab2c512ca92542d4141442462cb903d7d52a2521.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/ab2c512ca92542d4141442462cb903d7d52a2521.jpg\" alt=\"Spaghetti Award\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Spaghetti Award\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpaghetti Award\u003c/strong\u003e\u003cbr/\u003e\n    Die 50 times in a black hole\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 21, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/7f8048dca462f56398c8465183f3bc475a56d2b4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/7f8048dca462f56398c8465183f3bc475a56d2b4.jpg\" alt=\"Back to the Basics\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Back to the Basics\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBack to the Basics\u003c/strong\u003e\u003cbr/\u003e\n    Win without any special points\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 09, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (13)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/3853dda9f4a2043fbabf73a8d937bbc9cb00c71b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/3853dda9f4a2043fbabf73a8d937bbc9cb00c71b.jpg\" alt=\"Ultimate Expert\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ultimate Expert\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUltimate Expert\u003c/strong\u003e\u003cbr/\u003e\n    Play 100 games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/be0a2860ed53565e638a1531a132c0c67cd36896.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/be0a2860ed53565e638a1531a132c0c67cd36896.jpg\" alt=\"Showoff\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Showoff\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShowoff\u003c/strong\u003e\u003cbr/\u003e\n    Play 50 games online\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/49eac6924618d4d18408792bde0c00b00d427c21.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/49eac6924618d4d18408792bde0c00b00d427c21.jpg\" alt=\"Takin\u0026#39; On the World!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Takin\u0026#39; On the World!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTakin\u0026#39; On the World!\u003c/strong\u003e\u003cbr/\u003e\n    Play online with a local friend\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/79b940d301d1d7e23a8af53cc94bf81fd5ae904f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/79b940d301d1d7e23a8af53cc94bf81fd5ae904f.jpg\" alt=\"Threat to Public Security\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Threat to Public Security\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThreat to Public Security\u003c/strong\u003e\u003cbr/\u003e\n    Place 1000 traps\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/5a3799a1e52811a22cc5eed1ebccdf81cb35a63b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/5a3799a1e52811a22cc5eed1ebccdf81cb35a63b.jpg\" alt=\"Magellan\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Magellan\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMagellan\u003c/strong\u003e\u003cbr/\u003e\n    Unlock all levels\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/3da94a2cabef2eef9897e173212d3f6bf0e8ccc2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/3da94a2cabef2eef9897e173212d3f6bf0e8ccc2.jpg\" alt=\"Building A Community\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Building A Community\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBuilding A Community\u003c/strong\u003e\u003cbr/\u003e\n    Unlock all characters\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/446a19ddea643e4be921ee626e89f2956092a7f4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/446a19ddea643e4be921ee626e89f2956092a7f4.jpg\" alt=\"Full Wardrobe\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Full Wardrobe\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFull Wardrobe\u003c/strong\u003e\u003cbr/\u003e\n    Unlock all outfits\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/6e366586a21c228e025ef839a42d091342c73d55.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/6e366586a21c228e025ef839a42d091342c73d55.jpg\" alt=\"Archer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Archer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArcher\u003c/strong\u003e\u003cbr/\u003e\n    Kill someone with an arrow 100 times\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/2940a0c9386d2799f43efe5738432681662e17c3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/2940a0c9386d2799f43efe5738432681662e17c3.jpg\" alt=\"Goon\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Goon\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGoon\u003c/strong\u003e\u003cbr/\u003e\n    Kill someone with a hockey puck shooter 100 times\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/ee0b5f5a7e4c0f2f22b4b24022597015b9dea495.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/ee0b5f5a7e4c0f2f22b4b24022597015b9dea495.jpg\" alt=\"Necromancer Dancer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Necromancer Dancer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNecromancer Dancer\u003c/strong\u003e\u003cbr/\u003e\n    Get 10 post-mortem points\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/00eef38b06d8c82e66594ae3007a9f29052cfcd9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/00eef38b06d8c82e66594ae3007a9f29052cfcd9.jpg\" alt=\"Clutch Performer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Clutch Performer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eClutch Performer\u003c/strong\u003e\u003cbr/\u003e\n    Enter sudden death 20 times\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/5da29a50e0e979f5e5246e6e13687f70545e43a0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/5da29a50e0e979f5e5246e6e13687f70545e43a0.jpg\" alt=\"Comeback Kid\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Comeback Kid\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eComeback Kid\u003c/strong\u003e\u003cbr/\u003e\n    Score 50 comeback points\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/dd84a66a898930627b9729917f50d8613e2298eb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/dd84a66a898930627b9729917f50d8613e2298eb.jpg\" alt=\"Solo Master\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Solo Master\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSolo Master\u003c/strong\u003e\u003cbr/\u003e\n    Score 100 solo points\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/386940/library_600x900.jpg\" alt=\"Ultimate Chicken Horse box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/386940/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eUltimate Chicken Horse\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 58.06%\"\u003e\n        58.06%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e18/31 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e11.3h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-06-26\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (18)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/45c9322e679083ec61b8dfeef88e1a2f50ee02e7.jpg\" alt=\"Gettin' the Hang of It\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGettin' the Hang of It\u003c/strong\u003e\u003cbr\u003e\n    Play 10 games\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 13, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/9682511728c8b550ec9bf5124dbbbba993969ab1.jpg\" alt=\"Seasoned Vet\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSeasoned Vet\u003c/strong\u003e\u003cbr\u003e\n    Play 30 games\u003cbr\u003e\n    \u003csmall\u003eUnlocked: February 12, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/bbed9b926bd8e8c5af88d5d27216de72c4d4da28.jpg\" alt=\"Techie\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTechie\u003c/strong\u003e\u003cbr\u003e\n    Play 10 games online\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 13, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/f01cd9aacbc2ee372837b75d040f9c241dd92b1b.jpg\" alt=\"Trappist\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTrappist\u003c/strong\u003e\u003cbr\u003e\n    Place 200 traps\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 15, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/d9cc3b320e5c6f4f64e0925bc0cfcc5ba8f7d18d.jpg\" alt=\"Young Explorer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYoung Explorer\u003c/strong\u003e\u003cbr\u003e\n    Unlock a level\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 13, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/78edd86fa38ae959bf98e1ee233073901638d3c9.jpg\" alt=\"A New Friend Appears\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA New Friend Appears\u003c/strong\u003e\u003cbr\u003e\n    Unlock a character\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 15, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/1aa050f8b2a60f50337f8ea486a0a77b95db4501.jpg\" alt=\"Gettin' Fancy\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGettin' Fancy\u003c/strong\u003e\u003cbr\u003e\n    Unlock an outfit\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 21, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/c5d2cde5f5c7f46d53275eafac4334f1437524e9.jpg\" alt=\"Wilhelm Audition\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWilhelm Audition\u003c/strong\u003e\u003cbr\u003e\n    Fall into the void 100 times\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 23, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/a87b57762c79d8c40e0eb2bb07b4d6f0bc159a2e.jpg\" alt=\"Animal Cruelty\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAnimal Cruelty\u003c/strong\u003e\u003cbr\u003e\n    Kill people with traps 100 times\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 13, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/73c7b8441aa3bdd1bfefdcc9707f4108cb63bf9b.jpg\" alt=\"Not So Sharp\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNot So Sharp\u003c/strong\u003e\u003cbr\u003e\n    Die on barbed wire 10 times\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 09, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/1469fb6c14504a4926b1afe0fa2c4863df690551.jpg\" alt=\"Neat and Nimble\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNeat and Nimble\u003c/strong\u003e\u003cbr\u003e\n    Wall jump 1000 times\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 12, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/808e8faa879edaf0bfed4a1433dc870e25b7224e.jpg\" alt=\"Craftsperson\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCraftsperson\u003c/strong\u003e\u003cbr\u003e\n    Attach two blocks together with glue\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 13, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/7e8c34c3f2c1d5b050ffffcb68f38ee32849a97c.jpg\" alt=\"Engineer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEngineer\u003c/strong\u003e\u003cbr\u003e\n    Glue four blocks together\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 13, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/91a224614ba8831f182b9d7afdaf18eca98e00f5.jpg\" alt=\"Space-Time Cadet\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpace-Time Cadet\u003c/strong\u003e\u003cbr\u003e\n    Teleport 50 times\u003cbr\u003e\n    \u003csmall\u003eUnlocked: February 12, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/226aaf078bf7576a4fdfe105865928719b141324.jpg\" alt=\"Greedy McGreedster\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGreedy McGreedster\u003c/strong\u003e\u003cbr\u003e\n    Get 50 coins\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 21, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/8d61d80ea379b933e4f3ebd84b518d9d655e1f56.jpg\" alt=\"Droppin' Bills\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDroppin' Bills\u003c/strong\u003e\u003cbr\u003e\n    Die with the coin 10 times\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 09, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/ab2c512ca92542d4141442462cb903d7d52a2521.jpg\" alt=\"Spaghetti Award\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpaghetti Award\u003c/strong\u003e\u003cbr\u003e\n    Die 50 times in a black hole\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 21, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/7f8048dca462f56398c8465183f3bc475a56d2b4.jpg\" alt=\"Back to the Basics\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBack to the Basics\u003c/strong\u003e\u003cbr\u003e\n    Win without any special points\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 09, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (13)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/3853dda9f4a2043fbabf73a8d937bbc9cb00c71b.jpg\" alt=\"Ultimate Expert\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUltimate Expert\u003c/strong\u003e\u003cbr\u003e\n    Play 100 games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/be0a2860ed53565e638a1531a132c0c67cd36896.jpg\" alt=\"Showoff\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShowoff\u003c/strong\u003e\u003cbr\u003e\n    Play 50 games online\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/49eac6924618d4d18408792bde0c00b00d427c21.jpg\" alt=\"Takin' On the World!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTakin' On the World!\u003c/strong\u003e\u003cbr\u003e\n    Play online with a local friend\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/79b940d301d1d7e23a8af53cc94bf81fd5ae904f.jpg\" alt=\"Threat to Public Security\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThreat to Public Security\u003c/strong\u003e\u003cbr\u003e\n    Place 1000 traps\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/5a3799a1e52811a22cc5eed1ebccdf81cb35a63b.jpg\" alt=\"Magellan\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMagellan\u003c/strong\u003e\u003cbr\u003e\n    Unlock all levels\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/3da94a2cabef2eef9897e173212d3f6bf0e8ccc2.jpg\" alt=\"Building A Community\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBuilding A Community\u003c/strong\u003e\u003cbr\u003e\n    Unlock all characters\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/446a19ddea643e4be921ee626e89f2956092a7f4.jpg\" alt=\"Full Wardrobe\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFull Wardrobe\u003c/strong\u003e\u003cbr\u003e\n    Unlock all outfits\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/6e366586a21c228e025ef839a42d091342c73d55.jpg\" alt=\"Archer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArcher\u003c/strong\u003e\u003cbr\u003e\n    Kill someone with an arrow 100 times\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/2940a0c9386d2799f43efe5738432681662e17c3.jpg\" alt=\"Goon\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGoon\u003c/strong\u003e\u003cbr\u003e\n    Kill someone with a hockey puck shooter 100 times\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/ee0b5f5a7e4c0f2f22b4b24022597015b9dea495.jpg\" alt=\"Necromancer Dancer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNecromancer Dancer\u003c/strong\u003e\u003cbr\u003e\n    Get 10 post-mortem points\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/00eef38b06d8c82e66594ae3007a9f29052cfcd9.jpg\" alt=\"Clutch Performer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eClutch Performer\u003c/strong\u003e\u003cbr\u003e\n    Enter sudden death 20 times\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/5da29a50e0e979f5e5246e6e13687f70545e43a0.jpg\" alt=\"Comeback Kid\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eComeback Kid\u003c/strong\u003e\u003cbr\u003e\n    Score 50 comeback points\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/386940/dd84a66a898930627b9729917f50d8613e2298eb.jpg\" alt=\"Solo Master\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSolo Master\u003c/strong\u003e\u003cbr\u003e\n    Score 100 solo points\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Ultimate Chicken Horse - 58.06% complete with 18/31 achievements unlocked.",
      "date_published": "2025-06-26T00:00:00Z",
      "date_modified": "2025-06-26T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "ultimate-chicken-horse"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/oxygen-not-included/",
      "url": "https://go.waylonwalker.com/steam/oxygen-not-included/",
      "title": "Oxygen Not Included",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/457140/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/457140/library_600x900.jpg\" alt=\"Oxygen Not Included box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/457140/header.jpg\u0026#39;\"/ data-glightbox=\"description: Oxygen Not Included box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eOxygen Not Included\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 12.0%\"\u003e\n        12.0%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e6/50 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e23.8h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-06-19\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (6)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/b6a5517b2360e0610918cb9deb974183ece6bcb4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/b6a5517b2360e0610918cb9deb974183ece6bcb4.jpg\" alt=\"Outdoor Renovations\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Outdoor Renovations\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOutdoor Renovations\u003c/strong\u003e\u003cbr/\u003e\n    Construct a building outside the initial starting biome.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: February 06, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/9cc2ee55f19e05fd6f6fee53088130f83a731e64.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/9cc2ee55f19e05fd6f6fee53088130f83a731e64.jpg\" alt=\"To Pay the Bills\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: To Pay the Bills\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTo Pay the Bills\u003c/strong\u003e\u003cbr/\u003e\n    Use a Duplicant\u0026#39;s Skill Points to buy out an entire branch of the Skill Tree.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: February 06, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/d26ccd31f965c03004b91f670011caf230653073.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/d26ccd31f965c03004b91f670011caf230653073.jpg\" alt=\"It\u0026#39;s Not Raw\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: It\u0026#39;s Not Raw\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt\u0026#39;s Not Raw\u003c/strong\u003e\u003cbr/\u003e\n    Have a Duplicant eat any cooked meal prepared at an Electrical Grill or Gas Range.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: February 06, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/117f0440652be67218a1a98b69fe322e4b384c7a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/117f0440652be67218a1a98b69fe322e4b384c7a.jpg\" alt=\"One Bed One Bath\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: One Bed One Bath\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOne Bed One Bath\u003c/strong\u003e\u003cbr/\u003e\n    Have at least one bed and one toilet for each Duplicant in the colony.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: February 07, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/7685518eda0609aaaf50b22966b4cef87d527243.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/7685518eda0609aaaf50b22966b4cef87d527243.jpg\" alt=\"Oxygen Not Occluded\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Oxygen Not Occluded\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOxygen Not Occluded\u003c/strong\u003e\u003cbr/\u003e\n    Distribute 1000kg of Oxygen using gas vents.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 15, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/93b654da4e03ec218f653e22a7f16254db0e349f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/93b654da4e03ec218f653e22a7f16254db0e349f.jpg\" alt=\"They Got Better\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: They Got Better\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThey Got Better\u003c/strong\u003e\u003cbr/\u003e\n    Cure a sick Duplicant of disease.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 15, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (44)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/4e9e2df5c6c4e1d6312e08b2c248a9b2505b65f2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/4e9e2df5c6c4e1d6312e08b2c248a9b2505b65f2.jpg\" alt=\"The Great Escape\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Great Escape\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Great Escape\u003c/strong\u003e\u003cbr/\u003e\n    Ensure your colony\u0026#39;s legacy by fulfilling the requirements of the Escape Imperative.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/b14daa93ecebeb794ce8c8b082ef27ee0f4464b5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/b14daa93ecebeb794ce8c8b082ef27ee0f4464b5.jpg\" alt=\"Home Sweet Home\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Home Sweet Home\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHome Sweet Home\u003c/strong\u003e\u003cbr/\u003e\n    Establish your permanent home by fulfilling the requirements of the Colonize Imperative.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/14849f23c9f6e003ac124bd15256a556dbd045d1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/14849f23c9f6e003ac124bd15256a556dbd045d1.jpg\" alt=\"Locavore\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Locavore\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLocavore\u003c/strong\u003e\u003cbr/\u003e\n    Have Duplicants consume 400,000kcal of food without planting any seeds in Planter Boxes, Farm Tiles, or Hydroponic Farms.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/3cf15a2d8ca124a0b95e161863f2f6cc6a498fa6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/3cf15a2d8ca124a0b95e161863f2f6cc6a498fa6.jpg\" alt=\"Carnivore\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Carnivore\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCarnivore\u003c/strong\u003e\u003cbr/\u003e\n    Have Duplicants eat 400,000kcal of critter meat before the 100th cycle.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/3925347ea7fdefd2e569c3346c4165913df5fd75.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/3925347ea7fdefd2e569c3346c4165913df5fd75.jpg\" alt=\"Some Reservations\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Some Reservations\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSome Reservations\u003c/strong\u003e\u003cbr/\u003e\n    Improve Duplicant Morale by designating 4 areas as Nature Reserves.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/133717411a8e542342a3b4f671a4b032c8051255.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/133717411a8e542342a3b4f671a4b032c8051255.jpg\" alt=\"No Place Like Clone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: No Place Like Clone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNo Place Like Clone\u003c/strong\u003e\u003cbr/\u003e\n    Have at least 20 living Duplicants living in the colony at one time.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/3db83f5cf910513da068dfbcf70af71fc5e909ac.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/3db83f5cf910513da068dfbcf70af71fc5e909ac.jpg\" alt=\"Turn of the Century\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Turn of the Century\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTurn of the Century\u003c/strong\u003e\u003cbr/\u003e\n    Reach cycle 100 with at least one living Duplicant.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/4378f01ad9a725aa0f6e2d26f88ae925f851cc37.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/4378f01ad9a725aa0f6e2d26f88ae925f851cc37.jpg\" alt=\"Moovin\u0026#39; On Up\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Moovin\u0026#39; On Up\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMoovin\u0026#39; On Up\u003c/strong\u003e\u003cbr/\u003e\n    Find and tame a Gassy Moo.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/55e869b3c939f9b8aed7261e5a0f845bc25bbb12.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/55e869b3c939f9b8aed7261e5a0f845bc25bbb12.jpg\" alt=\"Not 0K, But Pretty Cool\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Not 0K, But Pretty Cool\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNot 0K, But Pretty Cool\u003c/strong\u003e\u003cbr/\u003e\n    Reduce the temperature of a building to 6 Kelvin.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/5a8b42488fbc2e21f994ebf13da24a2f5f2e1ce5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/5a8b42488fbc2e21f994ebf13da24a2f5f2e1ce5.jpg\" alt=\"Super Sustainable\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Super Sustainable\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSuper Sustainable\u003c/strong\u003e\u003cbr/\u003e\n    Generate 240,000kJ of power without using coal, methane, petrol or wood generators.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/3f549e4037ec2a4b0fb782e2439f5c27936300b2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/3f549e4037ec2a4b0fb782e2439f5c27936300b2.jpg\" alt=\"Totally Tubular\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Totally Tubular\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTotally Tubular\u003c/strong\u003e\u003cbr/\u003e\n    Have Duplicants travel 10,000m by Transit Tube.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/84c9f47625599181a161228d9677c93f8dc6f7f0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/84c9f47625599181a161228d9677c93f8dc6f7f0.jpg\" alt=\"Space Race\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Space Race\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpace Race\u003c/strong\u003e\u003cbr/\u003e\n    Launch your first rocket into space.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/8efeb4f3c0c1a49bef4bc6ebef7fdfd1df60ffba.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/8efeb4f3c0c1a49bef4bc6ebef7fdfd1df60ffba.jpg\" alt=\"And Nowhere to Go\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: And Nowhere to Go\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAnd Nowhere to Go\u003c/strong\u003e\u003cbr/\u003e\n    Have 8 Duplicants wear non-default clothing simultaneously.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/83f09d284d8fb7a8d77b93df336806d15cdf8440.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/83f09d284d8fb7a8d77b93df336806d15cdf8440.jpg\" alt=\"Get a Room\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Get a Room\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGet a Room\u003c/strong\u003e\u003cbr/\u003e\n    Build at least one of each of the following rooms in a single colony: A Nature Reserve, a Hospital, a Recreation Room, a Great Hall, a Bedroom, a Washroom, a Greenhouse and a Stable.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/08c8396437eeec03dbd24393a2d515f750561997.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/08c8396437eeec03dbd24393a2d515f750561997.jpg\" alt=\"One Year, to be Exact\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: One Year, to be Exact\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOne Year, to be Exact\u003c/strong\u003e\u003cbr/\u003e\n    Reach cycle 365.25 with a single colony.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/a73848c433629297f49153cc110de6b0b421637a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/a73848c433629297f49153cc110de6b0b421637a.jpg\" alt=\"Slick\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Slick\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSlick\u003c/strong\u003e\u003cbr/\u003e\n    Enter an oil biome for the first time.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/646d70e383557dec188cf081dfd29b957618bf63.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/646d70e383557dec188cf081dfd29b957618bf63.jpg\" alt=\"Critter Whisperer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Critter Whisperer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCritter Whisperer\u003c/strong\u003e\u003cbr/\u003e\n    Find and tame one of every critter species in the world. Default morphs only.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/881a28845bde3722e82cae899227bb17c97c6709.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/881a28845bde3722e82cae899227bb17c97c6709.jpg\" alt=\"Honorary Doctorate\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Honorary Doctorate\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHonorary Doctorate\u003c/strong\u003e\u003cbr/\u003e\n    Unlock every item in the Research Tree.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/23b35278f0bf775bd0bce7158265cba32fb5d145.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/23b35278f0bf775bd0bce7158265cba32fb5d145.jpg\" alt=\"Royal Flush\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Royal Flush\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRoyal Flush\u003c/strong\u003e\u003cbr/\u003e\n    Replace all the Outhouses and Wash Basins in your colony with Lavatories and Sinks.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/f940c84fa852f549fae96abfc812cd3b346398fe.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/f940c84fa852f549fae96abfc812cd3b346398fe.jpg\" alt=\"Red Light, Green Light\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Red Light, Green Light\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRed Light, Green Light\u003c/strong\u003e\u003cbr/\u003e\n    Automate a building using sensors or switches from the Automation tab in the Build Menu.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/9f30dae3c8b8bb8973ba465e673d19a263e9d695.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/9f30dae3c8b8bb8973ba465e673d19a263e9d695.jpg\" alt=\"Art Underground\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Art Underground\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArt Underground\u003c/strong\u003e\u003cbr/\u003e\n    Have a Duplicant with the Masterworks skill paint a Masterpiece quality painting.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/d21e45c802f31168ca406241cb7d85c018cfbc03.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/d21e45c802f31168ca406241cb7d85c018cfbc03.jpg\" alt=\"Ghosts of Gravitas\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ghosts of Gravitas\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGhosts of Gravitas\u003c/strong\u003e\u003cbr/\u003e\n    Recover a Database entry by inspecting facility ruins.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/0465ace42236d3a77c06559943813d49f0e41b94.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/0465ace42236d3a77c06559943813d49f0e41b94.jpg\" alt=\"Good Egg\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Good Egg\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGood Egg\u003c/strong\u003e\u003cbr/\u003e\n    Hatch a new critter morph from an egg.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/4b16126ba35e562daf4456079e1f8224844b01fa.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/4b16126ba35e562daf4456079e1f8224844b01fa.jpg\" alt=\"Tune Up For What?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tune Up For What?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTune Up For What?\u003c/strong\u003e\u003cbr/\u003e\n    Perform 100 Tune Ups on power generators.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/9e85a5e22a942bcdc79b228100be6d11b6e1b5b2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/9e85a5e22a942bcdc79b228100be6d11b6e1b5b2.jpg\" alt=\"Pulling Back The Veil\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Pulling Back The Veil\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePulling Back The Veil\u003c/strong\u003e\u003cbr/\u003e\n    Reveal 80% of map by exploring outside the starting biome.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/bb752c738cd1131335fae5bdc03e3c09bae44348.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/bb752c738cd1131335fae5bdc03e3c09bae44348.jpg\" alt=\"Down the Hatch\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Down the Hatch\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDown the Hatch\u003c/strong\u003e\u003cbr/\u003e\n    Produce 10 t of refined metal by ranching Smooth Hatches.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/3323ff81ee2dbea94f1fd3e6c633b1024efbe8c9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/3323ff81ee2dbea94f1fd3e6c633b1024efbe8c9.jpg\" alt=\"Immovable Object\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Immovable Object\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eImmovable Object\u003c/strong\u003e\u003cbr/\u003e\n    Block a meteor from hitting your base using a Bunker Door.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/55c2864d95081309364997e67de541c6e2b6cacf.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/55c2864d95081309364997e67de541c6e2b6cacf.jpg\" alt=\"Easy Livin\u0026#39;\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Easy Livin\u0026#39;\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEasy Livin\u0026#39;\u003c/strong\u003e\u003cbr/\u003e\n    Have Auto Sweepers complete more deliveries to machines than Duplicants over 5 cycles.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/a336256ad36ac6f95cfdd77de4314a50c47518db.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/a336256ad36ac6f95cfdd77de4314a50c47518db.jpg\" alt=\"Job Suitability\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Job Suitability\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJob Suitability\u003c/strong\u003e\u003cbr/\u003e\n    For 10 cycles in a row, have every Duplicant in the colony complete at least one chore while wearing an Exosuit.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/cd8079423c1cf8cbb40e5d65712be0b59d21450d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/cd8079423c1cf8cbb40e5d65712be0b59d21450d.jpg\" alt=\"First Teleport of Call\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: First Teleport of Call\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFirst Teleport of Call\u003c/strong\u003e\u003cbr/\u003e\n    Teleport a Duplicant and defrost a Friend on another world.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/c869226dc45469ab837ec48925ced09a3ec9c18a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/c869226dc45469ab837ec48925ced09a3ec9c18a.jpg\" alt=\"Soft Launch\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Soft Launch\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSoft Launch\u003c/strong\u003e\u003cbr/\u003e\n    Build a launchpad on a world without a teleporter.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/44ce6195b3389c9cac1c769f5b8d636012392af1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/44ce6195b3389c9cac1c769f5b8d636012392af1.jpg\" alt=\"Cluster Conquest\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cluster Conquest\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCluster Conquest\u003c/strong\u003e\u003cbr/\u003e\n    Land dupes or rovers on all worlds in the cluster.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/2c0a4dfccab54f08d58f196b41330a6af60bb616.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/2c0a4dfccab54f08d58f196b41330a6af60bb616.jpg\" alt=\"GMO A-OK\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: GMO A-OK\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGMO A-OK\u003c/strong\u003e\u003cbr/\u003e\n    Successfully analyze at least one seed of all mutatable plants.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/ba09f818d9b65c7915204540f3538008179dae74.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/ba09f818d9b65c7915204540f3538008179dae74.jpg\" alt=\"Mine the Gap\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mine the Gap\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMine the Gap\u003c/strong\u003e\u003cbr/\u003e\n    Mine 1,000,000kg from space POIs.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/0e8cbbce2829e62e542dcf62c9f86de5990112b2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/0e8cbbce2829e62e542dcf62c9f86de5990112b2.jpg\" alt=\"Cosmic Archaeology\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cosmic Archaeology\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCosmic Archaeology\u003c/strong\u003e\u003cbr/\u003e\n    Uncover the past to secure your future by fulfilling the requirements of the Exploration Imperative.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/828d3e583ab90fc41740464e525abffd194a6902.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/828d3e583ab90fc41740464e525abffd194a6902.jpg\" alt=\"Radical Trip\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Radical Trip\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRadical Trip\u003c/strong\u003e\u003cbr/\u003e\n    Have radbolts travel a cumulative 10 km.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/9f1678bf046776d5426eb00399110a9e8225561c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/9f1678bf046776d5426eb00399110a9e8225561c.jpg\" alt=\"Sweeter Than Honey\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sweeter Than Honey\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSweeter Than Honey\u003c/strong\u003e\u003cbr/\u003e\n    Extract Uranium from a Beeta hive without getting stung.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/3fc77371680b4214621ce2039c9db2d5f2c8597f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/3fc77371680b4214621ce2039c9db2d5f2c8597f.jpg\" alt=\"Morale High Ground\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Morale High Ground\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMorale High Ground\u003c/strong\u003e\u003cbr/\u003e\n    Have all Duplicants in a rocket survive in space for 10 cycles in a row with a morale of 25 or higher.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/23276e65ed6be90128fd8a3b1cda5f5e1c681ec6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/23276e65ed6be90128fd8a3b1cda5f5e1c681ec6.jpg\" alt=\"That\u0026#39;s Rad!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: That\u0026#39;s Rad!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThat\u0026#39;s Rad!\u003c/strong\u003e\u003cbr/\u003e\n    Run a Research Reactor at full capacity for 5 cycles.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/410c93261d0b70915f8649409d8b4f2bd7862622.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/410c93261d0b70915f8649409d8b4f2bd7862622.jpg\" alt=\"Full Steam Ahead\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Full Steam Ahead\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFull Steam Ahead\u003c/strong\u003e\u003cbr/\u003e\n    Secure your colony\u0026#39;s industrial future by fulfilling the Power Imperative.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/6110b0d7ec421b75f5a3ebac8d6e78e7b313a3f6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/6110b0d7ec421b75f5a3ebac8d6e78e7b313a3f6.jpg\" alt=\"Data Driven\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Data Driven\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eData Driven\u003c/strong\u003e\u003cbr/\u003e\n    Produce a Data Bank using a Data Miner operating at maximum efficiency.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/5a52251b5f0e47146a9e332e3c7e835c5d31b7ce.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/5a52251b5f0e47146a9e332e3c7e835c5d31b7ce.jpg\" alt=\"Most Valuable Bionic\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Most Valuable Bionic\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMost Valuable Bionic\u003c/strong\u003e\u003cbr/\u003e\n    Install 8 boosters in a single Bionic Duplicant.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/92b98dfd42809288df20b01afcfe00feb6a93ea8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/92b98dfd42809288df20b01afcfe00feb6a93ea8.jpg\" alt=\"Blast Line of Defense\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Blast Line of Defense\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlast Line of Defense\u003c/strong\u003e\u003cbr/\u003e\n    Escape extinction by fulfilling the requirements of the Defense Imperative.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/2a6fafc4b795c25b02f27ad99015add13a2f25c7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/2a6fafc4b795c25b02f27ad99015add13a2f25c7.jpg\" alt=\"The Lab: Life Found A Way\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Lab: Life Found A Way\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Lab: Life Found A Way\u003c/strong\u003e\u003cbr/\u003e\n    Survive 100 cycles after Demolior collides with your colony.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/457140/library_600x900.jpg\" alt=\"Oxygen Not Included box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/457140/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eOxygen Not Included\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 12.0%\"\u003e\n        12.0%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e6/50 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e23.8h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-06-19\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (6)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/b6a5517b2360e0610918cb9deb974183ece6bcb4.jpg\" alt=\"Outdoor Renovations\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOutdoor Renovations\u003c/strong\u003e\u003cbr\u003e\n    Construct a building outside the initial starting biome.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: February 06, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/9cc2ee55f19e05fd6f6fee53088130f83a731e64.jpg\" alt=\"To Pay the Bills\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTo Pay the Bills\u003c/strong\u003e\u003cbr\u003e\n    Use a Duplicant's Skill Points to buy out an entire branch of the Skill Tree.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: February 06, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/d26ccd31f965c03004b91f670011caf230653073.jpg\" alt=\"It's Not Raw\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt's Not Raw\u003c/strong\u003e\u003cbr\u003e\n    Have a Duplicant eat any cooked meal prepared at an Electrical Grill or Gas Range.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: February 06, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/117f0440652be67218a1a98b69fe322e4b384c7a.jpg\" alt=\"One Bed One Bath\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOne Bed One Bath\u003c/strong\u003e\u003cbr\u003e\n    Have at least one bed and one toilet for each Duplicant in the colony.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: February 07, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/7685518eda0609aaaf50b22966b4cef87d527243.jpg\" alt=\"Oxygen Not Occluded\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOxygen Not Occluded\u003c/strong\u003e\u003cbr\u003e\n    Distribute 1000kg of Oxygen using gas vents.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 15, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/93b654da4e03ec218f653e22a7f16254db0e349f.jpg\" alt=\"They Got Better\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThey Got Better\u003c/strong\u003e\u003cbr\u003e\n    Cure a sick Duplicant of disease.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 15, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (44)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/4e9e2df5c6c4e1d6312e08b2c248a9b2505b65f2.jpg\" alt=\"The Great Escape\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Great Escape\u003c/strong\u003e\u003cbr\u003e\n    Ensure your colony's legacy by fulfilling the requirements of the Escape Imperative.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/b14daa93ecebeb794ce8c8b082ef27ee0f4464b5.jpg\" alt=\"Home Sweet Home\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHome Sweet Home\u003c/strong\u003e\u003cbr\u003e\n    Establish your permanent home by fulfilling the requirements of the Colonize Imperative.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/14849f23c9f6e003ac124bd15256a556dbd045d1.jpg\" alt=\"Locavore\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLocavore\u003c/strong\u003e\u003cbr\u003e\n    Have Duplicants consume 400,000kcal of food without planting any seeds in Planter Boxes, Farm Tiles, or Hydroponic Farms.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/3cf15a2d8ca124a0b95e161863f2f6cc6a498fa6.jpg\" alt=\"Carnivore\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCarnivore\u003c/strong\u003e\u003cbr\u003e\n    Have Duplicants eat 400,000kcal of critter meat before the 100th cycle.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/3925347ea7fdefd2e569c3346c4165913df5fd75.jpg\" alt=\"Some Reservations\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSome Reservations\u003c/strong\u003e\u003cbr\u003e\n    Improve Duplicant Morale by designating 4 areas as Nature Reserves.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/133717411a8e542342a3b4f671a4b032c8051255.jpg\" alt=\"No Place Like Clone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNo Place Like Clone\u003c/strong\u003e\u003cbr\u003e\n    Have at least 20 living Duplicants living in the colony at one time.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/3db83f5cf910513da068dfbcf70af71fc5e909ac.jpg\" alt=\"Turn of the Century\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTurn of the Century\u003c/strong\u003e\u003cbr\u003e\n    Reach cycle 100 with at least one living Duplicant.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/4378f01ad9a725aa0f6e2d26f88ae925f851cc37.jpg\" alt=\"Moovin' On Up\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMoovin' On Up\u003c/strong\u003e\u003cbr\u003e\n    Find and tame a Gassy Moo.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/55e869b3c939f9b8aed7261e5a0f845bc25bbb12.jpg\" alt=\"Not 0K, But Pretty Cool\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNot 0K, But Pretty Cool\u003c/strong\u003e\u003cbr\u003e\n    Reduce the temperature of a building to 6 Kelvin.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/5a8b42488fbc2e21f994ebf13da24a2f5f2e1ce5.jpg\" alt=\"Super Sustainable\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSuper Sustainable\u003c/strong\u003e\u003cbr\u003e\n    Generate 240,000kJ of power without using coal, methane, petrol or wood generators.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/3f549e4037ec2a4b0fb782e2439f5c27936300b2.jpg\" alt=\"Totally Tubular\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTotally Tubular\u003c/strong\u003e\u003cbr\u003e\n    Have Duplicants travel 10,000m by Transit Tube.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/84c9f47625599181a161228d9677c93f8dc6f7f0.jpg\" alt=\"Space Race\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpace Race\u003c/strong\u003e\u003cbr\u003e\n    Launch your first rocket into space.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/8efeb4f3c0c1a49bef4bc6ebef7fdfd1df60ffba.jpg\" alt=\"And Nowhere to Go\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAnd Nowhere to Go\u003c/strong\u003e\u003cbr\u003e\n    Have 8 Duplicants wear non-default clothing simultaneously.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/83f09d284d8fb7a8d77b93df336806d15cdf8440.jpg\" alt=\"Get a Room\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGet a Room\u003c/strong\u003e\u003cbr\u003e\n    Build at least one of each of the following rooms in a single colony: A Nature Reserve, a Hospital, a Recreation Room, a Great Hall, a Bedroom, a Washroom, a Greenhouse and a Stable.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/08c8396437eeec03dbd24393a2d515f750561997.jpg\" alt=\"One Year, to be Exact\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOne Year, to be Exact\u003c/strong\u003e\u003cbr\u003e\n    Reach cycle 365.25 with a single colony.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/a73848c433629297f49153cc110de6b0b421637a.jpg\" alt=\"Slick\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSlick\u003c/strong\u003e\u003cbr\u003e\n    Enter an oil biome for the first time.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/646d70e383557dec188cf081dfd29b957618bf63.jpg\" alt=\"Critter Whisperer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCritter Whisperer\u003c/strong\u003e\u003cbr\u003e\n    Find and tame one of every critter species in the world. Default morphs only.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/881a28845bde3722e82cae899227bb17c97c6709.jpg\" alt=\"Honorary Doctorate\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHonorary Doctorate\u003c/strong\u003e\u003cbr\u003e\n    Unlock every item in the Research Tree.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/23b35278f0bf775bd0bce7158265cba32fb5d145.jpg\" alt=\"Royal Flush\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRoyal Flush\u003c/strong\u003e\u003cbr\u003e\n    Replace all the Outhouses and Wash Basins in your colony with Lavatories and Sinks.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/f940c84fa852f549fae96abfc812cd3b346398fe.jpg\" alt=\"Red Light, Green Light\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRed Light, Green Light\u003c/strong\u003e\u003cbr\u003e\n    Automate a building using sensors or switches from the Automation tab in the Build Menu.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/9f30dae3c8b8bb8973ba465e673d19a263e9d695.jpg\" alt=\"Art Underground\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArt Underground\u003c/strong\u003e\u003cbr\u003e\n    Have a Duplicant with the Masterworks skill paint a Masterpiece quality painting.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/d21e45c802f31168ca406241cb7d85c018cfbc03.jpg\" alt=\"Ghosts of Gravitas\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGhosts of Gravitas\u003c/strong\u003e\u003cbr\u003e\n    Recover a Database entry by inspecting facility ruins.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/0465ace42236d3a77c06559943813d49f0e41b94.jpg\" alt=\"Good Egg\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGood Egg\u003c/strong\u003e\u003cbr\u003e\n    Hatch a new critter morph from an egg.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/4b16126ba35e562daf4456079e1f8224844b01fa.jpg\" alt=\"Tune Up For What?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTune Up For What?\u003c/strong\u003e\u003cbr\u003e\n    Perform 100 Tune Ups on power generators.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/9e85a5e22a942bcdc79b228100be6d11b6e1b5b2.jpg\" alt=\"Pulling Back The Veil\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePulling Back The Veil\u003c/strong\u003e\u003cbr\u003e\n    Reveal 80% of map by exploring outside the starting biome.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/bb752c738cd1131335fae5bdc03e3c09bae44348.jpg\" alt=\"Down the Hatch\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDown the Hatch\u003c/strong\u003e\u003cbr\u003e\n    Produce 10 t of refined metal by ranching Smooth Hatches.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/3323ff81ee2dbea94f1fd3e6c633b1024efbe8c9.jpg\" alt=\"Immovable Object\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eImmovable Object\u003c/strong\u003e\u003cbr\u003e\n    Block a meteor from hitting your base using a Bunker Door.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/55c2864d95081309364997e67de541c6e2b6cacf.jpg\" alt=\"Easy Livin'\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEasy Livin'\u003c/strong\u003e\u003cbr\u003e\n    Have Auto Sweepers complete more deliveries to machines than Duplicants over 5 cycles.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/a336256ad36ac6f95cfdd77de4314a50c47518db.jpg\" alt=\"Job Suitability\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJob Suitability\u003c/strong\u003e\u003cbr\u003e\n    For 10 cycles in a row, have every Duplicant in the colony complete at least one chore while wearing an Exosuit.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/cd8079423c1cf8cbb40e5d65712be0b59d21450d.jpg\" alt=\"First Teleport of Call\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFirst Teleport of Call\u003c/strong\u003e\u003cbr\u003e\n    Teleport a Duplicant and defrost a Friend on another world.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/c869226dc45469ab837ec48925ced09a3ec9c18a.jpg\" alt=\"Soft Launch\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSoft Launch\u003c/strong\u003e\u003cbr\u003e\n    Build a launchpad on a world without a teleporter.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/44ce6195b3389c9cac1c769f5b8d636012392af1.jpg\" alt=\"Cluster Conquest\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCluster Conquest\u003c/strong\u003e\u003cbr\u003e\n    Land dupes or rovers on all worlds in the cluster.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/2c0a4dfccab54f08d58f196b41330a6af60bb616.jpg\" alt=\"GMO A-OK\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGMO A-OK\u003c/strong\u003e\u003cbr\u003e\n    Successfully analyze at least one seed of all mutatable plants.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/ba09f818d9b65c7915204540f3538008179dae74.jpg\" alt=\"Mine the Gap\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMine the Gap\u003c/strong\u003e\u003cbr\u003e\n    Mine 1,000,000kg from space POIs.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/0e8cbbce2829e62e542dcf62c9f86de5990112b2.jpg\" alt=\"Cosmic Archaeology\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCosmic Archaeology\u003c/strong\u003e\u003cbr\u003e\n    Uncover the past to secure your future by fulfilling the requirements of the Exploration Imperative.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/828d3e583ab90fc41740464e525abffd194a6902.jpg\" alt=\"Radical Trip\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRadical Trip\u003c/strong\u003e\u003cbr\u003e\n    Have radbolts travel a cumulative 10 km.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/9f1678bf046776d5426eb00399110a9e8225561c.jpg\" alt=\"Sweeter Than Honey\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSweeter Than Honey\u003c/strong\u003e\u003cbr\u003e\n    Extract Uranium from a Beeta hive without getting stung.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/3fc77371680b4214621ce2039c9db2d5f2c8597f.jpg\" alt=\"Morale High Ground\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMorale High Ground\u003c/strong\u003e\u003cbr\u003e\n    Have all Duplicants in a rocket survive in space for 10 cycles in a row with a morale of 25 or higher.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/23276e65ed6be90128fd8a3b1cda5f5e1c681ec6.jpg\" alt=\"That's Rad!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThat's Rad!\u003c/strong\u003e\u003cbr\u003e\n    Run a Research Reactor at full capacity for 5 cycles.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/410c93261d0b70915f8649409d8b4f2bd7862622.jpg\" alt=\"Full Steam Ahead\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFull Steam Ahead\u003c/strong\u003e\u003cbr\u003e\n    Secure your colony's industrial future by fulfilling the Power Imperative.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/6110b0d7ec421b75f5a3ebac8d6e78e7b313a3f6.jpg\" alt=\"Data Driven\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eData Driven\u003c/strong\u003e\u003cbr\u003e\n    Produce a Data Bank using a Data Miner operating at maximum efficiency.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/5a52251b5f0e47146a9e332e3c7e835c5d31b7ce.jpg\" alt=\"Most Valuable Bionic\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMost Valuable Bionic\u003c/strong\u003e\u003cbr\u003e\n    Install 8 boosters in a single Bionic Duplicant.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/92b98dfd42809288df20b01afcfe00feb6a93ea8.jpg\" alt=\"Blast Line of Defense\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlast Line of Defense\u003c/strong\u003e\u003cbr\u003e\n    Escape extinction by fulfilling the requirements of the Defense Imperative.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/457140/2a6fafc4b795c25b02f27ad99015add13a2f25c7.jpg\" alt=\"The Lab: Life Found A Way\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Lab: Life Found A Way\u003c/strong\u003e\u003cbr\u003e\n    Survive 100 cycles after Demolior collides with your colony.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Oxygen Not Included - 12.0% complete with 6/50 achievements unlocked.",
      "date_published": "2025-06-19T00:00:00Z",
      "date_modified": "2025-06-19T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "oxygen-not-included"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/animal-well/",
      "url": "https://go.waylonwalker.com/steam/animal-well/",
      "title": "ANIMAL WELL",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/813230/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/813230/library_600x900.jpg\" alt=\"ANIMAL WELL box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/813230/header.jpg\u0026#39;\"/ data-glightbox=\"description: ANIMAL WELL box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eANIMAL WELL\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 80.0%\"\u003e\n        80.0%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e16/20 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e26.5h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-06-06\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (16)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/4bbbed9216852d1eb0ff7a9958cda1faff07bd95.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/4bbbed9216852d1eb0ff7a9958cda1faff07bd95.jpg\" alt=\"EXPLORER\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: EXPLORER\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEXPLORER\u003c/strong\u003e\u003cbr/\u003e\n    Find the map\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 11, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/931bc11f79bb2dd4d2031887ca25b83b24e993fd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/931bc11f79bb2dd4d2031887ca25b83b24e993fd.jpg\" alt=\"SECRET EGG\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: SECRET EGG\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSECRET EGG\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 11, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/67666b8dffd5821527b45bbc3700d2a96b228599.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/67666b8dffd5821527b45bbc3700d2a96b228599.jpg\" alt=\"EGG ENJOYER\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: EGG ENJOYER\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEGG ENJOYER\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 16, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/705f4a039a16f1f1fb360afc0bb42112bff665d9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/705f4a039a16f1f1fb360afc0bb42112bff665d9.jpg\" alt=\"EGG HOBBYIST\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: EGG HOBBYIST\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEGG HOBBYIST\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 17, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/6c79fe492b58f6d8fea24c9ec54234e8a4c2fce5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/6c79fe492b58f6d8fea24c9ec54234e8a4c2fce5.jpg\" alt=\"EGG LORD\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: EGG LORD\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEGG LORD\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 25, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/a2ca0d439c080e2fe2c95c1e8c43b2ccd325cb4b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/a2ca0d439c080e2fe2c95c1e8c43b2ccd325cb4b.jpg\" alt=\"SECRET RABBIT\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: SECRET RABBIT\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSECRET RABBIT\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 28, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/77b9c8684d6655207398681c47cbe91a2ace0f10.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/77b9c8684d6655207398681c47cbe91a2ace0f10.jpg\" alt=\"CHAMELEON\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: CHAMELEON\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCHAMELEON\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 22, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/72213dca4480c51f821b5da5e8b0ace552213ba0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/72213dca4480c51f821b5da5e8b0ace552213ba0.jpg\" alt=\"GHOST\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: GHOST\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGHOST\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 01, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/c552dad4473ef810557def44365bfa0d63ac4adc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/c552dad4473ef810557def44365bfa0d63ac4adc.jpg\" alt=\"SEAHORSE\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: SEAHORSE\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSEAHORSE\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 28, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/953f5501f27eb91fdc2caf246a1eebc175afaaea.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/953f5501f27eb91fdc2caf246a1eebc175afaaea.jpg\" alt=\"OSTRICH\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: OSTRICH\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOSTRICH\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 01, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/4031f8ca0e462cf80eead1560d27b1be38c14989.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/4031f8ca0e462cf80eead1560d27b1be38c14989.jpg\" alt=\"CANDLE BRIGHT\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: CANDLE BRIGHT\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCANDLE BRIGHT\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 11, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/b2445d174dbf192475d426ac54400413a72fb25c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/b2445d174dbf192475d426ac54400413a72fb25c.jpg\" alt=\"MANTICORE\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: MANTICORE\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMANTICORE\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 03, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/00a015b4b1b16658f63daf1e08dc68b489e5dc0f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/00a015b4b1b16658f63daf1e08dc68b489e5dc0f.jpg\" alt=\"BACK AND FORTH FOREVER\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: BACK AND FORTH FOREVER\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBACK AND FORTH FOREVER\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 16, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/e9188bf7f7ba2a6595e9c75c49b90e3b97a573a0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/e9188bf7f7ba2a6595e9c75c49b90e3b97a573a0.jpg\" alt=\"BUBBLE ECSTASY\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: BUBBLE ECSTASY\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBUBBLE ECSTASY\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 24, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/6b669c974a60b4554799ee4311d54d269d1e0f17.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/6b669c974a60b4554799ee4311d54d269d1e0f17.jpg\" alt=\"TRAVEL FLUTE\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: TRAVEL FLUTE\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTRAVEL FLUTE\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 25, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/27cb14fe24e211ca7c8b694660a5e4ead36085a6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/27cb14fe24e211ca7c8b694660a5e4ead36085a6.jpg\" alt=\"WALK THE DOG\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: WALK THE DOG\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWALK THE DOG\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 17, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (4)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/50527e78efbb47e043479a9e960eeb2a4d55ba0a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/50527e78efbb47e043479a9e960eeb2a4d55ba0a.jpg\" alt=\"EGG WELL\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: EGG WELL\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEGG WELL\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/50527e78efbb47e043479a9e960eeb2a4d55ba0a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/50527e78efbb47e043479a9e960eeb2a4d55ba0a.jpg\" alt=\"GOOD ENDING\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: GOOD ENDING\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGOOD ENDING\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/50527e78efbb47e043479a9e960eeb2a4d55ba0a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/50527e78efbb47e043479a9e960eeb2a4d55ba0a.jpg\" alt=\"EXIT\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: EXIT\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEXIT\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/50527e78efbb47e043479a9e960eeb2a4d55ba0a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/50527e78efbb47e043479a9e960eeb2a4d55ba0a.jpg\" alt=\"SNEAK\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: SNEAK\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSNEAK\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/813230/library_600x900.jpg\" alt=\"ANIMAL WELL box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/813230/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eANIMAL WELL\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 80.0%\"\u003e\n        80.0%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e16/20 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e26.5h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-06-06\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (16)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/4bbbed9216852d1eb0ff7a9958cda1faff07bd95.jpg\" alt=\"EXPLORER\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEXPLORER\u003c/strong\u003e\u003cbr\u003e\n    Find the map\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 11, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/931bc11f79bb2dd4d2031887ca25b83b24e993fd.jpg\" alt=\"SECRET EGG\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSECRET EGG\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 11, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/67666b8dffd5821527b45bbc3700d2a96b228599.jpg\" alt=\"EGG ENJOYER\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEGG ENJOYER\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 16, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/705f4a039a16f1f1fb360afc0bb42112bff665d9.jpg\" alt=\"EGG HOBBYIST\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEGG HOBBYIST\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 17, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/6c79fe492b58f6d8fea24c9ec54234e8a4c2fce5.jpg\" alt=\"EGG LORD\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEGG LORD\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 25, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/a2ca0d439c080e2fe2c95c1e8c43b2ccd325cb4b.jpg\" alt=\"SECRET RABBIT\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSECRET RABBIT\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 28, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/77b9c8684d6655207398681c47cbe91a2ace0f10.jpg\" alt=\"CHAMELEON\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCHAMELEON\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 22, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/72213dca4480c51f821b5da5e8b0ace552213ba0.jpg\" alt=\"GHOST\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGHOST\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 01, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/c552dad4473ef810557def44365bfa0d63ac4adc.jpg\" alt=\"SEAHORSE\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSEAHORSE\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 28, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/953f5501f27eb91fdc2caf246a1eebc175afaaea.jpg\" alt=\"OSTRICH\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOSTRICH\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 01, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/4031f8ca0e462cf80eead1560d27b1be38c14989.jpg\" alt=\"CANDLE BRIGHT\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCANDLE BRIGHT\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 11, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/b2445d174dbf192475d426ac54400413a72fb25c.jpg\" alt=\"MANTICORE\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMANTICORE\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 03, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/00a015b4b1b16658f63daf1e08dc68b489e5dc0f.jpg\" alt=\"BACK AND FORTH FOREVER\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBACK AND FORTH FOREVER\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 16, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/e9188bf7f7ba2a6595e9c75c49b90e3b97a573a0.jpg\" alt=\"BUBBLE ECSTASY\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBUBBLE ECSTASY\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 24, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/6b669c974a60b4554799ee4311d54d269d1e0f17.jpg\" alt=\"TRAVEL FLUTE\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTRAVEL FLUTE\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 25, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/27cb14fe24e211ca7c8b694660a5e4ead36085a6.jpg\" alt=\"WALK THE DOG\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWALK THE DOG\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 17, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (4)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/50527e78efbb47e043479a9e960eeb2a4d55ba0a.jpg\" alt=\"EGG WELL\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEGG WELL\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/50527e78efbb47e043479a9e960eeb2a4d55ba0a.jpg\" alt=\"GOOD ENDING\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGOOD ENDING\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/50527e78efbb47e043479a9e960eeb2a4d55ba0a.jpg\" alt=\"EXIT\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEXIT\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/813230/50527e78efbb47e043479a9e960eeb2a4d55ba0a.jpg\" alt=\"SNEAK\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSNEAK\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for ANIMAL WELL - 80.0% complete with 16/20 achievements unlocked.",
      "date_published": "2025-06-06T00:00:00Z",
      "date_modified": "2025-06-06T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "animal-well"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/stardew-valley/",
      "url": "https://go.waylonwalker.com/steam/stardew-valley/",
      "title": "Stardew Valley",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/413150/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/413150/library_600x900.jpg\" alt=\"Stardew Valley box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/413150/header.jpg\u0026#39;\"/ data-glightbox=\"description: Stardew Valley box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eStardew Valley\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 26.53%\"\u003e\n        26.53%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e13/49 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e109.1h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-05-04\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (13)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/dac82a85ceb1493bb2155d41890b4a6099f5eaa5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/dac82a85ceb1493bb2155d41890b4a6099f5eaa5.jpg\" alt=\"Greenhorn\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Greenhorn\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGreenhorn\u003c/strong\u003e\u003cbr/\u003e\n    Earn 15,000g\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 27, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/2a5c84271214a05435ea1c7a60bacc1cbbc5fa5a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/2a5c84271214a05435ea1c7a60bacc1cbbc5fa5a.jpg\" alt=\"Cowpoke\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cowpoke\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCowpoke\u003c/strong\u003e\u003cbr/\u003e\n    Earn 50,000g\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 17, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/b81de530e1de874a4add0b690d372df3ffc44ea2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/b81de530e1de874a4add0b690d372df3ffc44ea2.jpg\" alt=\"Homesteader\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Homesteader\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHomesteader\u003c/strong\u003e\u003cbr/\u003e\n    Earn 250,000g\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 09, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/f96dbf78eebf05e027d1ca2fb25296a7db8f2036.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/f96dbf78eebf05e027d1ca2fb25296a7db8f2036.jpg\" alt=\"Millionaire\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Millionaire\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMillionaire\u003c/strong\u003e\u003cbr/\u003e\n    Earn 1,000,000g\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 21, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/67f2c064873468b80c57218f0992c15f7d2fe83e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/67f2c064873468b80c57218f0992c15f7d2fe83e.jpg\" alt=\"Moving Up\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Moving Up\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMoving Up\u003c/strong\u003e\u003cbr/\u003e\n    Upgrade your house.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 10, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/62714a3e361e1def16aac1dcd1e482dcf2fc3ce0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/62714a3e361e1def16aac1dcd1e482dcf2fc3ce0.jpg\" alt=\"Living Large\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Living Large\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLiving Large\u003c/strong\u003e\u003cbr/\u003e\n    Upgrade your house to the maximum size.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 21, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/354c8650487d1359012892dd35ac23c7d83f4266.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/354c8650487d1359012892dd35ac23c7d83f4266.jpg\" alt=\"D.I.Y.\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: D.I.Y.\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eD.I.Y.\u003c/strong\u003e\u003cbr/\u003e\n    Craft 15 different items.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 29, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/b20a49e94c49ef54d009da987d56b0f9b74447ae.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/b20a49e94c49ef54d009da987d56b0f9b74447ae.jpg\" alt=\"Artisan\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Artisan\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArtisan\u003c/strong\u003e\u003cbr/\u003e\n    Craft 30 different items.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 22, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/e3c6269d906e909415d31d5b7962166c0951509d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/e3c6269d906e909415d31d5b7962166c0951509d.jpg\" alt=\"Fisherman\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fisherman\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFisherman\u003c/strong\u003e\u003cbr/\u003e\n    Catch 10 different fish.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 24, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/cdc37596680321cfc1f5aef5f6c02e8384d07d62.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/cdc37596680321cfc1f5aef5f6c02e8384d07d62.jpg\" alt=\"Mother Catch\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mother Catch\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMother Catch\u003c/strong\u003e\u003cbr/\u003e\n    Catch 100 fish.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 04, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/2c8433424f9e87d55b64b1ddbdcef1ea75d36d4c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/2c8433424f9e87d55b64b1ddbdcef1ea75d36d4c.jpg\" alt=\"Treasure Trove\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Treasure Trove\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTreasure Trove\u003c/strong\u003e\u003cbr/\u003e\n    Donate 40 different items to the museum.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 20, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/d013c91bc0788fd047be29bf04447c4ada43b57c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/d013c91bc0788fd047be29bf04447c4ada43b57c.jpg\" alt=\"The Bottom\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Bottom\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Bottom\u003c/strong\u003e\u003cbr/\u003e\n    Reach the lowest level of the mines.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 04, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/1ec2b88c7f5e482edfc962a649360b40c38a4401.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/1ec2b88c7f5e482edfc962a649360b40c38a4401.jpg\" alt=\"Singular Talent\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Singular Talent\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSingular Talent\u003c/strong\u003e\u003cbr/\u003e\n    Reach level 10 in a skill.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 09, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (36)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/ec152654126dba4a9d308c6e6716049af7885d49.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/ec152654126dba4a9d308c6e6716049af7885d49.jpg\" alt=\"Legend\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Legend\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLegend\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/59e0b9052132493c32726fd1ec8c2bb197289080.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/59e0b9052132493c32726fd1ec8c2bb197289080.jpg\" alt=\"A Complete Collection\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Complete Collection\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Complete Collection\u003c/strong\u003e\u003cbr/\u003e\n    Complete the museum collection.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/e6a1ebbf79099f54f0abd7f36f45c639e7a70238.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/e6a1ebbf79099f54f0abd7f36f45c639e7a70238.jpg\" alt=\"A New Friend\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A New Friend\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA New Friend\u003c/strong\u003e\u003cbr/\u003e\n    Reach a 5-heart friend level with someone.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/ecc68d32d9c812da5bc43676d4c3315113682f95.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/ecc68d32d9c812da5bc43676d4c3315113682f95.jpg\" alt=\"Best Friends\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Best Friends\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBest Friends\u003c/strong\u003e\u003cbr/\u003e\n    Reach a 10-heart friend level with someone.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/818e6e4bda95a1882ec7f3f6bb9564f0da375468.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/818e6e4bda95a1882ec7f3f6bb9564f0da375468.jpg\" alt=\"The Beloved Farmer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Beloved Farmer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Beloved Farmer\u003c/strong\u003e\u003cbr/\u003e\n    Reach a 10-heart friend level with 8 people.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/c0e16fe2b61793bfd49d7e2af4b7d1b0593b1b31.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/c0e16fe2b61793bfd49d7e2af4b7d1b0593b1b31.jpg\" alt=\"Cliques\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cliques\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCliques\u003c/strong\u003e\u003cbr/\u003e\n    Reach a 5-heart friend level with 4 people.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/cc4fe12baec1205c2ca85cf72b34c1dae156ac4b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/cc4fe12baec1205c2ca85cf72b34c1dae156ac4b.jpg\" alt=\"Networking\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Networking\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNetworking\u003c/strong\u003e\u003cbr/\u003e\n    Reach a 5-heart friend level with 10 people.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/c7d3735930b02f361f1392fb036bd5bc6c54deca.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/c7d3735930b02f361f1392fb036bd5bc6c54deca.jpg\" alt=\"Popular\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Popular\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePopular\u003c/strong\u003e\u003cbr/\u003e\n    Reach a 5-heart friend level with 20 people.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/056273b88ab3972cd1f1f9e9f4512c70269c955a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/056273b88ab3972cd1f1f9e9f4512c70269c955a.jpg\" alt=\"Cook\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cook\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCook\u003c/strong\u003e\u003cbr/\u003e\n    Cook 10 different recipes.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/beffe8417c2eda8ed5a4cfe64243a00bef082cac.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/beffe8417c2eda8ed5a4cfe64243a00bef082cac.jpg\" alt=\"Sous Chef\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sous Chef\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSous Chef\u003c/strong\u003e\u003cbr/\u003e\n    Cook 25 different recipes.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/fc380e777532344a0d4e2bb50fe96cebf1a7ee2e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/fc380e777532344a0d4e2bb50fe96cebf1a7ee2e.jpg\" alt=\"Gourmet Chef\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Gourmet Chef\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGourmet Chef\u003c/strong\u003e\u003cbr/\u003e\n    Cook every recipe.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/cfc894dec25b40607593ce445d352f2017907343.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/cfc894dec25b40607593ce445d352f2017907343.jpg\" alt=\"Craft Master\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Craft Master\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCraft Master\u003c/strong\u003e\u003cbr/\u003e\n    Craft every item.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/f7dadfcf2c688a119d43243db3e2dfa21dd28b76.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/f7dadfcf2c688a119d43243db3e2dfa21dd28b76.jpg\" alt=\"Ol\u0026#39; Mariner\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ol\u0026#39; Mariner\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOl\u0026#39; Mariner\u003c/strong\u003e\u003cbr/\u003e\n    Catch 24 different fish.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/cb64333b373a2c66f68694ca7ba06681ae484f5d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/cb64333b373a2c66f68694ca7ba06681ae484f5d.jpg\" alt=\"Master Angler\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Master Angler\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaster Angler\u003c/strong\u003e\u003cbr/\u003e\n    Catch every fish.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/22972e08a13cc9b0314b10fd1342dbd8dd35560f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/22972e08a13cc9b0314b10fd1342dbd8dd35560f.jpg\" alt=\"Gofer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Gofer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGofer\u003c/strong\u003e\u003cbr/\u003e\n    Complete 10 \u0026#39;Help Wanted\u0026#39; requests.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/a3e42867d1c81be9401ac76f90f3059934133919.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/a3e42867d1c81be9401ac76f90f3059934133919.jpg\" alt=\"A Big Help\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Big Help\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Big Help\u003c/strong\u003e\u003cbr/\u003e\n    Complete 40 \u0026#39;Help Wanted\u0026#39; requests.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/b651efe332d9deaa81d19473a10770c15d08f1f8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/b651efe332d9deaa81d19473a10770c15d08f1f8.jpg\" alt=\"Polyculture\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Polyculture\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePolyculture\u003c/strong\u003e\u003cbr/\u003e\n    Ship 15 of each crop.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/b56991cd861dca1a1258e95fe2f6d64d09f07406.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/b56991cd861dca1a1258e95fe2f6d64d09f07406.jpg\" alt=\"Monoculture\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Monoculture\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMonoculture\u003c/strong\u003e\u003cbr/\u003e\n    Ship 300 of one crop.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/1c2f8b918a502b6805244a01912aa9915bd733af.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/1c2f8b918a502b6805244a01912aa9915bd733af.jpg\" alt=\"Full Shipment\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Full Shipment\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFull Shipment\u003c/strong\u003e\u003cbr/\u003e\n    Ship every item.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/05ddef7373090942d3c32bf1fb1c5c26a4f5540e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/05ddef7373090942d3c32bf1fb1c5c26a4f5540e.jpg\" alt=\"Prairie King\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Prairie King\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePrairie King\u003c/strong\u003e\u003cbr/\u003e\n    Beat \u0026#39;Journey Of The Prairie King\u0026#39;.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/99762b3e8daf20af33885418de1cc3018a8d604f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/99762b3e8daf20af33885418de1cc3018a8d604f.jpg\" alt=\"Local Legend\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Local Legend\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLocal Legend\u003c/strong\u003e\u003cbr/\u003e\n    Restore the Pelican Town Community Center.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/b41bc0882f0236ecdd87662886e49f9494050b62.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/b41bc0882f0236ecdd87662886e49f9494050b62.jpg\" alt=\"Joja Co. Member Of The Year\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Joja Co. Member Of The Year\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJoja Co. Member Of The Year\u003c/strong\u003e\u003cbr/\u003e\n    Become a Joja Co. member and purchase all the community development perks. \n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/400e0cbddbbeadbe32578b7a0d93dbdfc3680721.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/400e0cbddbbeadbe32578b7a0d93dbdfc3680721.jpg\" alt=\"Mystery Of The Stardrops\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mystery Of The Stardrops\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMystery Of The Stardrops\u003c/strong\u003e\u003cbr/\u003e\n    Find every stardrop.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/c72c048f02e16f5e542a9c29f5ccabfd7f968317.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/c72c048f02e16f5e542a9c29f5ccabfd7f968317.jpg\" alt=\"Fector\u0026#39;s Challenge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fector\u0026#39;s Challenge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFector\u0026#39;s Challenge\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/1328cb6f21ce5cf7169b5f294d28a4a95628b2a9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/1328cb6f21ce5cf7169b5f294d28a4a95628b2a9.jpg\" alt=\"Full House\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Full House\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFull House\u003c/strong\u003e\u003cbr/\u003e\n    Get married and have two kids.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/231ecc847d7f0c44aaeae1b1b61d37eaf828e5b9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/231ecc847d7f0c44aaeae1b1b61d37eaf828e5b9.jpg\" alt=\"Master Of The Five Ways\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Master Of The Five Ways\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaster Of The Five Ways\u003c/strong\u003e\u003cbr/\u003e\n    Reach level 10 in every skill.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/24568c4737293cc9ea78c06676a905d1f81e9f86.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/24568c4737293cc9ea78c06676a905d1f81e9f86.jpg\" alt=\"Protector Of The Valley\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Protector Of The Valley\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eProtector Of The Valley\u003c/strong\u003e\u003cbr/\u003e\n    Complete all of the Adventure Guild Monster Slayer goals.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/8b861985f668dceef4bfb6b1214d14d74cf7b42f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/8b861985f668dceef4bfb6b1214d14d74cf7b42f.jpg\" alt=\"Well-Read\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Well-Read\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWell-Read\u003c/strong\u003e\u003cbr/\u003e\n    Read every book.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/3b9aae19f5db70dfa7cbb62abde536aef99bc292.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/3b9aae19f5db70dfa7cbb62abde536aef99bc292.jpg\" alt=\"Two Thumbs Up\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Two Thumbs Up\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTwo Thumbs Up\u003c/strong\u003e\u003cbr/\u003e\n    See a movie.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/c45129de14398f237e563d5046c6a073b98c6703.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/c45129de14398f237e563d5046c6a073b98c6703.jpg\" alt=\"Blue Ribbon\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Blue Ribbon\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlue Ribbon\u003c/strong\u003e\u003cbr/\u003e\n    Get 1st place in the Stardew Valley Fair competition.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/03b5c5c7b37d4cda4fcb5baf7b00fcab75704981.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/03b5c5c7b37d4cda4fcb5baf7b00fcab75704981.jpg\" alt=\"An Unforgettable Soup\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: An Unforgettable Soup\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAn Unforgettable Soup\u003c/strong\u003e\u003cbr/\u003e\n    Delight the Governor.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/14ec8f609d2bbd9c93270969930e78acb244c0e3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/14ec8f609d2bbd9c93270969930e78acb244c0e3.jpg\" alt=\"Good Neighbors\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Good Neighbors\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGood Neighbors\u003c/strong\u003e\u003cbr/\u003e\n    Help your forest neighbors grow their family.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/ffeb16fcedc14c3f02c2d684a29ddbceda9456dd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/ffeb16fcedc14c3f02c2d684a29ddbceda9456dd.jpg\" alt=\"Danger In The Deep\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Danger In The Deep\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDanger In The Deep\u003c/strong\u003e\u003cbr/\u003e\n    Reach the bottom of the \u0026#39;dangerous\u0026#39; mines.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/922119740c6eea944a13b0ba1a0f07cea866bebf.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/922119740c6eea944a13b0ba1a0f07cea866bebf.jpg\" alt=\"Infinite Power\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Infinite Power\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInfinite Power\u003c/strong\u003e\u003cbr/\u003e\n    Obtain the most powerful weapon.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/304d11535329eed609aa65016db98c4cc0e33873.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/304d11535329eed609aa65016db98c4cc0e33873.jpg\" alt=\"Perfection\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Perfection\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePerfection\u003c/strong\u003e\u003cbr/\u003e\n    Reach the summit.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/000073da0abf4060659523641c1a6422fffec4ab.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/000073da0abf4060659523641c1a6422fffec4ab.jpg\" alt=\"A Distant Shore\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Distant Shore\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Distant Shore\u003c/strong\u003e\u003cbr/\u003e\n    Reach Ginger Island.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/413150/library_600x900.jpg\" alt=\"Stardew Valley box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/413150/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eStardew Valley\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 26.53%\"\u003e\n        26.53%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e13/49 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e109.1h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-05-04\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (13)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/dac82a85ceb1493bb2155d41890b4a6099f5eaa5.jpg\" alt=\"Greenhorn\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGreenhorn\u003c/strong\u003e\u003cbr\u003e\n    Earn 15,000g\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 27, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/2a5c84271214a05435ea1c7a60bacc1cbbc5fa5a.jpg\" alt=\"Cowpoke\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCowpoke\u003c/strong\u003e\u003cbr\u003e\n    Earn 50,000g\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 17, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/b81de530e1de874a4add0b690d372df3ffc44ea2.jpg\" alt=\"Homesteader\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHomesteader\u003c/strong\u003e\u003cbr\u003e\n    Earn 250,000g\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 09, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/f96dbf78eebf05e027d1ca2fb25296a7db8f2036.jpg\" alt=\"Millionaire\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMillionaire\u003c/strong\u003e\u003cbr\u003e\n    Earn 1,000,000g\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 21, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/67f2c064873468b80c57218f0992c15f7d2fe83e.jpg\" alt=\"Moving Up\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMoving Up\u003c/strong\u003e\u003cbr\u003e\n    Upgrade your house.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 10, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/62714a3e361e1def16aac1dcd1e482dcf2fc3ce0.jpg\" alt=\"Living Large\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLiving Large\u003c/strong\u003e\u003cbr\u003e\n    Upgrade your house to the maximum size.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 21, 2025\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/354c8650487d1359012892dd35ac23c7d83f4266.jpg\" alt=\"D.I.Y.\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eD.I.Y.\u003c/strong\u003e\u003cbr\u003e\n    Craft 15 different items.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 29, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/b20a49e94c49ef54d009da987d56b0f9b74447ae.jpg\" alt=\"Artisan\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArtisan\u003c/strong\u003e\u003cbr\u003e\n    Craft 30 different items.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 22, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/e3c6269d906e909415d31d5b7962166c0951509d.jpg\" alt=\"Fisherman\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFisherman\u003c/strong\u003e\u003cbr\u003e\n    Catch 10 different fish.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 24, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/cdc37596680321cfc1f5aef5f6c02e8384d07d62.jpg\" alt=\"Mother Catch\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMother Catch\u003c/strong\u003e\u003cbr\u003e\n    Catch 100 fish.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 04, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/2c8433424f9e87d55b64b1ddbdcef1ea75d36d4c.jpg\" alt=\"Treasure Trove\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTreasure Trove\u003c/strong\u003e\u003cbr\u003e\n    Donate 40 different items to the museum.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 20, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/d013c91bc0788fd047be29bf04447c4ada43b57c.jpg\" alt=\"The Bottom\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Bottom\u003c/strong\u003e\u003cbr\u003e\n    Reach the lowest level of the mines.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 04, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/1ec2b88c7f5e482edfc962a649360b40c38a4401.jpg\" alt=\"Singular Talent\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSingular Talent\u003c/strong\u003e\u003cbr\u003e\n    Reach level 10 in a skill.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 09, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (36)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/ec152654126dba4a9d308c6e6716049af7885d49.jpg\" alt=\"Legend\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLegend\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/59e0b9052132493c32726fd1ec8c2bb197289080.jpg\" alt=\"A Complete Collection\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Complete Collection\u003c/strong\u003e\u003cbr\u003e\n    Complete the museum collection.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/e6a1ebbf79099f54f0abd7f36f45c639e7a70238.jpg\" alt=\"A New Friend\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA New Friend\u003c/strong\u003e\u003cbr\u003e\n    Reach a 5-heart friend level with someone.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/ecc68d32d9c812da5bc43676d4c3315113682f95.jpg\" alt=\"Best Friends\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBest Friends\u003c/strong\u003e\u003cbr\u003e\n    Reach a 10-heart friend level with someone.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/818e6e4bda95a1882ec7f3f6bb9564f0da375468.jpg\" alt=\"The Beloved Farmer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Beloved Farmer\u003c/strong\u003e\u003cbr\u003e\n    Reach a 10-heart friend level with 8 people.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/c0e16fe2b61793bfd49d7e2af4b7d1b0593b1b31.jpg\" alt=\"Cliques\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCliques\u003c/strong\u003e\u003cbr\u003e\n    Reach a 5-heart friend level with 4 people.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/cc4fe12baec1205c2ca85cf72b34c1dae156ac4b.jpg\" alt=\"Networking\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNetworking\u003c/strong\u003e\u003cbr\u003e\n    Reach a 5-heart friend level with 10 people.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/c7d3735930b02f361f1392fb036bd5bc6c54deca.jpg\" alt=\"Popular\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePopular\u003c/strong\u003e\u003cbr\u003e\n    Reach a 5-heart friend level with 20 people.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/056273b88ab3972cd1f1f9e9f4512c70269c955a.jpg\" alt=\"Cook\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCook\u003c/strong\u003e\u003cbr\u003e\n    Cook 10 different recipes.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/beffe8417c2eda8ed5a4cfe64243a00bef082cac.jpg\" alt=\"Sous Chef\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSous Chef\u003c/strong\u003e\u003cbr\u003e\n    Cook 25 different recipes.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/fc380e777532344a0d4e2bb50fe96cebf1a7ee2e.jpg\" alt=\"Gourmet Chef\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGourmet Chef\u003c/strong\u003e\u003cbr\u003e\n    Cook every recipe.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/cfc894dec25b40607593ce445d352f2017907343.jpg\" alt=\"Craft Master\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCraft Master\u003c/strong\u003e\u003cbr\u003e\n    Craft every item.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/f7dadfcf2c688a119d43243db3e2dfa21dd28b76.jpg\" alt=\"Ol' Mariner\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOl' Mariner\u003c/strong\u003e\u003cbr\u003e\n    Catch 24 different fish.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/cb64333b373a2c66f68694ca7ba06681ae484f5d.jpg\" alt=\"Master Angler\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaster Angler\u003c/strong\u003e\u003cbr\u003e\n    Catch every fish.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/22972e08a13cc9b0314b10fd1342dbd8dd35560f.jpg\" alt=\"Gofer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGofer\u003c/strong\u003e\u003cbr\u003e\n    Complete 10 'Help Wanted' requests.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/a3e42867d1c81be9401ac76f90f3059934133919.jpg\" alt=\"A Big Help\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Big Help\u003c/strong\u003e\u003cbr\u003e\n    Complete 40 'Help Wanted' requests.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/b651efe332d9deaa81d19473a10770c15d08f1f8.jpg\" alt=\"Polyculture\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePolyculture\u003c/strong\u003e\u003cbr\u003e\n    Ship 15 of each crop.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/b56991cd861dca1a1258e95fe2f6d64d09f07406.jpg\" alt=\"Monoculture\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMonoculture\u003c/strong\u003e\u003cbr\u003e\n    Ship 300 of one crop.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/1c2f8b918a502b6805244a01912aa9915bd733af.jpg\" alt=\"Full Shipment\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFull Shipment\u003c/strong\u003e\u003cbr\u003e\n    Ship every item.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/05ddef7373090942d3c32bf1fb1c5c26a4f5540e.jpg\" alt=\"Prairie King\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePrairie King\u003c/strong\u003e\u003cbr\u003e\n    Beat 'Journey Of The Prairie King'.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/99762b3e8daf20af33885418de1cc3018a8d604f.jpg\" alt=\"Local Legend\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLocal Legend\u003c/strong\u003e\u003cbr\u003e\n    Restore the Pelican Town Community Center.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/b41bc0882f0236ecdd87662886e49f9494050b62.jpg\" alt=\"Joja Co. Member Of The Year\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJoja Co. Member Of The Year\u003c/strong\u003e\u003cbr\u003e\n    Become a Joja Co. member and purchase all the community development perks. \n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/400e0cbddbbeadbe32578b7a0d93dbdfc3680721.jpg\" alt=\"Mystery Of The Stardrops\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMystery Of The Stardrops\u003c/strong\u003e\u003cbr\u003e\n    Find every stardrop.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/c72c048f02e16f5e542a9c29f5ccabfd7f968317.jpg\" alt=\"Fector's Challenge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFector's Challenge\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/1328cb6f21ce5cf7169b5f294d28a4a95628b2a9.jpg\" alt=\"Full House\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFull House\u003c/strong\u003e\u003cbr\u003e\n    Get married and have two kids.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/231ecc847d7f0c44aaeae1b1b61d37eaf828e5b9.jpg\" alt=\"Master Of The Five Ways\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaster Of The Five Ways\u003c/strong\u003e\u003cbr\u003e\n    Reach level 10 in every skill.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/24568c4737293cc9ea78c06676a905d1f81e9f86.jpg\" alt=\"Protector Of The Valley\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eProtector Of The Valley\u003c/strong\u003e\u003cbr\u003e\n    Complete all of the Adventure Guild Monster Slayer goals.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/8b861985f668dceef4bfb6b1214d14d74cf7b42f.jpg\" alt=\"Well-Read\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWell-Read\u003c/strong\u003e\u003cbr\u003e\n    Read every book.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/3b9aae19f5db70dfa7cbb62abde536aef99bc292.jpg\" alt=\"Two Thumbs Up\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTwo Thumbs Up\u003c/strong\u003e\u003cbr\u003e\n    See a movie.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/c45129de14398f237e563d5046c6a073b98c6703.jpg\" alt=\"Blue Ribbon\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlue Ribbon\u003c/strong\u003e\u003cbr\u003e\n    Get 1st place in the Stardew Valley Fair competition.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/03b5c5c7b37d4cda4fcb5baf7b00fcab75704981.jpg\" alt=\"An Unforgettable Soup\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAn Unforgettable Soup\u003c/strong\u003e\u003cbr\u003e\n    Delight the Governor.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/14ec8f609d2bbd9c93270969930e78acb244c0e3.jpg\" alt=\"Good Neighbors\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGood Neighbors\u003c/strong\u003e\u003cbr\u003e\n    Help your forest neighbors grow their family.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/ffeb16fcedc14c3f02c2d684a29ddbceda9456dd.jpg\" alt=\"Danger In The Deep\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDanger In The Deep\u003c/strong\u003e\u003cbr\u003e\n    Reach the bottom of the 'dangerous' mines.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/922119740c6eea944a13b0ba1a0f07cea866bebf.jpg\" alt=\"Infinite Power\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInfinite Power\u003c/strong\u003e\u003cbr\u003e\n    Obtain the most powerful weapon.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/304d11535329eed609aa65016db98c4cc0e33873.jpg\" alt=\"Perfection\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePerfection\u003c/strong\u003e\u003cbr\u003e\n    Reach the summit.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/413150/000073da0abf4060659523641c1a6422fffec4ab.jpg\" alt=\"A Distant Shore\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Distant Shore\u003c/strong\u003e\u003cbr\u003e\n    Reach Ginger Island.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Stardew Valley - 26.53% complete with 13/49 achievements unlocked.",
      "date_published": "2025-05-04T00:00:00Z",
      "date_modified": "2025-05-04T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "stardew-valley"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/grounded/",
      "url": "https://go.waylonwalker.com/steam/grounded/",
      "title": "Grounded",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/962130/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/962130/library_600x900.jpg\" alt=\"Grounded box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/962130/header.jpg\u0026#39;\"/ data-glightbox=\"description: Grounded box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eGrounded\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 8.89%\"\u003e\n        8.89%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e4/45 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e51.0h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-05-01\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (4)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/1fa3afbe34ec0e70384720611163a3569f51d080.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/1fa3afbe34ec0e70384720611163a3569f51d080.jpg\" alt=\"BURG.L Flipper\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: BURG.L Flipper\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBURG.L Flipper\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 17, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/84a75411b10d6794cbad1bc8799ac0255d4ea033.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/84a75411b10d6794cbad1bc8799ac0255d4ea033.jpg\" alt=\"Science Rules\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Science Rules\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eScience Rules\u003c/strong\u003e\u003cbr/\u003e\n    Purchase your first upgrade from an ASL Station\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 17, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/e3d5faf571690d0ff24b353b32eeb265ab03fcea.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/e3d5faf571690d0ff24b353b32eeb265ab03fcea.jpg\" alt=\"Resourceful\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Resourceful\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eResourceful\u003c/strong\u003e\u003cbr/\u003e\n    Analyze 15 resources\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 17, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/87fe0833c8131c24bc96df55d1a998ac8a2b962f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/87fe0833c8131c24bc96df55d1a998ac8a2b962f.jpg\" alt=\"Fine Dining\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fine Dining\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFine Dining\u003c/strong\u003e\u003cbr/\u003e\n    Cook a bug on the Roasting Spit\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 17, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (41)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/a8e9fbed9cabfd932669f86b788159f53af6b92c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/a8e9fbed9cabfd932669f86b788159f53af6b92c.jpg\" alt=\"Hedge Lab\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hedge Lab\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHedge Lab\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/92883d77e2c6b56339f29a8d68d28679562b8395.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/92883d77e2c6b56339f29a8d68d28679562b8395.jpg\" alt=\"Pond Lab\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Pond Lab\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePond Lab\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/ff143b6ad3b4c3037ec4aa3b648507a68c27dc6d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/ff143b6ad3b4c3037ec4aa3b648507a68c27dc6d.jpg\" alt=\"Growing Pains\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Growing Pains\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGrowing Pains\u003c/strong\u003e\u003cbr/\u003e\n    Obtain your first Mutation\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/87cea4574efb9a8a783ca2e23b2f41a2db83360c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/87cea4574efb9a8a783ca2e23b2f41a2db83360c.jpg\" alt=\"From Downtown\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: From Downtown\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFrom Downtown\u003c/strong\u003e\u003cbr/\u003e\n    Score a basket with the Basketball Hoop from over 40 cm away\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/65d34e9b4d94ead1f0e2dea05632274db8b0f5e4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/65d34e9b4d94ead1f0e2dea05632274db8b0f5e4.jpg\" alt=\"Lounging Around\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Lounging Around\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLounging Around\u003c/strong\u003e\u003cbr/\u003e\n    Lounge in a Chair\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/b36afa648825abfad83c955d186125d3a4a27847.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/b36afa648825abfad83c955d186125d3a4a27847.jpg\" alt=\"Block Buster\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Block Buster\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlock Buster\u003c/strong\u003e\u003cbr/\u003e\n    Perform 10 perfect blocks in a row\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/2ac2b38eb00734432e39d8126aa8ebd215611ed8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/2ac2b38eb00734432e39d8126aa8ebd215611ed8.jpg\" alt=\"Exoskeleton\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Exoskeleton\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExoskeleton\u003c/strong\u003e\u003cbr/\u003e\n    Equip a matching set of Tier 2 armor\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/99b0408eb53fa4f89e019fd415b89299520640ae.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/99b0408eb53fa4f89e019fd415b89299520640ae.jpg\" alt=\"Beefing Up\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Beefing Up\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeefing Up\u003c/strong\u003e\u003cbr/\u003e\n    Craft your first Tier 3 item\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/55536e2db28a94575ad40130084aebafb541cc47.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/55536e2db28a94575ad40130084aebafb541cc47.jpg\" alt=\"Flavorful\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Flavorful\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFlavorful\u003c/strong\u003e\u003cbr/\u003e\n    Obtain 10 new SCA.B color schemes\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/5d7280082de7ea58c82760f6c0431d438441f764.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/5d7280082de7ea58c82760f6c0431d438441f764.jpg\" alt=\"Protein Shake\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Protein Shake\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eProtein Shake\u003c/strong\u003e\u003cbr/\u003e\n    Consume 5 Beefy memorized recipe Smoothies\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/da4424783045ee6468c90b0c163ec06ae8a3c1af.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/da4424783045ee6468c90b0c163ec06ae8a3c1af.jpg\" alt=\"Fortified\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fortified\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFortified\u003c/strong\u003e\u003cbr/\u003e\n    Construct your first Mushroom Brick building\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/285ad14c8baa635dd6a48622c905603866fdbb0f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/285ad14c8baa635dd6a48622c905603866fdbb0f.jpg\" alt=\"Snoopy\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Snoopy\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSnoopy\u003c/strong\u003e\u003cbr/\u003e\n    Discover 20 Sites on the Map\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/b416a638a3a085bf4a0dffae3511f55d59a31ba8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/b416a638a3a085bf4a0dffae3511f55d59a31ba8.jpg\" alt=\"Face Your Fears\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Face Your Fears\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFace Your Fears\u003c/strong\u003e\u003cbr/\u003e\n    Kill your first Wolf Spider\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/fd03c5fbcbc2991b112d697c2017b4bd853aefcc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/fd03c5fbcbc2991b112d697c2017b4bd853aefcc.jpg\" alt=\"Web Master\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Web Master\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWeb Master\u003c/strong\u003e\u003cbr/\u003e\n    Zip across a teen made Zipline longer than 100 cm\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/c714b22380cb8d70d4e376129d4d117573f6a5db.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/c714b22380cb8d70d4e376129d4d117573f6a5db.jpg\" alt=\"Friends in Low Places\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Friends in Low Places\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFriends in Low Places\u003c/strong\u003e\u003cbr/\u003e\n    Tame a bug as a pet\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/db4d6fd0984ea962c7df2c9d55dfbe0519e3ecba.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/db4d6fd0984ea962c7df2c9d55dfbe0519e3ecba.jpg\" alt=\"Mom Genes\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mom Genes\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMom Genes\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/74783816408f3503448a50ad008efbe5be08bc05.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/74783816408f3503448a50ad008efbe5be08bc05.jpg\" alt=\"Sticky Hands\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sticky Hands\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSticky Hands\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/6f2d8c33f7ca7310363571a5c9d8c80e41e7f6b7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/6f2d8c33f7ca7310363571a5c9d8c80e41e7f6b7.jpg\" alt=\"Black Ant Hill Lab\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Black Ant Hill Lab\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlack Ant Hill Lab\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/81f40e9686c5ed00dee0f5baea78e6484512006c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/81f40e9686c5ed00dee0f5baea78e6484512006c.jpg\" alt=\"Get Yoked\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Get Yoked\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGet Yoked\u003c/strong\u003e\u003cbr/\u003e\n    Infuse yourself with 20 regular Milk Molars\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/2350930ec65bace6def48cbd0db2b57cac94ddd9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/2350930ec65bace6def48cbd0db2b57cac94ddd9.jpg\" alt=\"Shrinky and the Brain\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Shrinky and the Brain\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShrinky and the Brain\u003c/strong\u003e\u003cbr/\u003e\n    Achieve level 10 Brainpower\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/91f6aec6b0b542014325b611398ef91dd7f44af8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/91f6aec6b0b542014325b611398ef91dd7f44af8.jpg\" alt=\"Glob Job\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Glob Job\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGlob Job\u003c/strong\u003e\u003cbr/\u003e\n    Upgrade a tier 3 item to the max level at the Smithing Station\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/3671ba3b1849765ca6fdedcb64247bcbe7e3620d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/3671ba3b1849765ca6fdedcb64247bcbe7e3620d.jpg\" alt=\"Aim Small\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Aim Small\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAim Small\u003c/strong\u003e\u003cbr/\u003e\n    Kill a flying bug with an arrow from over 30 cm away\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/22b1e9f0b6d109078f19530cea22083bda5da3a4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/22b1e9f0b6d109078f19530cea22083bda5da3a4.jpg\" alt=\"Underexposed\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Underexposed\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUnderexposed\u003c/strong\u003e\u003cbr/\u003e\n    Snap a picture using Photo Mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/8837b0165c77b5aaede4a66d37f14d9639eb6e4e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/8837b0165c77b5aaede4a66d37f14d9639eb6e4e.jpg\" alt=\"Splinter Master\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Splinter Master\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSplinter Master\u003c/strong\u003e\u003cbr/\u003e\n    Craft tier 3 arrows\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/ad50f6a41d957aa2830d953fdd96655b9e038d49.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/ad50f6a41d957aa2830d953fdd96655b9e038d49.jpg\" alt=\"Raisin Man\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Raisin Man\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRaisin Man\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/73c82ab2e3798f339cb5de4dce0c60c4ac4e8380.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/73c82ab2e3798f339cb5de4dce0c60c4ac4e8380.jpg\" alt=\"Tighty Whities\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tighty Whities\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTighty Whities\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/52b4f8a3c358865968cdca9075f2cbaae51a249a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/52b4f8a3c358865968cdca9075f2cbaae51a249a.jpg\" alt=\"Assassin Assassin\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Assassin Assassin\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAssassin Assassin\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/fbdbbe43d40a1f860d830be0dd768bdd858abe42.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/fbdbbe43d40a1f860d830be0dd768bdd858abe42.jpg\" alt=\"The Best Part of Waking Up\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Best Part of Waking Up\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Best Part of Waking Up\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/f96b520aa3ec160e36a4cd3ede49a3653f983026.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/f96b520aa3ec160e36a4cd3ede49a3653f983026.jpg\" alt=\"Gotta Peep Them All\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Gotta Peep Them All\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGotta Peep Them All\u003c/strong\u003e\u003cbr/\u003e\n    Unlock every Creature Card\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/08cadc409f96c00c44ea46bf2facf5b93cfd6ea4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/08cadc409f96c00c44ea46bf2facf5b93cfd6ea4.jpg\" alt=\"Ominent Schmominent\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ominent Schmominent\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOminent Schmominent\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/3b76dd60e73f92506d27b84cee0095aa18a556dd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/3b76dd60e73f92506d27b84cee0095aa18a556dd.jpg\" alt=\"Mini Mix-a-lot\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mini Mix-a-lot\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMini Mix-a-lot\u003c/strong\u003e\u003cbr/\u003e\n    Defend all of the MIX.Rs and Super MIX.Rs\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/17176736b64628e0683297310cfc0cb076a49207.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/17176736b64628e0683297310cfc0cb076a49207.jpg\" alt=\"Go Big\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Go Big\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGo Big\u003c/strong\u003e\u003cbr/\u003e\n    Grow big again!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/ad3f52d784a4dd6487598e15bf6fc54eaa8c092f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/ad3f52d784a4dd6487598e15bf6fc54eaa8c092f.jpg\" alt=\"Super Win\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Super Win\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSuper Win\u003c/strong\u003e\u003cbr/\u003e\n    Grow big again and score 100% on the end game Report Card\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/804696f1581a65d68fd44fb18a7b85d52eb9ae3e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/804696f1581a65d68fd44fb18a7b85d52eb9ae3e.jpg\" alt=\"A Muse Sting\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Muse Sting\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Muse Sting\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/f6ea27c408ec4c734352f37c49ba1b0b2d945576.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/f6ea27c408ec4c734352f37c49ba1b0b2d945576.jpg\" alt=\"Super Dupe\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Super Dupe\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSuper Dupe\u003c/strong\u003e\u003cbr/\u003e\n    Duplicate an item at the Super Duper\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/681bd5d35251e4824c6a9dce99606bd8798914ee.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/681bd5d35251e4824c6a9dce99606bd8798914ee.jpg\" alt=\"Chillax\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Chillax\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChillax\u003c/strong\u003e\u003cbr/\u003e\n    Unwind at a base while experiencing max coziness\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/2a0f948554ba734ad2a962d79069c7d3a9a490f0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/2a0f948554ba734ad2a962d79069c7d3a9a490f0.jpg\" alt=\"Creepy Crawler\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Creepy Crawler\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCreepy Crawler\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/778d01e7972523892046df109ccaa3645b73ce81.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/778d01e7972523892046df109ccaa3645b73ce81.jpg\" alt=\"No More Homework!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: No More Homework!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNo More Homework!\u003c/strong\u003e\u003cbr/\u003e\n    Complete BURG.L\u0026#39;s list of Quests\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/31ae208c553677d3dffdccd7fe4c086e3de87f94.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/31ae208c553677d3dffdccd7fe4c086e3de87f94.jpg\" alt=\"Royal Arrangements\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Royal Arrangements\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRoyal Arrangements\u003c/strong\u003e\u003cbr/\u003e\n    Deal with all of the Ant Queens\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/02e418a930a3be46553982a506b5ccc1ef1f44b6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/02e418a930a3be46553982a506b5ccc1ef1f44b6.jpg\" alt=\"Did I Do That?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Did I Do That?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDid I Do That?\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/24b20a637bb4b8a5e09404b8c29ee67299ce1dfc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/24b20a637bb4b8a5e09404b8c29ee67299ce1dfc.jpg\" alt=\"Go Big Again\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Go Big Again\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGo Big Again\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/962130/library_600x900.jpg\" alt=\"Grounded box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/962130/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eGrounded\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 8.89%\"\u003e\n        8.89%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e4/45 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e51.0h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-05-01\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (4)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/1fa3afbe34ec0e70384720611163a3569f51d080.jpg\" alt=\"BURG.L Flipper\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBURG.L Flipper\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 17, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/84a75411b10d6794cbad1bc8799ac0255d4ea033.jpg\" alt=\"Science Rules\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eScience Rules\u003c/strong\u003e\u003cbr\u003e\n    Purchase your first upgrade from an ASL Station\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 17, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/e3d5faf571690d0ff24b353b32eeb265ab03fcea.jpg\" alt=\"Resourceful\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eResourceful\u003c/strong\u003e\u003cbr\u003e\n    Analyze 15 resources\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 17, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/87fe0833c8131c24bc96df55d1a998ac8a2b962f.jpg\" alt=\"Fine Dining\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFine Dining\u003c/strong\u003e\u003cbr\u003e\n    Cook a bug on the Roasting Spit\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 17, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (41)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/a8e9fbed9cabfd932669f86b788159f53af6b92c.jpg\" alt=\"Hedge Lab\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHedge Lab\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/92883d77e2c6b56339f29a8d68d28679562b8395.jpg\" alt=\"Pond Lab\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePond Lab\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/ff143b6ad3b4c3037ec4aa3b648507a68c27dc6d.jpg\" alt=\"Growing Pains\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGrowing Pains\u003c/strong\u003e\u003cbr\u003e\n    Obtain your first Mutation\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/87cea4574efb9a8a783ca2e23b2f41a2db83360c.jpg\" alt=\"From Downtown\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFrom Downtown\u003c/strong\u003e\u003cbr\u003e\n    Score a basket with the Basketball Hoop from over 40 cm away\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/65d34e9b4d94ead1f0e2dea05632274db8b0f5e4.jpg\" alt=\"Lounging Around\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLounging Around\u003c/strong\u003e\u003cbr\u003e\n    Lounge in a Chair\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/b36afa648825abfad83c955d186125d3a4a27847.jpg\" alt=\"Block Buster\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlock Buster\u003c/strong\u003e\u003cbr\u003e\n    Perform 10 perfect blocks in a row\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/2ac2b38eb00734432e39d8126aa8ebd215611ed8.jpg\" alt=\"Exoskeleton\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExoskeleton\u003c/strong\u003e\u003cbr\u003e\n    Equip a matching set of Tier 2 armor\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/99b0408eb53fa4f89e019fd415b89299520640ae.jpg\" alt=\"Beefing Up\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeefing Up\u003c/strong\u003e\u003cbr\u003e\n    Craft your first Tier 3 item\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/55536e2db28a94575ad40130084aebafb541cc47.jpg\" alt=\"Flavorful\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFlavorful\u003c/strong\u003e\u003cbr\u003e\n    Obtain 10 new SCA.B color schemes\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/5d7280082de7ea58c82760f6c0431d438441f764.jpg\" alt=\"Protein Shake\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eProtein Shake\u003c/strong\u003e\u003cbr\u003e\n    Consume 5 Beefy memorized recipe Smoothies\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/da4424783045ee6468c90b0c163ec06ae8a3c1af.jpg\" alt=\"Fortified\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFortified\u003c/strong\u003e\u003cbr\u003e\n    Construct your first Mushroom Brick building\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/285ad14c8baa635dd6a48622c905603866fdbb0f.jpg\" alt=\"Snoopy\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSnoopy\u003c/strong\u003e\u003cbr\u003e\n    Discover 20 Sites on the Map\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/b416a638a3a085bf4a0dffae3511f55d59a31ba8.jpg\" alt=\"Face Your Fears\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFace Your Fears\u003c/strong\u003e\u003cbr\u003e\n    Kill your first Wolf Spider\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/fd03c5fbcbc2991b112d697c2017b4bd853aefcc.jpg\" alt=\"Web Master\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWeb Master\u003c/strong\u003e\u003cbr\u003e\n    Zip across a teen made Zipline longer than 100 cm\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/c714b22380cb8d70d4e376129d4d117573f6a5db.jpg\" alt=\"Friends in Low Places\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFriends in Low Places\u003c/strong\u003e\u003cbr\u003e\n    Tame a bug as a pet\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/db4d6fd0984ea962c7df2c9d55dfbe0519e3ecba.jpg\" alt=\"Mom Genes\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMom Genes\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/74783816408f3503448a50ad008efbe5be08bc05.jpg\" alt=\"Sticky Hands\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSticky Hands\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/6f2d8c33f7ca7310363571a5c9d8c80e41e7f6b7.jpg\" alt=\"Black Ant Hill Lab\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlack Ant Hill Lab\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/81f40e9686c5ed00dee0f5baea78e6484512006c.jpg\" alt=\"Get Yoked\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGet Yoked\u003c/strong\u003e\u003cbr\u003e\n    Infuse yourself with 20 regular Milk Molars\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/2350930ec65bace6def48cbd0db2b57cac94ddd9.jpg\" alt=\"Shrinky and the Brain\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShrinky and the Brain\u003c/strong\u003e\u003cbr\u003e\n    Achieve level 10 Brainpower\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/91f6aec6b0b542014325b611398ef91dd7f44af8.jpg\" alt=\"Glob Job\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGlob Job\u003c/strong\u003e\u003cbr\u003e\n    Upgrade a tier 3 item to the max level at the Smithing Station\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/3671ba3b1849765ca6fdedcb64247bcbe7e3620d.jpg\" alt=\"Aim Small\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAim Small\u003c/strong\u003e\u003cbr\u003e\n    Kill a flying bug with an arrow from over 30 cm away\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/22b1e9f0b6d109078f19530cea22083bda5da3a4.jpg\" alt=\"Underexposed\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUnderexposed\u003c/strong\u003e\u003cbr\u003e\n    Snap a picture using Photo Mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/8837b0165c77b5aaede4a66d37f14d9639eb6e4e.jpg\" alt=\"Splinter Master\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSplinter Master\u003c/strong\u003e\u003cbr\u003e\n    Craft tier 3 arrows\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/ad50f6a41d957aa2830d953fdd96655b9e038d49.jpg\" alt=\"Raisin Man\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRaisin Man\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/73c82ab2e3798f339cb5de4dce0c60c4ac4e8380.jpg\" alt=\"Tighty Whities\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTighty Whities\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/52b4f8a3c358865968cdca9075f2cbaae51a249a.jpg\" alt=\"Assassin Assassin\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAssassin Assassin\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/fbdbbe43d40a1f860d830be0dd768bdd858abe42.jpg\" alt=\"The Best Part of Waking Up\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Best Part of Waking Up\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/f96b520aa3ec160e36a4cd3ede49a3653f983026.jpg\" alt=\"Gotta Peep Them All\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGotta Peep Them All\u003c/strong\u003e\u003cbr\u003e\n    Unlock every Creature Card\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/08cadc409f96c00c44ea46bf2facf5b93cfd6ea4.jpg\" alt=\"Ominent Schmominent\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOminent Schmominent\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/3b76dd60e73f92506d27b84cee0095aa18a556dd.jpg\" alt=\"Mini Mix-a-lot\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMini Mix-a-lot\u003c/strong\u003e\u003cbr\u003e\n    Defend all of the MIX.Rs and Super MIX.Rs\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/17176736b64628e0683297310cfc0cb076a49207.jpg\" alt=\"Go Big\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGo Big\u003c/strong\u003e\u003cbr\u003e\n    Grow big again!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/ad3f52d784a4dd6487598e15bf6fc54eaa8c092f.jpg\" alt=\"Super Win\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSuper Win\u003c/strong\u003e\u003cbr\u003e\n    Grow big again and score 100% on the end game Report Card\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/804696f1581a65d68fd44fb18a7b85d52eb9ae3e.jpg\" alt=\"A Muse Sting\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Muse Sting\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/f6ea27c408ec4c734352f37c49ba1b0b2d945576.jpg\" alt=\"Super Dupe\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSuper Dupe\u003c/strong\u003e\u003cbr\u003e\n    Duplicate an item at the Super Duper\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/681bd5d35251e4824c6a9dce99606bd8798914ee.jpg\" alt=\"Chillax\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChillax\u003c/strong\u003e\u003cbr\u003e\n    Unwind at a base while experiencing max coziness\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/2a0f948554ba734ad2a962d79069c7d3a9a490f0.jpg\" alt=\"Creepy Crawler\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCreepy Crawler\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/778d01e7972523892046df109ccaa3645b73ce81.jpg\" alt=\"No More Homework!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNo More Homework!\u003c/strong\u003e\u003cbr\u003e\n    Complete BURG.L's list of Quests\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/31ae208c553677d3dffdccd7fe4c086e3de87f94.jpg\" alt=\"Royal Arrangements\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRoyal Arrangements\u003c/strong\u003e\u003cbr\u003e\n    Deal with all of the Ant Queens\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/02e418a930a3be46553982a506b5ccc1ef1f44b6.jpg\" alt=\"Did I Do That?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDid I Do That?\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/962130/24b20a637bb4b8a5e09404b8c29ee67299ce1dfc.jpg\" alt=\"Go Big Again\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGo Big Again\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Grounded - 8.89% complete with 4/45 achievements unlocked.",
      "date_published": "2025-05-01T00:00:00Z",
      "date_modified": "2025-05-01T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "grounded"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/lovika/",
      "url": "https://go.waylonwalker.com/steam/lovika/",
      "title": "Lovika",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/1672970/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/1672970/library_600x900.jpg\" alt=\"Lovika box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/1672970/header.jpg\u0026#39;\"/ data-glightbox=\"description: Lovika box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eLovika\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 27.88%\"\u003e\n        27.88%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e29/104 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e270.0h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-03-30\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (29)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/1958d20686690299d4b5bf66212b171310822404.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/1958d20686690299d4b5bf66212b171310822404.jpg\" alt=\"Life Of The Party\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Life Of The Party\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLife Of The Party\u003c/strong\u003e\u003cbr/\u003e\n    Revive a downed friend 20 times.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/de4aa9e8cc5f3029301aca4071eafb2ed425c4cb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/de4aa9e8cc5f3029301aca4071eafb2ed425c4cb.jpg\" alt=\"Wooden Sword\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Wooden Sword\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWooden Sword\u003c/strong\u003e\u003cbr/\u003e\n    Defeat 50 mobs.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/31b6d8651d297af5480c2e0742b8e67191e1ec48.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/31b6d8651d297af5480c2e0742b8e67191e1ec48.jpg\" alt=\"Diamond Sword\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Diamond Sword\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDiamond Sword\u003c/strong\u003e\u003cbr/\u003e\n    Defeat 2,500 mobs.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/c33c67de3f0f7f476509e35a2579e038ad479556.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/c33c67de3f0f7f476509e35a2579e038ad479556.jpg\" alt=\"Passive Aggressive\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Passive Aggressive\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePassive Aggressive\u003c/strong\u003e\u003cbr/\u003e\n    Defeat 50 passive mobs.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/b46561157372ce199e7e7ad7fa80303448170805.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/b46561157372ce199e7e7ad7fa80303448170805.jpg\" alt=\"Break the Spell\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Break the Spell\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBreak the Spell\u003c/strong\u003e\u003cbr/\u003e\n    Defeat 50 enchanted mobs.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/477aa231c7ae8174b948c469504910ef14ccc6a8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/477aa231c7ae8174b948c469504910ef14ccc6a8.jpg\" alt=\"Scrappy Scout\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Scrappy Scout\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eScrappy Scout\u003c/strong\u003e\u003cbr/\u003e\n    Reach Level 10.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/1470a54946c4d655d3b6609d54af462f355c4445.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/1470a54946c4d655d3b6609d54af462f355c4445.jpg\" alt=\"Apprentice Adventurer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Apprentice Adventurer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eApprentice Adventurer\u003c/strong\u003e\u003cbr/\u003e\n    Reach Level 25.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/f4450245006cffac9774669d283a31ac01284a9d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/f4450245006cffac9774669d283a31ac01284a9d.jpg\" alt=\"Expert Explorer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Expert Explorer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert Explorer\u003c/strong\u003e\u003cbr/\u003e\n    Reach Level 50.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/d0e2210bea865706075f3489aa4e76e73840fd81.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/d0e2210bea865706075f3489aa4e76e73840fd81.jpg\" alt=\"Fancy That!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fancy That!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFancy That!\u003c/strong\u003e\u003cbr/\u003e\n    Find and open your first \u0026#39;fancy\u0026#39; treasure chest.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/d71fe3ce3e614679c6b3b9fd01545371ce35eefa.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/d71fe3ce3e614679c6b3b9fd01545371ce35eefa.jpg\" alt=\"More For Me\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: More For Me\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMore For Me\u003c/strong\u003e\u003cbr/\u003e\n    Open 100 treasure chests.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/b8a37974e69e24f8c5648b6da9b5800d47aecc8f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/b8a37974e69e24f8c5648b6da9b5800d47aecc8f.jpg\" alt=\"Cha-ching!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cha-ching!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCha-ching!\u003c/strong\u003e\u003cbr/\u003e\n    Collect a total of 1,000 emeralds.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/8d4436e2fea04a1c27a88faedc3f5b64a535a17c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/8d4436e2fea04a1c27a88faedc3f5b64a535a17c.jpg\" alt=\"Oooh! Shiny!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Oooh! Shiny!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOooh! Shiny!\u003c/strong\u003e\u003cbr/\u003e\n    Collect a total of 5,000 emeralds.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/7fdea0e00d0f65ab08d70ee596fae9cf4815c9b3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/7fdea0e00d0f65ab08d70ee596fae9cf4815c9b3.jpg\" alt=\"Om Nom Nom\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Om Nom Nom\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOm Nom Nom\u003c/strong\u003e\u003cbr/\u003e\n    Eat 200 food items.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/b6e5c117c5ed58aec4b85e18dfc52fc2cbb0c0fb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/b6e5c117c5ed58aec4b85e18dfc52fc2cbb0c0fb.jpg\" alt=\"Happy Camper\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Happy Camper\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHappy Camper\u003c/strong\u003e\u003cbr/\u003e\n    Complete Squid Coast and set up camp.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/6e3a0e8ce9bdf86902011d3037618fa8ed77aa30.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/6e3a0e8ce9bdf86902011d3037618fa8ed77aa30.jpg\" alt=\"Out of the Woods\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Out of the Woods\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOut of the Woods\u003c/strong\u003e\u003cbr/\u003e\n    Complete Creeper Woods.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/3befaefb2ebb4d4a6bf2296c2745c2da63fe6292.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/3befaefb2ebb4d4a6bf2296c2745c2da63fe6292.jpg\" alt=\"The Plot Thickens\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Plot Thickens\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Plot Thickens\u003c/strong\u003e\u003cbr/\u003e\n    Complete Pumpkin Pastures and Soggy Swamp.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/16ce50748f2bd2b715a2e0fa6246d9ba579ff969.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/16ce50748f2bd2b715a2e0fa6246d9ba579ff969.jpg\" alt=\"Built On Sand, Set in Stone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Built On Sand, Set in Stone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBuilt On Sand, Set in Stone\u003c/strong\u003e\u003cbr/\u003e\n    Complete Redstone Mines and Cacti Canyon.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/a3162fd11b8dc3abdcb7e42350affb3abbf0c9ee.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/a3162fd11b8dc3abdcb7e42350affb3abbf0c9ee.jpg\" alt=\"High and Dry\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: High and Dry\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHigh and Dry\u003c/strong\u003e\u003cbr/\u003e\n    Complete Desert Temple, Fiery Forge and Highblock Halls.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/cd6d1739f6873eb68d24c6ca87c6f521aceaa9da.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/cd6d1739f6873eb68d24c6ca87c6f521aceaa9da.jpg\" alt=\"Saved The Overworld\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Saved The Overworld\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSaved The Overworld\u003c/strong\u003e\u003cbr/\u003e\n    Defeat the Arch-Illager at the Obsidian Pinnacle.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/c9e0a6dea10d0f2b3790adc7dd0033da34646280.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/c9e0a6dea10d0f2b3790adc7dd0033da34646280.jpg\" alt=\"Blast Radius\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Blast Radius\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlast Radius\u003c/strong\u003e\u003cbr/\u003e\n    Kill any 10 mobs at once with TNT.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/5052eba8e7377553aadd9626f27f3b34a3726d32.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/5052eba8e7377553aadd9626f27f3b34a3726d32.jpg\" alt=\"Worked Like A Charm\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Worked Like A Charm\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWorked Like A Charm\u003c/strong\u003e\u003cbr/\u003e\n    Enchant an item and upgrade the enchantment to Tier 3.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/16b824b59c0598449b57c37a50ee05e5bc73fe48.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/16b824b59c0598449b57c37a50ee05e5bc73fe48.jpg\" alt=\"A Friend in Need\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Friend in Need\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Friend in Need\u003c/strong\u003e\u003cbr/\u003e\n    Use artifacts to summon the Wolf, Llama and Iron Golem allies at least once each.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 28, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/e66e6d9f7d372e57d4630228251b2645a2ea0a8e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/e66e6d9f7d372e57d4630228251b2645a2ea0a8e.jpg\" alt=\"Fashionable Climber\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fashionable Climber\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFashionable Climber\u003c/strong\u003e\u003cbr/\u003e\n    Acquire a melee weapon, ranged weapon, armor, and artifact while climbing the tower.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/ebac1cde6977031256de6324e5d87d3f46e042e3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/ebac1cde6977031256de6324e5d87d3f46e042e3.jpg\" alt=\"Tower Power\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tower Power\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTower Power\u003c/strong\u003e\u003cbr/\u003e\n    Complete a tower run on Adventure difficulty.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 28, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/97f2b34463baafffb2e1d9900d26559e98619904.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/97f2b34463baafffb2e1d9900d26559e98619904.jpg\" alt=\"Well-Seasoned\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Well-Seasoned\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWell-Seasoned\u003c/strong\u003e\u003cbr/\u003e\n    Reach seasonal adventure rank 10.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 23, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/90c8c6f19eeed97feb9435dff53e2b1c686eb873.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/90c8c6f19eeed97feb9435dff53e2b1c686eb873.jpg\" alt=\"So Many Stairs!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: So Many Stairs!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSo Many Stairs!\u003c/strong\u003e\u003cbr/\u003e\n    Clear 100 Tower floors.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/4da3ac6234cb571e354763610857b4a383b995da.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/4da3ac6234cb571e354763610857b4a383b995da.jpg\" alt=\"Pet the Dog\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Pet the Dog\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePet the Dog\u003c/strong\u003e\u003cbr/\u003e\n    \u0026#34;Who\u0026#39;s a good wolf? You are! Yes, you are.\u0026#34;\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/9683b67cb4f559fbd61af8cacaa127d23cad61d9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/9683b67cb4f559fbd61af8cacaa127d23cad61d9.jpg\" alt=\"How Does It All Fit?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: How Does It All Fit?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHow Does It All Fit?\u003c/strong\u003e\u003cbr/\u003e\n    Store 50 items in the Storage Chest.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 05, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/68e93279872e260a57bce820d54b0e018747314f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/68e93279872e260a57bce820d54b0e018747314f.jpg\" alt=\"Customized Customer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Customized Customer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCustomized Customer\u003c/strong\u003e\u003cbr/\u003e\n    Make use of the Enchantsmith\u0026#39;s services 3 times.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 23, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (75)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/1a1c73960368cb2cf511194bf377e211b0292b8d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/1a1c73960368cb2cf511194bf377e211b0292b8d.jpg\" alt=\"High Treason\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: High Treason\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHigh Treason\u003c/strong\u003e\u003cbr/\u003e\n    Defeat the Arch-Illager on Apocalypse difficulty.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/f6782cbe91497124fa5bed348ed29e3040a4b3cb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/f6782cbe91497124fa5bed348ed29e3040a4b3cb.jpg\" alt=\"Maxed Out And Geared Up\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Maxed Out And Geared Up\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaxed Out And Geared Up\u003c/strong\u003e\u003cbr/\u003e\n    Equip a gear set consisting of fully enchanted items (3 enchantment slots upgraded to level 3).\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/184f237a5fcf2902f7e53ee2d5406f918c8d43e3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/184f237a5fcf2902f7e53ee2d5406f918c8d43e3.jpg\" alt=\"Abomination Domination\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Abomination Domination\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAbomination Domination\u003c/strong\u003e\u003cbr/\u003e\n    Complete Overgrown Temple on Adventure or Apocalypse difficulty.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/ef601752f6dff2378f4c8a85d8d080471fdc1d56.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/ef601752f6dff2378f4c8a85d8d080471fdc1d56.jpg\" alt=\"Pandamonium\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Pandamonium\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePandamonium\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Panda Plateau secret mission.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/04c93f610567db3aec92d427727fa2adeadaf2ca.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/04c93f610567db3aec92d427727fa2adeadaf2ca.jpg\" alt=\"Leader of the Pack\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Leader of the Pack\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLeader of the Pack\u003c/strong\u003e\u003cbr/\u003e\n    Wear the Ocelot Armour and complete any mission featuring Ocelots without killing any of them.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/e08c12b3a3e7795935e976c89a35179e313375ec.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/e08c12b3a3e7795935e976c89a35179e313375ec.jpg\" alt=\"Survival Skills\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Survival Skills\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSurvival Skills\u003c/strong\u003e\u003cbr/\u003e\n    Complete Dingy Jungle without using a healing potion or losing a life.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/da31dbebac400ba763a6ef844c6bdd8322425eaa.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/da31dbebac400ba763a6ef844c6bdd8322425eaa.jpg\" alt=\"Jungle Fungus\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Jungle Fungus\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJungle Fungus\u003c/strong\u003e\u003cbr/\u003e\n    Defeat the Mooshroom Monstrosity using only gear unique to the jungle.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/a154707fd586e5efadcbe4ebdf5b5575f202ef97.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/a154707fd586e5efadcbe4ebdf5b5575f202ef97.jpg\" alt=\"Lone Champion\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Lone Champion\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLone Champion\u003c/strong\u003e\u003cbr/\u003e\n    Complete Lone Fortress on Adventure or Apocalypse difficulty.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/56e334989e1a1a9f3c7101cf7b7f94e45010e9ab.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/56e334989e1a1a9f3c7101cf7b7f94e45010e9ab.jpg\" alt=\"Lost In The Snow\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Lost In The Snow\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLost In The Snow\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Lost Settlement secret mission.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/8d306c955949af6daa7d996f1dc410142bc11955.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/8d306c955949af6daa7d996f1dc410142bc11955.jpg\" alt=\"Chill Out\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Chill Out\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChill Out\u003c/strong\u003e\u003cbr/\u003e\n    Defeat 5 mobs with a single Ice Wand attack\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/b7137cdb23c659ae60acad4d59205f868e755349.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/b7137cdb23c659ae60acad4d59205f868e755349.jpg\" alt=\"Smooth Operator\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Smooth Operator\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSmooth Operator\u003c/strong\u003e\u003cbr/\u003e\n    Slide a total distance of 500 blocks on ice.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/9bb5096c519b0531edc3788bec8da5630a0e916c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/9bb5096c519b0531edc3788bec8da5630a0e916c.jpg\" alt=\"Frozen Fists\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Frozen Fists\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFrozen Fists\u003c/strong\u003e\u003cbr/\u003e\n    Complete Frosted Fjord without having a melee or ranged weapon equipped at any time.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/c5dc70b2c9b0a8575c14b8bd4d7a2f3acd1d894d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/c5dc70b2c9b0a8575c14b8bd4d7a2f3acd1d894d.jpg\" alt=\"Taming the Storm\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Taming the Storm\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTaming the Storm\u003c/strong\u003e\u003cbr/\u003e\n    Complete Gale Sanctum on Adventure or Apocalypse difficulty.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/f8798e93c74be3affda3ef085dcf8a76e232631e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/f8798e93c74be3affda3ef085dcf8a76e232631e.jpg\" alt=\"Rampart Rampage\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Rampart Rampage\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRampart Rampage\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Colossal Rampart secret mission.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/a24039b11b9af79ef37c7590fd88b6009f07a7fd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/a24039b11b9af79ef37c7590fd88b6009f07a7fd.jpg\" alt=\"Whirlwind Warrior\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Whirlwind Warrior\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhirlwind Warrior\u003c/strong\u003e\u003cbr/\u003e\n    Using the Tempest Knife, defeat 10 Mountaineer mobs within 10 seconds.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/998d9611342989f1ead07721a4efceb86c0938ef.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/998d9611342989f1ead07721a4efceb86c0938ef.jpg\" alt=\"A Taste Of Their Own Medicine\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Taste Of Their Own Medicine\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Taste Of Their Own Medicine\u003c/strong\u003e\u003cbr/\u003e\n    Using the Updraft Tome, cast Updraft on three Wind Callers at once.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/9e9b3fdf56973bff391018c1e6cb60f77d765601.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/9e9b3fdf56973bff391018c1e6cb60f77d765601.jpg\" alt=\"Wooly Wisdom\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Wooly Wisdom\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWooly Wisdom\u003c/strong\u003e\u003cbr/\u003e\n    Find the chamber dedicated to the humble Llama and make an offering.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/d5cb672a7d7c0cfe2abf4ce1ce0d68c90cc8aa8e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/d5cb672a7d7c0cfe2abf4ce1ce0d68c90cc8aa8e.jpg\" alt=\"Giant Slayer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Giant Slayer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGiant Slayer\u003c/strong\u003e\u003cbr/\u003e\n    Defeat a Ravager and a Squall Golem within 5 seconds of each other.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/0ebd0612f82808138b752af0e2be0037ae22ea0e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/0ebd0612f82808138b752af0e2be0037ae22ea0e.jpg\" alt=\"Herd Mentality\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Herd Mentality\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHerd Mentality\u003c/strong\u003e\u003cbr/\u003e\n    Defeat the Tempest Golem while four pets are active.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/46c706ebba46140bcc779f0b0769864ccac9ed7c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/46c706ebba46140bcc779f0b0769864ccac9ed7c.jpg\" alt=\"Post Post-Apocalypse\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Post Post-Apocalypse\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePost Post-Apocalypse\u003c/strong\u003e\u003cbr/\u003e\n    Complete Obsidian Pinnacle on Apocalypse Plus 5 difficulty.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/c7c38e6d829a63ca1eb9df61f5837d99da9c8dcb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/c7c38e6d829a63ca1eb9df61f5837d99da9c8dcb.jpg\" alt=\"Dress for Success\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Dress for Success\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDress for Success\u003c/strong\u003e\u003cbr/\u003e\n    Complete a Daily Trial with a level III challenge while wearing Emerald Gear.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/ff98e80ababbbb52a8da2a61176e9ceed85cb0a2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/ff98e80ababbbb52a8da2a61176e9ceed85cb0a2.jpg\" alt=\"Repeat Customer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Repeat Customer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRepeat Customer\u003c/strong\u003e\u003cbr/\u003e\n    Save yourself by using the Death Barter enchantment twice in a single mission.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/21823c07206b4586aa46d65434b8a1ead9c7f925.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/21823c07206b4586aa46d65434b8a1ead9c7f925.jpg\" alt=\"Nether Been Better\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Nether Been Better\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNether Been Better\u003c/strong\u003e\u003cbr/\u003e\n    Complete Nether Wastes on Apocalypse difficulty.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/034429c7ed4414047e5438b5f4bb8cea350f14c3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/034429c7ed4414047e5438b5f4bb8cea350f14c3.jpg\" alt=\"Trial by Fire\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Trial by Fire\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTrial by Fire\u003c/strong\u003e\u003cbr/\u003e\n    Complete all secret Nether levels on any Apocalypse Plus difficulty.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/15f9c08f440a4e213b28bbfa05f8ecf61d83f0fd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/15f9c08f440a4e213b28bbfa05f8ecf61d83f0fd.jpg\" alt=\"Ancient Hunter\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ancient Hunter\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAncient Hunter\u003c/strong\u003e\u003cbr/\u003e\n    Defeat 15 different ancient mobs.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/9984fdc425d697da05b58d3380bd06b77431c5bd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/9984fdc425d697da05b58d3380bd06b77431c5bd.jpg\" alt=\"A Piglin\u0026#39;s Best Friend\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Piglin\u0026#39;s Best Friend\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Piglin\u0026#39;s Best Friend\u003c/strong\u003e\u003cbr/\u003e\n    Collect 500 gold over time.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/a470c5ab52ba6fd1f2d55652f974f16a71063f4d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/a470c5ab52ba6fd1f2d55652f974f16a71063f4d.jpg\" alt=\"Locally Sourced\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Locally Sourced\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLocally Sourced\u003c/strong\u003e\u003cbr/\u003e\n    Have 6 merchants in your camp at once.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/4c676b0d1a6692ef46470d62d5975cbdeca74503.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/4c676b0d1a6692ef46470d62d5975cbdeca74503.jpg\" alt=\"Ear Protection Recommended\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ear Protection Recommended\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEar Protection Recommended\u003c/strong\u003e\u003cbr/\u003e\n    Activate the Gong of Weakening 6 times in 5 seconds.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/5907fcb5d881be67dab62fb93e6c31b088f6dbd6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/5907fcb5d881be67dab62fb93e6c31b088f6dbd6.jpg\" alt=\"Acclaimed Acrobat\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Acclaimed Acrobat\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAcclaimed Acrobat\u003c/strong\u003e\u003cbr/\u003e\n    Achieve 70 hits with a single activation of the Spinblade.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/2b82c1d9eb73793ba14d02e674db093de7cbea18.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/2b82c1d9eb73793ba14d02e674db093de7cbea18.jpg\" alt=\"Back to Back\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Back to Back\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBack to Back\u003c/strong\u003e\u003cbr/\u003e\n    Complete two Ancient Hunts and two Daily Trials, in two-player co-op, on the second day of the month\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/3ec8644ebce6aeb924857a465649d984f0006d85.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/3ec8644ebce6aeb924857a465649d984f0006d85.jpg\" alt=\"Homecoming\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Homecoming\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHomecoming\u003c/strong\u003e\u003cbr/\u003e\n    During Ancient Hunts, bring a wolf, a bat, and a soul entity to visit familiar locations.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/6b0982a3de1b4ca40e46ffd03b236287b1bca032.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/6b0982a3de1b4ca40e46ffd03b236287b1bca032.jpg\" alt=\"Seriously Overpowered\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Seriously Overpowered\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSeriously Overpowered\u003c/strong\u003e\u003cbr/\u003e\n    Equip a gilded, unique, fully enchanted weapon.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/b911369129a56547b707553243edee054f9cd478.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/b911369129a56547b707553243edee054f9cd478.jpg\" alt=\"Turn the Tide\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Turn the Tide\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTurn the Tide\u003c/strong\u003e\u003cbr/\u003e\n    Complete Abyssal Monument on Apocalypse difficulty.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/5445cb439994d12a2071747ee16d090252430fb1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/5445cb439994d12a2071747ee16d090252430fb1.jpg\" alt=\"Glow and Behold\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Glow and Behold\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGlow and Behold\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Radiant Ravine secret mission on any Apocalypse Plus difficulty.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/25b9ff9441916764bd0e6ad75e16227cc2dec10c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/25b9ff9441916764bd0e6ad75e16227cc2dec10c.jpg\" alt=\"Iceologer\u0026#39;s Revenge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Iceologer\u0026#39;s Revenge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIceologer\u0026#39;s Revenge\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/15f3e26280a6c40f2f788bc9ba7a31b9c6a5ee6a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/15f3e26280a6c40f2f788bc9ba7a31b9c6a5ee6a.jpg\" alt=\"Gone Fishin\u0026#39;\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Gone Fishin\u0026#39;\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGone Fishin\u0026#39;\u003c/strong\u003e\u003cbr/\u003e\n    Hit each type of underwater mob with the fishing rod.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/143b9d9e8e104389e15c92726c17fd53d19cffb6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/143b9d9e8e104389e15c92726c17fd53d19cffb6.jpg\" alt=\"Lost Power\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Lost Power\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLost Power\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/c2966f79ddadbd509c96f66e26fdb7496caca7ab.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/c2966f79ddadbd509c96f66e26fdb7496caca7ab.jpg\" alt=\"Feeling Bubbly\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Feeling Bubbly\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFeeling Bubbly\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/a732037ed0bba619330dc269a258b58555657d72.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/a732037ed0bba619330dc269a258b58555657d72.jpg\" alt=\"Save Your Breath\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Save Your Breath\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSave Your Breath\u003c/strong\u003e\u003cbr/\u003e\n    Survive without oxygen for 60 seconds.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/05b8e411afc0d97b36b2a117a447cdfcfd6ec00a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/05b8e411afc0d97b36b2a117a447cdfcfd6ec00a.jpg\" alt=\"Seafood Skewer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Seafood Skewer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSeafood Skewer\u003c/strong\u003e\u003cbr/\u003e\n    Defeat 10 mobs with a single Trident explosion.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/60aea4dade170b2d4db6b41286a68199137b069d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/60aea4dade170b2d4db6b41286a68199137b069d.jpg\" alt=\"Bad Omen, Good Loot\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bad Omen, Good Loot\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBad Omen, Good Loot\u003c/strong\u003e\u003cbr/\u003e\n    Complete 10 missions where the difficulty has been modified by a Raid Captain\u0026#39;s Banner.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/73233dc9c6d900c4e826814c2c33f3c42c2bb701.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/73233dc9c6d900c4e826814c2c33f3c42c2bb701.jpg\" alt=\"Bubble Trouble\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bubble Trouble\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBubble Trouble\u003c/strong\u003e\u003cbr/\u003e\n    Using the Bubble Bow, have 10 mobs bubbled at the same time.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/2b51dbf044c0ddae38fbf4c21eedf52bdbd96e99.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/2b51dbf044c0ddae38fbf4c21eedf52bdbd96e99.jpg\" alt=\"To the End!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: To the End!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTo the End!\u003c/strong\u003e\u003cbr/\u003e\n    Travel through the End Portal to the End Wilds.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/331268c439c7087b927bafaf1906b4feede39b0c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/331268c439c7087b927bafaf1906b4feede39b0c.jpg\" alt=\"Treasure Trove\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Treasure Trove\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTreasure Trove\u003c/strong\u003e\u003cbr/\u003e\n    Enter the Stronghold Vault.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/6220b614df050b90bb9cdd2fca8de96ae28da8ad.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/6220b614df050b90bb9cdd2fca8de96ae28da8ad.jpg\" alt=\"Heartbreaker\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Heartbreaker\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHeartbreaker\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/05f57839e1b8d07306a6194934e31a92f9c1af32.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/05f57839e1b8d07306a6194934e31a92f9c1af32.jpg\" alt=\"I Need Them All\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: I Need Them All\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI Need Them All\u003c/strong\u003e\u003cbr/\u003e\n    Unlock all mission item drops in the base game and DLCs.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/ed74bd5351ff3ff9d15aac85ca0286dd54112d3b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/ed74bd5351ff3ff9d15aac85ca0286dd54112d3b.jpg\" alt=\"Take the High Road\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Take the High Road\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTake the High Road\u003c/strong\u003e\u003cbr/\u003e\n    Reach the top of the Broken Citadel without ever getting hit by a Shulker.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/20adbf9817dc7aaa18d6c3b61da061b305569a97.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/20adbf9817dc7aaa18d6c3b61da061b305569a97.jpg\" alt=\"End Run\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: End Run\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEnd Run\u003c/strong\u003e\u003cbr/\u003e\n    Defeat a total of 1000 Enderlings (Watchling, Blastling, Snareling) with an Obsidian Claymore.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/644c17e3a8ff3dd4e950c35e964273b9d31761ba.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/644c17e3a8ff3dd4e950c35e964273b9d31761ba.jpg\" alt=\"Avoidable\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Avoidable\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAvoidable\u003c/strong\u003e\u003cbr/\u003e\n    Survive being afflicted by Voided x999.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/8e52e502d0c4dfd4eb87e55d8cc3f8c0c6da3009.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/8e52e502d0c4dfd4eb87e55d8cc3f8c0c6da3009.jpg\" alt=\"Diver\u0026#39;s Dozen\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Diver\u0026#39;s Dozen\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDiver\u0026#39;s Dozen\u003c/strong\u003e\u003cbr/\u003e\n    Using the Elytra, dive attack 12 enemies at once.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/b89255c7710a95945cc9b7f141840cd2533e5ff0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/b89255c7710a95945cc9b7f141840cd2533e5ff0.jpg\" alt=\"Burning Up\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Burning Up\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBurning Up\u003c/strong\u003e\u003cbr/\u003e\n    After consuming a Burning Brew, defeat a Mob using a weapon with the Fire Aspect enchantment.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/6a58ece71467d94735585ff70782204f28bd55f5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/6a58ece71467d94735585ff70782204f28bd55f5.jpg\" alt=\"The Eponymous Squid\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Eponymous Squid\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Eponymous Squid\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/5cde78ae965607ea02e01459dbd1a1f505120382.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/5cde78ae965607ea02e01459dbd1a1f505120382.jpg\" alt=\"Meet and Greet\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Meet and Greet\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMeet and Greet\u003c/strong\u003e\u003cbr/\u003e\n    Make a purchase from each of the tower\u0026#39;s vendors.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/80ef80a6b51b340317be7023fa38373c321af0a9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/80ef80a6b51b340317be7023fa38373c321af0a9.jpg\" alt=\"Indomitable\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Indomitable\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIndomitable\u003c/strong\u003e\u003cbr/\u003e\n    Complete a tower run on Apocalypse difficulty.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/2cce086d26e9d1108bb0e6f0142b5533addb3c1f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/2cce086d26e9d1108bb0e6f0142b5533addb3c1f.jpg\" alt=\"Staff Only (secret)\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Staff Only (secret)\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStaff Only (secret)\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/d3a7d8761dade81bae4498633cbe0321b18b5b45.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/d3a7d8761dade81bae4498633cbe0321b18b5b45.jpg\" alt=\"Trendsetter\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Trendsetter\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTrendsetter\u003c/strong\u003e\u003cbr/\u003e\n    Reach seasonal adventure rank 25.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/140941368dc2065e99bb4e88887aa41066f3d38a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/140941368dc2065e99bb4e88887aa41066f3d38a.jpg\" alt=\"Golden Gauntlet\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Golden Gauntlet\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGolden Gauntlet\u003c/strong\u003e\u003cbr/\u003e\n    Complete Gauntlet of Gales on Apocalypse difficulty with the golden parrot as your companion\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/567f473b68dc5d451f7dcd4b9bcb4e46c2d0eb2c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/567f473b68dc5d451f7dcd4b9bcb4e46c2d0eb2c.jpg\" alt=\"So Last Season\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: So Last Season\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSo Last Season\u003c/strong\u003e\u003cbr/\u003e\n    Complete a mission with a full set of cosmetics (Cape, Pet, Emote, Flairs) from a previous season.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/8676ccb048bce8c650d9f5403ce6dbdd84c7613a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/8676ccb048bce8c650d9f5403ce6dbdd84c7613a.jpg\" alt=\"Mine Is Cuter Than Yours!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mine Is Cuter Than Yours!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMine Is Cuter Than Yours!\u003c/strong\u003e\u003cbr/\u003e\n    Defeat the Redstone Monstrosity with any Ministrosity Pet equipped.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/9389122f78bed3ad0cb6218b5ebc7513681ce8df.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/9389122f78bed3ad0cb6218b5ebc7513681ce8df.jpg\" alt=\"Same To You, Buddy!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Same To You, Buddy!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSame To You, Buddy!\u003c/strong\u003e\u003cbr/\u003e\n    Use the Abomination Roar emote at the Jungle Abomination.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/1e57b8d211731eb108a49e133abafa78f939c5d2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/1e57b8d211731eb108a49e133abafa78f939c5d2.jpg\" alt=\"Tower Tourist\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tower Tourist\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTower Tourist\u003c/strong\u003e\u003cbr/\u003e\n    Encounter 15 different biomes in your Tower adventures.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/9a1a4b6eff3698859191b4764250695f3cda17d1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/9a1a4b6eff3698859191b4764250695f3cda17d1.jpg\" alt=\"Goal Driven\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Goal Driven\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGoal Driven\u003c/strong\u003e\u003cbr/\u003e\n    Complete 10 Weekly Challenges.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/fb31ca5c82c3d08bb3b62bd7a0770999914682d5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/fb31ca5c82c3d08bb3b62bd7a0770999914682d5.jpg\" alt=\"Daily Destroyer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Daily Destroyer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDaily Destroyer\u003c/strong\u003e\u003cbr/\u003e\n    Complete 3 Daily Trials in 1 day.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/6b7b633353a3e953f62fbca091e38f175f580d20.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/6b7b633353a3e953f62fbca091e38f175f580d20.jpg\" alt=\"Hot-Footed Hero\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hot-Footed Hero\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHot-Footed Hero\u003c/strong\u003e\u003cbr/\u003e\n    Complete Cacti Canyon in under 5 minutes.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/06dca29b750e7e4b4583191d86cde35d86bbe63c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/06dca29b750e7e4b4583191d86cde35d86bbe63c.jpg\" alt=\"Creeper In The Woods\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Creeper In The Woods\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCreeper In The Woods\u003c/strong\u003e\u003cbr/\u003e\n    Complete Creeper Woods on Apocalypse difficulty, without defeating any mobs.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/13de638653201961080355adb74eb8bfd95917fe.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/13de638653201961080355adb74eb8bfd95917fe.jpg\" alt=\"Back From Whence You Came!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Back From Whence You Came!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBack From Whence You Came!\u003c/strong\u003e\u003cbr/\u003e\n    Defeat 10 Wildfires.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/645bc78703528f73acbe8a64cbfc8ac04e0060bb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/645bc78703528f73acbe8a64cbfc8ac04e0060bb.jpg\" alt=\"Desert Dynamo\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Desert Dynamo\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDesert Dynamo\u003c/strong\u003e\u003cbr/\u003e\n    Complete Desert Temple in under 4 minutes.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/1d392d487b8e4d4d17a4139c554295eaa0614727.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/1d392d487b8e4d4d17a4139c554295eaa0614727.jpg\" alt=\"Treetop Trespasser\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Treetop Trespasser\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTreetop Trespasser\u003c/strong\u003e\u003cbr/\u003e\n    Complete Treetop Tangle wearing the Root Rot armor.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/1e87fdf1022f0f2e76fe518aeef4cefbfa75ef49.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/1e87fdf1022f0f2e76fe518aeef4cefbfa75ef49.jpg\" alt=\"Treetop Untangled\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Treetop Untangled\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTreetop Untangled\u003c/strong\u003e\u003cbr/\u003e\n    Complete Treetop Tangle on any Apocalypse Plus difficulty.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/fc7105ab03bcb6397596525c1f5390668518b616.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/fc7105ab03bcb6397596525c1f5390668518b616.jpg\" alt=\"Adorable Explorer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Adorable Explorer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAdorable Explorer\u003c/strong\u003e\u003cbr/\u003e\n    Complete Lower Temple on Apocalypse difficulty with the desert rabbit as your companion.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/b67e127607a42b3d5f962a71ab3f6c38743481e3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/b67e127607a42b3d5f962a71ab3f6c38743481e3.jpg\" alt=\"Same To You, Buddy 2.0\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Same To You, Buddy 2.0\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSame To You, Buddy 2.0\u003c/strong\u003e\u003cbr/\u003e\n    Use the Horse Ride emote at a Skeleton Horseman.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/183484c3b63c8577e1122256274b471f6a73c36b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/183484c3b63c8577e1122256274b471f6a73c36b.jpg\" alt=\"Alpha Centurion\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Alpha Centurion\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAlpha Centurion\u003c/strong\u003e\u003cbr/\u003e\n    Defeat 100 Tower Guards.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/b212352355a040c53eafd9950000f05b52761b87.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/b212352355a040c53eafd9950000f05b52761b87.jpg\" alt=\"Soul Powered\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Soul Powered\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSoul Powered\u003c/strong\u003e\u003cbr/\u003e\n    Use the Soul Totem of Casting 50 times.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/56cc7ced742a1e2b7494683885b45a86c58ed790.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/56cc7ced742a1e2b7494683885b45a86c58ed790.jpg\" alt=\"Thanks But No Thanks!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Thanks But No Thanks!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThanks But No Thanks!\u003c/strong\u003e\u003cbr/\u003e\n    Complete a tower without using the services of the Guildsmith, Enchantsmith and Powersmith.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/933d4db834503512c7468757b2ca8bcb313764c4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/933d4db834503512c7468757b2ca8bcb313764c4.jpg\" alt=\"A, B, Bee, Bee, Bee, Bee, Bee\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A, B, Bee, Bee, Bee, Bee, Bee\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA, B, Bee, Bee, Bee, Bee, Bee\u003c/strong\u003e\u003cbr/\u003e\n    Summon 15 Bees at once.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/1672970/library_600x900.jpg\" alt=\"Lovika box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/1672970/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eLovika\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 27.88%\"\u003e\n        27.88%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e29/104 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e270.0h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-03-30\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (29)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/1958d20686690299d4b5bf66212b171310822404.jpg\" alt=\"Life Of The Party\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLife Of The Party\u003c/strong\u003e\u003cbr\u003e\n    Revive a downed friend 20 times.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/de4aa9e8cc5f3029301aca4071eafb2ed425c4cb.jpg\" alt=\"Wooden Sword\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWooden Sword\u003c/strong\u003e\u003cbr\u003e\n    Defeat 50 mobs.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/31b6d8651d297af5480c2e0742b8e67191e1ec48.jpg\" alt=\"Diamond Sword\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDiamond Sword\u003c/strong\u003e\u003cbr\u003e\n    Defeat 2,500 mobs.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/c33c67de3f0f7f476509e35a2579e038ad479556.jpg\" alt=\"Passive Aggressive\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePassive Aggressive\u003c/strong\u003e\u003cbr\u003e\n    Defeat 50 passive mobs.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/b46561157372ce199e7e7ad7fa80303448170805.jpg\" alt=\"Break the Spell\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBreak the Spell\u003c/strong\u003e\u003cbr\u003e\n    Defeat 50 enchanted mobs.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/477aa231c7ae8174b948c469504910ef14ccc6a8.jpg\" alt=\"Scrappy Scout\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eScrappy Scout\u003c/strong\u003e\u003cbr\u003e\n    Reach Level 10.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/1470a54946c4d655d3b6609d54af462f355c4445.jpg\" alt=\"Apprentice Adventurer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eApprentice Adventurer\u003c/strong\u003e\u003cbr\u003e\n    Reach Level 25.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/f4450245006cffac9774669d283a31ac01284a9d.jpg\" alt=\"Expert Explorer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert Explorer\u003c/strong\u003e\u003cbr\u003e\n    Reach Level 50.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/d0e2210bea865706075f3489aa4e76e73840fd81.jpg\" alt=\"Fancy That!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFancy That!\u003c/strong\u003e\u003cbr\u003e\n    Find and open your first 'fancy' treasure chest.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/d71fe3ce3e614679c6b3b9fd01545371ce35eefa.jpg\" alt=\"More For Me\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMore For Me\u003c/strong\u003e\u003cbr\u003e\n    Open 100 treasure chests.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/b8a37974e69e24f8c5648b6da9b5800d47aecc8f.jpg\" alt=\"Cha-ching!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCha-ching!\u003c/strong\u003e\u003cbr\u003e\n    Collect a total of 1,000 emeralds.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/8d4436e2fea04a1c27a88faedc3f5b64a535a17c.jpg\" alt=\"Oooh! Shiny!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOooh! Shiny!\u003c/strong\u003e\u003cbr\u003e\n    Collect a total of 5,000 emeralds.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/7fdea0e00d0f65ab08d70ee596fae9cf4815c9b3.jpg\" alt=\"Om Nom Nom\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOm Nom Nom\u003c/strong\u003e\u003cbr\u003e\n    Eat 200 food items.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/b6e5c117c5ed58aec4b85e18dfc52fc2cbb0c0fb.jpg\" alt=\"Happy Camper\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHappy Camper\u003c/strong\u003e\u003cbr\u003e\n    Complete Squid Coast and set up camp.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/6e3a0e8ce9bdf86902011d3037618fa8ed77aa30.jpg\" alt=\"Out of the Woods\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOut of the Woods\u003c/strong\u003e\u003cbr\u003e\n    Complete Creeper Woods.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/3befaefb2ebb4d4a6bf2296c2745c2da63fe6292.jpg\" alt=\"The Plot Thickens\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Plot Thickens\u003c/strong\u003e\u003cbr\u003e\n    Complete Pumpkin Pastures and Soggy Swamp.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/16ce50748f2bd2b715a2e0fa6246d9ba579ff969.jpg\" alt=\"Built On Sand, Set in Stone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBuilt On Sand, Set in Stone\u003c/strong\u003e\u003cbr\u003e\n    Complete Redstone Mines and Cacti Canyon.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/a3162fd11b8dc3abdcb7e42350affb3abbf0c9ee.jpg\" alt=\"High and Dry\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHigh and Dry\u003c/strong\u003e\u003cbr\u003e\n    Complete Desert Temple, Fiery Forge and Highblock Halls.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/cd6d1739f6873eb68d24c6ca87c6f521aceaa9da.jpg\" alt=\"Saved The Overworld\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSaved The Overworld\u003c/strong\u003e\u003cbr\u003e\n    Defeat the Arch-Illager at the Obsidian Pinnacle.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/c9e0a6dea10d0f2b3790adc7dd0033da34646280.jpg\" alt=\"Blast Radius\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlast Radius\u003c/strong\u003e\u003cbr\u003e\n    Kill any 10 mobs at once with TNT.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/5052eba8e7377553aadd9626f27f3b34a3726d32.jpg\" alt=\"Worked Like A Charm\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWorked Like A Charm\u003c/strong\u003e\u003cbr\u003e\n    Enchant an item and upgrade the enchantment to Tier 3.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/16b824b59c0598449b57c37a50ee05e5bc73fe48.jpg\" alt=\"A Friend in Need\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Friend in Need\u003c/strong\u003e\u003cbr\u003e\n    Use artifacts to summon the Wolf, Llama and Iron Golem allies at least once each.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 28, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/e66e6d9f7d372e57d4630228251b2645a2ea0a8e.jpg\" alt=\"Fashionable Climber\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFashionable Climber\u003c/strong\u003e\u003cbr\u003e\n    Acquire a melee weapon, ranged weapon, armor, and artifact while climbing the tower.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/ebac1cde6977031256de6324e5d87d3f46e042e3.jpg\" alt=\"Tower Power\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTower Power\u003c/strong\u003e\u003cbr\u003e\n    Complete a tower run on Adventure difficulty.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 28, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/97f2b34463baafffb2e1d9900d26559e98619904.jpg\" alt=\"Well-Seasoned\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWell-Seasoned\u003c/strong\u003e\u003cbr\u003e\n    Reach seasonal adventure rank 10.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 23, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/90c8c6f19eeed97feb9435dff53e2b1c686eb873.jpg\" alt=\"So Many Stairs!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSo Many Stairs!\u003c/strong\u003e\u003cbr\u003e\n    Clear 100 Tower floors.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/4da3ac6234cb571e354763610857b4a383b995da.jpg\" alt=\"Pet the Dog\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePet the Dog\u003c/strong\u003e\u003cbr\u003e\n    \"Who's a good wolf? You are! Yes, you are.\"\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/9683b67cb4f559fbd61af8cacaa127d23cad61d9.jpg\" alt=\"How Does It All Fit?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHow Does It All Fit?\u003c/strong\u003e\u003cbr\u003e\n    Store 50 items in the Storage Chest.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 05, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/68e93279872e260a57bce820d54b0e018747314f.jpg\" alt=\"Customized Customer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCustomized Customer\u003c/strong\u003e\u003cbr\u003e\n    Make use of the Enchantsmith's services 3 times.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 23, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (75)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/1a1c73960368cb2cf511194bf377e211b0292b8d.jpg\" alt=\"High Treason\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHigh Treason\u003c/strong\u003e\u003cbr\u003e\n    Defeat the Arch-Illager on Apocalypse difficulty.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/f6782cbe91497124fa5bed348ed29e3040a4b3cb.jpg\" alt=\"Maxed Out And Geared Up\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaxed Out And Geared Up\u003c/strong\u003e\u003cbr\u003e\n    Equip a gear set consisting of fully enchanted items (3 enchantment slots upgraded to level 3).\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/184f237a5fcf2902f7e53ee2d5406f918c8d43e3.jpg\" alt=\"Abomination Domination\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAbomination Domination\u003c/strong\u003e\u003cbr\u003e\n    Complete Overgrown Temple on Adventure or Apocalypse difficulty.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/ef601752f6dff2378f4c8a85d8d080471fdc1d56.jpg\" alt=\"Pandamonium\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePandamonium\u003c/strong\u003e\u003cbr\u003e\n    Complete the Panda Plateau secret mission.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/04c93f610567db3aec92d427727fa2adeadaf2ca.jpg\" alt=\"Leader of the Pack\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLeader of the Pack\u003c/strong\u003e\u003cbr\u003e\n    Wear the Ocelot Armour and complete any mission featuring Ocelots without killing any of them.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/e08c12b3a3e7795935e976c89a35179e313375ec.jpg\" alt=\"Survival Skills\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSurvival Skills\u003c/strong\u003e\u003cbr\u003e\n    Complete Dingy Jungle without using a healing potion or losing a life.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/da31dbebac400ba763a6ef844c6bdd8322425eaa.jpg\" alt=\"Jungle Fungus\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJungle Fungus\u003c/strong\u003e\u003cbr\u003e\n    Defeat the Mooshroom Monstrosity using only gear unique to the jungle.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/a154707fd586e5efadcbe4ebdf5b5575f202ef97.jpg\" alt=\"Lone Champion\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLone Champion\u003c/strong\u003e\u003cbr\u003e\n    Complete Lone Fortress on Adventure or Apocalypse difficulty.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/56e334989e1a1a9f3c7101cf7b7f94e45010e9ab.jpg\" alt=\"Lost In The Snow\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLost In The Snow\u003c/strong\u003e\u003cbr\u003e\n    Complete the Lost Settlement secret mission.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/8d306c955949af6daa7d996f1dc410142bc11955.jpg\" alt=\"Chill Out\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChill Out\u003c/strong\u003e\u003cbr\u003e\n    Defeat 5 mobs with a single Ice Wand attack\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/b7137cdb23c659ae60acad4d59205f868e755349.jpg\" alt=\"Smooth Operator\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSmooth Operator\u003c/strong\u003e\u003cbr\u003e\n    Slide a total distance of 500 blocks on ice.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/9bb5096c519b0531edc3788bec8da5630a0e916c.jpg\" alt=\"Frozen Fists\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFrozen Fists\u003c/strong\u003e\u003cbr\u003e\n    Complete Frosted Fjord without having a melee or ranged weapon equipped at any time.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/c5dc70b2c9b0a8575c14b8bd4d7a2f3acd1d894d.jpg\" alt=\"Taming the Storm\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTaming the Storm\u003c/strong\u003e\u003cbr\u003e\n    Complete Gale Sanctum on Adventure or Apocalypse difficulty.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/f8798e93c74be3affda3ef085dcf8a76e232631e.jpg\" alt=\"Rampart Rampage\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRampart Rampage\u003c/strong\u003e\u003cbr\u003e\n    Complete the Colossal Rampart secret mission.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/a24039b11b9af79ef37c7590fd88b6009f07a7fd.jpg\" alt=\"Whirlwind Warrior\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhirlwind Warrior\u003c/strong\u003e\u003cbr\u003e\n    Using the Tempest Knife, defeat 10 Mountaineer mobs within 10 seconds.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/998d9611342989f1ead07721a4efceb86c0938ef.jpg\" alt=\"A Taste Of Their Own Medicine\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Taste Of Their Own Medicine\u003c/strong\u003e\u003cbr\u003e\n    Using the Updraft Tome, cast Updraft on three Wind Callers at once.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/9e9b3fdf56973bff391018c1e6cb60f77d765601.jpg\" alt=\"Wooly Wisdom\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWooly Wisdom\u003c/strong\u003e\u003cbr\u003e\n    Find the chamber dedicated to the humble Llama and make an offering.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/d5cb672a7d7c0cfe2abf4ce1ce0d68c90cc8aa8e.jpg\" alt=\"Giant Slayer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGiant Slayer\u003c/strong\u003e\u003cbr\u003e\n    Defeat a Ravager and a Squall Golem within 5 seconds of each other.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/0ebd0612f82808138b752af0e2be0037ae22ea0e.jpg\" alt=\"Herd Mentality\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHerd Mentality\u003c/strong\u003e\u003cbr\u003e\n    Defeat the Tempest Golem while four pets are active.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/46c706ebba46140bcc779f0b0769864ccac9ed7c.jpg\" alt=\"Post Post-Apocalypse\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePost Post-Apocalypse\u003c/strong\u003e\u003cbr\u003e\n    Complete Obsidian Pinnacle on Apocalypse Plus 5 difficulty.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/c7c38e6d829a63ca1eb9df61f5837d99da9c8dcb.jpg\" alt=\"Dress for Success\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDress for Success\u003c/strong\u003e\u003cbr\u003e\n    Complete a Daily Trial with a level III challenge while wearing Emerald Gear.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/ff98e80ababbbb52a8da2a61176e9ceed85cb0a2.jpg\" alt=\"Repeat Customer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRepeat Customer\u003c/strong\u003e\u003cbr\u003e\n    Save yourself by using the Death Barter enchantment twice in a single mission.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/21823c07206b4586aa46d65434b8a1ead9c7f925.jpg\" alt=\"Nether Been Better\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNether Been Better\u003c/strong\u003e\u003cbr\u003e\n    Complete Nether Wastes on Apocalypse difficulty.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/034429c7ed4414047e5438b5f4bb8cea350f14c3.jpg\" alt=\"Trial by Fire\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTrial by Fire\u003c/strong\u003e\u003cbr\u003e\n    Complete all secret Nether levels on any Apocalypse Plus difficulty.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/15f9c08f440a4e213b28bbfa05f8ecf61d83f0fd.jpg\" alt=\"Ancient Hunter\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAncient Hunter\u003c/strong\u003e\u003cbr\u003e\n    Defeat 15 different ancient mobs.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/9984fdc425d697da05b58d3380bd06b77431c5bd.jpg\" alt=\"A Piglin's Best Friend\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Piglin's Best Friend\u003c/strong\u003e\u003cbr\u003e\n    Collect 500 gold over time.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/a470c5ab52ba6fd1f2d55652f974f16a71063f4d.jpg\" alt=\"Locally Sourced\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLocally Sourced\u003c/strong\u003e\u003cbr\u003e\n    Have 6 merchants in your camp at once.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/4c676b0d1a6692ef46470d62d5975cbdeca74503.jpg\" alt=\"Ear Protection Recommended\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEar Protection Recommended\u003c/strong\u003e\u003cbr\u003e\n    Activate the Gong of Weakening 6 times in 5 seconds.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/5907fcb5d881be67dab62fb93e6c31b088f6dbd6.jpg\" alt=\"Acclaimed Acrobat\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAcclaimed Acrobat\u003c/strong\u003e\u003cbr\u003e\n    Achieve 70 hits with a single activation of the Spinblade.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/2b82c1d9eb73793ba14d02e674db093de7cbea18.jpg\" alt=\"Back to Back\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBack to Back\u003c/strong\u003e\u003cbr\u003e\n    Complete two Ancient Hunts and two Daily Trials, in two-player co-op, on the second day of the month\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/3ec8644ebce6aeb924857a465649d984f0006d85.jpg\" alt=\"Homecoming\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHomecoming\u003c/strong\u003e\u003cbr\u003e\n    During Ancient Hunts, bring a wolf, a bat, and a soul entity to visit familiar locations.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/6b0982a3de1b4ca40e46ffd03b236287b1bca032.jpg\" alt=\"Seriously Overpowered\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSeriously Overpowered\u003c/strong\u003e\u003cbr\u003e\n    Equip a gilded, unique, fully enchanted weapon.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/b911369129a56547b707553243edee054f9cd478.jpg\" alt=\"Turn the Tide\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTurn the Tide\u003c/strong\u003e\u003cbr\u003e\n    Complete Abyssal Monument on Apocalypse difficulty.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/5445cb439994d12a2071747ee16d090252430fb1.jpg\" alt=\"Glow and Behold\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGlow and Behold\u003c/strong\u003e\u003cbr\u003e\n    Complete the Radiant Ravine secret mission on any Apocalypse Plus difficulty.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/25b9ff9441916764bd0e6ad75e16227cc2dec10c.jpg\" alt=\"Iceologer's Revenge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIceologer's Revenge\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/15f3e26280a6c40f2f788bc9ba7a31b9c6a5ee6a.jpg\" alt=\"Gone Fishin'\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGone Fishin'\u003c/strong\u003e\u003cbr\u003e\n    Hit each type of underwater mob with the fishing rod.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/143b9d9e8e104389e15c92726c17fd53d19cffb6.jpg\" alt=\"Lost Power\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLost Power\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/c2966f79ddadbd509c96f66e26fdb7496caca7ab.jpg\" alt=\"Feeling Bubbly\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFeeling Bubbly\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/a732037ed0bba619330dc269a258b58555657d72.jpg\" alt=\"Save Your Breath\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSave Your Breath\u003c/strong\u003e\u003cbr\u003e\n    Survive without oxygen for 60 seconds.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/05b8e411afc0d97b36b2a117a447cdfcfd6ec00a.jpg\" alt=\"Seafood Skewer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSeafood Skewer\u003c/strong\u003e\u003cbr\u003e\n    Defeat 10 mobs with a single Trident explosion.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/60aea4dade170b2d4db6b41286a68199137b069d.jpg\" alt=\"Bad Omen, Good Loot\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBad Omen, Good Loot\u003c/strong\u003e\u003cbr\u003e\n    Complete 10 missions where the difficulty has been modified by a Raid Captain's Banner.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/73233dc9c6d900c4e826814c2c33f3c42c2bb701.jpg\" alt=\"Bubble Trouble\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBubble Trouble\u003c/strong\u003e\u003cbr\u003e\n    Using the Bubble Bow, have 10 mobs bubbled at the same time.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/2b51dbf044c0ddae38fbf4c21eedf52bdbd96e99.jpg\" alt=\"To the End!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTo the End!\u003c/strong\u003e\u003cbr\u003e\n    Travel through the End Portal to the End Wilds.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/331268c439c7087b927bafaf1906b4feede39b0c.jpg\" alt=\"Treasure Trove\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTreasure Trove\u003c/strong\u003e\u003cbr\u003e\n    Enter the Stronghold Vault.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/6220b614df050b90bb9cdd2fca8de96ae28da8ad.jpg\" alt=\"Heartbreaker\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHeartbreaker\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/05f57839e1b8d07306a6194934e31a92f9c1af32.jpg\" alt=\"I Need Them All\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI Need Them All\u003c/strong\u003e\u003cbr\u003e\n    Unlock all mission item drops in the base game and DLCs.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/ed74bd5351ff3ff9d15aac85ca0286dd54112d3b.jpg\" alt=\"Take the High Road\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTake the High Road\u003c/strong\u003e\u003cbr\u003e\n    Reach the top of the Broken Citadel without ever getting hit by a Shulker.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/20adbf9817dc7aaa18d6c3b61da061b305569a97.jpg\" alt=\"End Run\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEnd Run\u003c/strong\u003e\u003cbr\u003e\n    Defeat a total of 1000 Enderlings (Watchling, Blastling, Snareling) with an Obsidian Claymore.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/644c17e3a8ff3dd4e950c35e964273b9d31761ba.jpg\" alt=\"Avoidable\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAvoidable\u003c/strong\u003e\u003cbr\u003e\n    Survive being afflicted by Voided x999.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/8e52e502d0c4dfd4eb87e55d8cc3f8c0c6da3009.jpg\" alt=\"Diver's Dozen\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDiver's Dozen\u003c/strong\u003e\u003cbr\u003e\n    Using the Elytra, dive attack 12 enemies at once.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/b89255c7710a95945cc9b7f141840cd2533e5ff0.jpg\" alt=\"Burning Up\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBurning Up\u003c/strong\u003e\u003cbr\u003e\n    After consuming a Burning Brew, defeat a Mob using a weapon with the Fire Aspect enchantment.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/6a58ece71467d94735585ff70782204f28bd55f5.jpg\" alt=\"The Eponymous Squid\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Eponymous Squid\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/5cde78ae965607ea02e01459dbd1a1f505120382.jpg\" alt=\"Meet and Greet\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMeet and Greet\u003c/strong\u003e\u003cbr\u003e\n    Make a purchase from each of the tower's vendors.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/80ef80a6b51b340317be7023fa38373c321af0a9.jpg\" alt=\"Indomitable\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIndomitable\u003c/strong\u003e\u003cbr\u003e\n    Complete a tower run on Apocalypse difficulty.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/2cce086d26e9d1108bb0e6f0142b5533addb3c1f.jpg\" alt=\"Staff Only (secret)\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStaff Only (secret)\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/d3a7d8761dade81bae4498633cbe0321b18b5b45.jpg\" alt=\"Trendsetter\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTrendsetter\u003c/strong\u003e\u003cbr\u003e\n    Reach seasonal adventure rank 25.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/140941368dc2065e99bb4e88887aa41066f3d38a.jpg\" alt=\"Golden Gauntlet\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGolden Gauntlet\u003c/strong\u003e\u003cbr\u003e\n    Complete Gauntlet of Gales on Apocalypse difficulty with the golden parrot as your companion\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/567f473b68dc5d451f7dcd4b9bcb4e46c2d0eb2c.jpg\" alt=\"So Last Season\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSo Last Season\u003c/strong\u003e\u003cbr\u003e\n    Complete a mission with a full set of cosmetics (Cape, Pet, Emote, Flairs) from a previous season.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/8676ccb048bce8c650d9f5403ce6dbdd84c7613a.jpg\" alt=\"Mine Is Cuter Than Yours!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMine Is Cuter Than Yours!\u003c/strong\u003e\u003cbr\u003e\n    Defeat the Redstone Monstrosity with any Ministrosity Pet equipped.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/9389122f78bed3ad0cb6218b5ebc7513681ce8df.jpg\" alt=\"Same To You, Buddy!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSame To You, Buddy!\u003c/strong\u003e\u003cbr\u003e\n    Use the Abomination Roar emote at the Jungle Abomination.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/1e57b8d211731eb108a49e133abafa78f939c5d2.jpg\" alt=\"Tower Tourist\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTower Tourist\u003c/strong\u003e\u003cbr\u003e\n    Encounter 15 different biomes in your Tower adventures.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/9a1a4b6eff3698859191b4764250695f3cda17d1.jpg\" alt=\"Goal Driven\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGoal Driven\u003c/strong\u003e\u003cbr\u003e\n    Complete 10 Weekly Challenges.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/fb31ca5c82c3d08bb3b62bd7a0770999914682d5.jpg\" alt=\"Daily Destroyer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDaily Destroyer\u003c/strong\u003e\u003cbr\u003e\n    Complete 3 Daily Trials in 1 day.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/6b7b633353a3e953f62fbca091e38f175f580d20.jpg\" alt=\"Hot-Footed Hero\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHot-Footed Hero\u003c/strong\u003e\u003cbr\u003e\n    Complete Cacti Canyon in under 5 minutes.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/06dca29b750e7e4b4583191d86cde35d86bbe63c.jpg\" alt=\"Creeper In The Woods\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCreeper In The Woods\u003c/strong\u003e\u003cbr\u003e\n    Complete Creeper Woods on Apocalypse difficulty, without defeating any mobs.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/13de638653201961080355adb74eb8bfd95917fe.jpg\" alt=\"Back From Whence You Came!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBack From Whence You Came!\u003c/strong\u003e\u003cbr\u003e\n    Defeat 10 Wildfires.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/645bc78703528f73acbe8a64cbfc8ac04e0060bb.jpg\" alt=\"Desert Dynamo\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDesert Dynamo\u003c/strong\u003e\u003cbr\u003e\n    Complete Desert Temple in under 4 minutes.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/1d392d487b8e4d4d17a4139c554295eaa0614727.jpg\" alt=\"Treetop Trespasser\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTreetop Trespasser\u003c/strong\u003e\u003cbr\u003e\n    Complete Treetop Tangle wearing the Root Rot armor.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/1e87fdf1022f0f2e76fe518aeef4cefbfa75ef49.jpg\" alt=\"Treetop Untangled\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTreetop Untangled\u003c/strong\u003e\u003cbr\u003e\n    Complete Treetop Tangle on any Apocalypse Plus difficulty.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/fc7105ab03bcb6397596525c1f5390668518b616.jpg\" alt=\"Adorable Explorer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAdorable Explorer\u003c/strong\u003e\u003cbr\u003e\n    Complete Lower Temple on Apocalypse difficulty with the desert rabbit as your companion.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/b67e127607a42b3d5f962a71ab3f6c38743481e3.jpg\" alt=\"Same To You, Buddy 2.0\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSame To You, Buddy 2.0\u003c/strong\u003e\u003cbr\u003e\n    Use the Horse Ride emote at a Skeleton Horseman.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/183484c3b63c8577e1122256274b471f6a73c36b.jpg\" alt=\"Alpha Centurion\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAlpha Centurion\u003c/strong\u003e\u003cbr\u003e\n    Defeat 100 Tower Guards.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/b212352355a040c53eafd9950000f05b52761b87.jpg\" alt=\"Soul Powered\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSoul Powered\u003c/strong\u003e\u003cbr\u003e\n    Use the Soul Totem of Casting 50 times.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/56cc7ced742a1e2b7494683885b45a86c58ed790.jpg\" alt=\"Thanks But No Thanks!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThanks But No Thanks!\u003c/strong\u003e\u003cbr\u003e\n    Complete a tower without using the services of the Guildsmith, Enchantsmith and Powersmith.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1672970/933d4db834503512c7468757b2ca8bcb313764c4.jpg\" alt=\"A, B, Bee, Bee, Bee, Bee, Bee\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA, B, Bee, Bee, Bee, Bee, Bee\u003c/strong\u003e\u003cbr\u003e\n    Summon 15 Bees at once.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Lovika - 27.88% complete with 29/104 achievements unlocked.",
      "date_published": "2025-03-30T00:00:00Z",
      "date_modified": "2025-03-30T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "lovika"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/brotato/",
      "url": "https://go.waylonwalker.com/steam/brotato/",
      "title": "Brotato",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/1942280/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/1942280/library_600x900.jpg\" alt=\"Brotato box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/1942280/header.jpg\u0026#39;\"/ data-glightbox=\"description: Brotato box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eBrotato\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 11.36%\"\u003e\n        11.36%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e20/176 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e16.8h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-03-30\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (20)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/27a9be454703c52dc7a98bddc7d8c4a49e643340.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/27a9be454703c52dc7a98bddc7d8c4a49e643340.jpg\" alt=\"Survivor 1\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Survivor 1\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSurvivor 1\u003c/strong\u003e\u003cbr/\u003e\n    Kill 300 enemies\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 16, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/27a9be454703c52dc7a98bddc7d8c4a49e643340.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/27a9be454703c52dc7a98bddc7d8c4a49e643340.jpg\" alt=\"Survivor 2\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Survivor 2\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSurvivor 2\u003c/strong\u003e\u003cbr/\u003e\n    Kill 2000 enemies\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 16, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/27a9be454703c52dc7a98bddc7d8c4a49e643340.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/27a9be454703c52dc7a98bddc7d8c4a49e643340.jpg\" alt=\"Survivor 3\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Survivor 3\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSurvivor 3\u003c/strong\u003e\u003cbr/\u003e\n    Kill 5000 enemies\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 16, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/27a9be454703c52dc7a98bddc7d8c4a49e643340.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/27a9be454703c52dc7a98bddc7d8c4a49e643340.jpg\" alt=\"Survivor 4\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Survivor 4\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSurvivor 4\u003c/strong\u003e\u003cbr/\u003e\n    Kill 10000 enemies\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 16, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/27a9be454703c52dc7a98bddc7d8c4a49e643340.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/27a9be454703c52dc7a98bddc7d8c4a49e643340.jpg\" alt=\"Survivor 5\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Survivor 5\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSurvivor 5\u003c/strong\u003e\u003cbr/\u003e\n    Kill 20000 enemies\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 17, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/5a6009548d75340b0276b75a2c4faf76d757a58b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/5a6009548d75340b0276b75a2c4faf76d757a58b.jpg\" alt=\"Gatherer 1\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Gatherer 1\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGatherer 1\u003c/strong\u003e\u003cbr/\u003e\n    Collect 300 materials\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 16, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/5a6009548d75340b0276b75a2c4faf76d757a58b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/5a6009548d75340b0276b75a2c4faf76d757a58b.jpg\" alt=\"Gatherer 2\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Gatherer 2\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGatherer 2\u003c/strong\u003e\u003cbr/\u003e\n    Collect 2000 materials\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 16, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/5a6009548d75340b0276b75a2c4faf76d757a58b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/5a6009548d75340b0276b75a2c4faf76d757a58b.jpg\" alt=\"Gatherer 3\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Gatherer 3\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGatherer 3\u003c/strong\u003e\u003cbr/\u003e\n    Collect 5000 materials\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 16, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/5a6009548d75340b0276b75a2c4faf76d757a58b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/5a6009548d75340b0276b75a2c4faf76d757a58b.jpg\" alt=\"Gatherer 4\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Gatherer 4\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGatherer 4\u003c/strong\u003e\u003cbr/\u003e\n    Collect 10000 materials\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 16, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/5a6009548d75340b0276b75a2c4faf76d757a58b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/5a6009548d75340b0276b75a2c4faf76d757a58b.jpg\" alt=\"Gatherer 5\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Gatherer 5\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGatherer 5\u003c/strong\u003e\u003cbr/\u003e\n    Collect 20000 materials\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 18, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/8b4ee07972f4c5c550efde55536dd2c489ec533b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/8b4ee07972f4c5c550efde55536dd2c489ec533b.jpg\" alt=\"Lumberjack\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Lumberjack\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLumberjack\u003c/strong\u003e\u003cbr/\u003e\n    Kill 50 trees\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 16, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/d224fd35c23e67b99eb92e3448bfa7671b568869.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/d224fd35c23e67b99eb92e3448bfa7671b568869.jpg\" alt=\"Medicine\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Medicine\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMedicine\u003c/strong\u003e\u003cbr/\u003e\n    Heal 200 HP in one wave\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 16, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/036c7cb80c10d0e0662f60a9673dd14c481e8dd1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/036c7cb80c10d0e0662f60a9673dd14c481e8dd1.jpg\" alt=\"Industrialization\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Industrialization\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIndustrialization\u003c/strong\u003e\u003cbr/\u003e\n    Get 5 turrets on the map simultaneously\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 17, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/ac20c0c1ebd29ab81976921ff53506e044db2944.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/ac20c0c1ebd29ab81976921ff53506e044db2944.jpg\" alt=\"Rookie\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Rookie\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRookie\u003c/strong\u003e\u003cbr/\u003e\n    Die for the first time\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 16, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/4bc64756f01bdce3e81f16d8415df7ab1ccf2084.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/4bc64756f01bdce3e81f16d8415df7ab1ccf2084.jpg\" alt=\"Fireworks\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fireworks\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFireworks\u003c/strong\u003e\u003cbr/\u003e\n    Kill 15 enemies with a single explosion\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 16, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/235ff52a1d8a867fbbab502840c723d76daa1edc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/235ff52a1d8a867fbbab502840c723d76daa1edc.jpg\" alt=\"Hungry\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hungry\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHungry\u003c/strong\u003e\u003cbr/\u003e\n    Pick up 20 consumables during a run\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 16, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/aafedcd7001f5150218925a485844e2b041089a3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/aafedcd7001f5150218925a485844e2b041089a3.jpg\" alt=\"Robust\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Robust\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRobust\u003c/strong\u003e\u003cbr/\u003e\n    Reach 100 Max HP\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 28, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/91aa74266f75fb2e72b176d849a00362ea72cf1b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/91aa74266f75fb2e72b176d849a00362ea72cf1b.jpg\" alt=\"Bourgeoisie\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bourgeoisie\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBourgeoisie\u003c/strong\u003e\u003cbr/\u003e\n    Get 3 tier IV weapons at once\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 28, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/27aaf83293d10297c7b8864ca1fb3ce20b9098e7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/27aaf83293d10297c7b8864ca1fb3ce20b9098e7.jpg\" alt=\"Student\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Student\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStudent\u003c/strong\u003e\u003cbr/\u003e\n    Reach level 20\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 28, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/e21b25485c503c224ca790483fe4d92bd1612c19.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/e21b25485c503c224ca790483fe4d92bd1612c19.jpg\" alt=\"Scavenger\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Scavenger\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eScavenger\u003c/strong\u003e\u003cbr/\u003e\n    Get 10 different tier I items during a run\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 28, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (156)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/7e70d573534df355b17757d7fd67d9c81679b08c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/7e70d573534df355b17757d7fd67d9c81679b08c.jpg\" alt=\"Danger 0\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Danger 0\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDanger 0\u003c/strong\u003e\u003cbr/\u003e\n    Win a run in Danger 0\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/fcdce32683fd9b6d6893118e1438338c17f50c55.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/fcdce32683fd9b6d6893118e1438338c17f50c55.jpg\" alt=\"Danger 1\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Danger 1\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDanger 1\u003c/strong\u003e\u003cbr/\u003e\n    Win a run in Danger 1\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/9a6a8a086e79abaa1b18f0b9823520290150be55.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/9a6a8a086e79abaa1b18f0b9823520290150be55.jpg\" alt=\"Danger 2\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Danger 2\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDanger 2\u003c/strong\u003e\u003cbr/\u003e\n    Win a run in Danger 2\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/c92d37ed567fb53ddc70f1590454d4104334d27e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/c92d37ed567fb53ddc70f1590454d4104334d27e.jpg\" alt=\"Danger 3\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Danger 3\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDanger 3\u003c/strong\u003e\u003cbr/\u003e\n    Win a run in Danger 3\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/1cb743776ee67410487e48a658cc4c3e31c90864.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/1cb743776ee67410487e48a658cc4c3e31c90864.jpg\" alt=\"Danger 4\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Danger 4\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDanger 4\u003c/strong\u003e\u003cbr/\u003e\n    Win a run in Danger 4\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/fcba237974a4cc165c7518d16ac1f06e9f31e8a5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/fcba237974a4cc165c7518d16ac1f06e9f31e8a5.jpg\" alt=\"Danger 5\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Danger 5\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDanger 5\u003c/strong\u003e\u003cbr/\u003e\n    Win a run in Danger 5\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/060ea5c6616f1b5c62f3db3c77e294404636bbb2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/060ea5c6616f1b5c62f3db3c77e294404636bbb2.jpg\" alt=\"Agriculture\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Agriculture\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAgriculture\u003c/strong\u003e\u003cbr/\u003e\n    Reach 200 Harvesting\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/42b8e726661d19d3b81e1e830a1edf3a7ad837cd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/42b8e726661d19d3b81e1e830a1edf3a7ad837cd.jpg\" alt=\"Dying\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Dying\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDying\u003c/strong\u003e\u003cbr/\u003e\n    Reach -5 HP Regeneration\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/79f27676a04648a7aa895ddf1a7a502d04ce2242.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/79f27676a04648a7aa895ddf1a7a502d04ce2242.jpg\" alt=\"Fast\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fast\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFast\u003c/strong\u003e\u003cbr/\u003e\n    Reach 50 % Speed\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/a40ebe858d3899fbd003d1360b6e38a9ff99745f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/a40ebe858d3899fbd003d1360b6e38a9ff99745f.jpg\" alt=\"Hoarder\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hoarder\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHoarder\u003c/strong\u003e\u003cbr/\u003e\n    Hold 3000 materials\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/dd1d56231d9ec76ac4451d269d6bf8be90e4b0f9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/dd1d56231d9ec76ac4451d269d6bf8be90e4b0f9.jpg\" alt=\"Hallucination\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hallucination\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHallucination\u003c/strong\u003e\u003cbr/\u003e\n    Reach 60 % Dodge\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/798f56db56c0ea01b3a7fd4864ebb6b00d80c55d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/798f56db56c0ea01b3a7fd4864ebb6b00d80c55d.jpg\" alt=\"Brawler - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Brawler - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBrawler - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Brawler in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/fadff6e5e3dc30b69754d1fe92aaeffd943f44b6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/fadff6e5e3dc30b69754d1fe92aaeffd943f44b6.jpg\" alt=\"Bull - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bull - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBull - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Bull in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/4d951263b0eb7daed378f12a86af65e012ebbe98.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/4d951263b0eb7daed378f12a86af65e012ebbe98.jpg\" alt=\"Chunky - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Chunky - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChunky - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Chunky in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/9299a7c01dba79224f6f1ccd3f30dde347390054.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/9299a7c01dba79224f6f1ccd3f30dde347390054.jpg\" alt=\"Demon - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Demon - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDemon - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Demon in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/719961cdb35e4eba4a1efdd0818bef93ed186239.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/719961cdb35e4eba4a1efdd0818bef93ed186239.jpg\" alt=\"Doctor - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Doctor - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDoctor - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Doctor in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/f2917d8f343adf547bb8102d562919707b58a9d0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/f2917d8f343adf547bb8102d562919707b58a9d0.jpg\" alt=\"Engineer - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Engineer - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEngineer - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Engineer in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/40c1cca3323f1bbcc03b206acdef44885aa69ea3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/40c1cca3323f1bbcc03b206acdef44885aa69ea3.jpg\" alt=\"Entrepreneur - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Entrepreneur - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEntrepreneur - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Entrepreneur in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/1ce4e0b92c1589fb495d0b80af269deda9863a9a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/1ce4e0b92c1589fb495d0b80af269deda9863a9a.jpg\" alt=\"Explorer - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Explorer - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExplorer - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Explorer in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/d99bc16e18dd2e8e23995ded303eea203e8c1ad2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/d99bc16e18dd2e8e23995ded303eea203e8c1ad2.jpg\" alt=\"Farmer - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Farmer - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFarmer - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Farmer in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/b02d4287488aea77e43036b32147f4c605404ff6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/b02d4287488aea77e43036b32147f4c605404ff6.jpg\" alt=\"Ghost - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ghost - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGhost - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Ghost in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/56b0223b19c8ebc7e93bf5202a3bef85aa89a606.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/56b0223b19c8ebc7e93bf5202a3bef85aa89a606.jpg\" alt=\"Gladiator - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Gladiator - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGladiator - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Gladiator in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/bb1f2a0aaaa011bc61bb83ecd6eebb7bbc3dfc27.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/bb1f2a0aaaa011bc61bb83ecd6eebb7bbc3dfc27.jpg\" alt=\"Knight - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Knight - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKnight - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Knight in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/28aeff334348c5bc58f68f1870185427020b29b7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/28aeff334348c5bc58f68f1870185427020b29b7.jpg\" alt=\"Loud - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Loud - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLoud - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Loud in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/cc5f91b0472ae5dcaa1c577316abbf6e9673573e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/cc5f91b0472ae5dcaa1c577316abbf6e9673573e.jpg\" alt=\"Lucky - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Lucky - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLucky - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Lucky in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/c9680025ae38f1c9e6e439067075cd492cffc0b6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/c9680025ae38f1c9e6e439067075cd492cffc0b6.jpg\" alt=\"Mage - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mage - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMage - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Mage in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/2a8d864c23afb40e64a91606a001949733da2afb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/2a8d864c23afb40e64a91606a001949733da2afb.jpg\" alt=\"Masochist - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Masochist - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMasochist - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Masochist in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/6adee1a1d46216256dab61ad513a2bc9ecfb9efd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/6adee1a1d46216256dab61ad513a2bc9ecfb9efd.jpg\" alt=\"Multitasker - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Multitasker - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMultitasker - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Multitasker in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/df12c22cf82f367f9a9c78af935b47837517364a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/df12c22cf82f367f9a9c78af935b47837517364a.jpg\" alt=\"Mutant - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mutant - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMutant - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Mutant in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/da1c6b34d81f762c6118d01b04a965e36046a0e2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/da1c6b34d81f762c6118d01b04a965e36046a0e2.jpg\" alt=\"Old - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Old - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOld - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Old in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/aab62c6bc9f630bcf42aca4e818c34f282d995b4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/aab62c6bc9f630bcf42aca4e818c34f282d995b4.jpg\" alt=\"One-Armed - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: One-Armed - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOne-Armed - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with One-Armed in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/391ef4c1c57d78a5b8e0d6d4c5d42f54c80a031d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/391ef4c1c57d78a5b8e0d6d4c5d42f54c80a031d.jpg\" alt=\"Pacifist - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Pacifist - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePacifist - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Pacifist in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/bdfe7f61375dc1bd0065da221de07abc6eac0beb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/bdfe7f61375dc1bd0065da221de07abc6eac0beb.jpg\" alt=\"Ranger - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ranger - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRanger - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Ranger in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/6af29938fc8f83cbe7f84ff313ac96e8ad14b780.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/6af29938fc8f83cbe7f84ff313ac96e8ad14b780.jpg\" alt=\"Saver - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Saver - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSaver - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Saver in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/acd69512df10053982b4f4009981fb13245cb83f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/acd69512df10053982b4f4009981fb13245cb83f.jpg\" alt=\"Sick - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sick - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSick - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Sick in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/dcfbc6e4fe9bfc576b30e339efc6478dec372eca.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/dcfbc6e4fe9bfc576b30e339efc6478dec372eca.jpg\" alt=\"Soldier - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Soldier - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSoldier - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Soldier in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/210bf2bc1f3169e7c9d94bbff749956034a8c2b3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/210bf2bc1f3169e7c9d94bbff749956034a8c2b3.jpg\" alt=\"Speedy - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Speedy - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpeedy - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Speedy in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/3fcce34c6d7337f5afe49f16288ece63bb5a134f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/3fcce34c6d7337f5afe49f16288ece63bb5a134f.jpg\" alt=\"Well-Rounded - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Well-Rounded - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWell-Rounded - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Well-Rounded in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/42ad104cc5c4076c2ae906097572f134cb0c08ca.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/42ad104cc5c4076c2ae906097572f134cb0c08ca.jpg\" alt=\"Wildling - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Wildling - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWildling - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Wildling in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/b5a4d6aefe6c159ae92d64b4454fe7e76e18255e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/b5a4d6aefe6c159ae92d64b4454fe7e76e18255e.jpg\" alt=\"Crazy - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Crazy - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCrazy - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Crazy in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/218661451cd834bd978ffcbb43f1192e9c2748c4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/218661451cd834bd978ffcbb43f1192e9c2748c4.jpg\" alt=\"Generalist - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Generalist - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGeneralist - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Generalist in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/e361be5c02040e3654cb0b6742ed1fb52fd94310.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/e361be5c02040e3654cb0b6742ed1fb52fd94310.jpg\" alt=\"Artificer - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Artificer - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArtificer - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Artificer in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/a35ae0d5b944323cb038d96ba3651bcb3f2305ca.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/a35ae0d5b944323cb038d96ba3651bcb3f2305ca.jpg\" alt=\"Hunter - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hunter - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHunter - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Hunter in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/058cbdc2d240d9fe496fa68f971aaef2f0e02748.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/058cbdc2d240d9fe496fa68f971aaef2f0e02748.jpg\" alt=\"Perfect Vision\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Perfect Vision\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePerfect Vision\u003c/strong\u003e\u003cbr/\u003e\n    Reach 300 Range\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/59acf5a43c5db20b1862dcfaf200c0497db513cc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/59acf5a43c5db20b1862dcfaf200c0497db513cc.jpg\" alt=\"Recycling\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Recycling\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRecycling\u003c/strong\u003e\u003cbr/\u003e\n    Recycle 12 weapons during a run\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/5269be3503f50a7d5bcc6dfeecade17c4f625cf0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/5269be3503f50a7d5bcc6dfeecade17c4f625cf0.jpg\" alt=\"Slow\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Slow\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSlow\u003c/strong\u003e\u003cbr/\u003e\n    Reach -20 % Speed\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/42ceb861f82c57f083da93baf31a5efabbddb696.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/42ceb861f82c57f083da93baf31a5efabbddb696.jpg\" alt=\"Arms Dealer - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Arms Dealer - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArms Dealer - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Arms Dealer in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/c3182774e61ad833c254daa6522744b9538a6204.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/c3182774e61ad833c254daa6522744b9538a6204.jpg\" alt=\"Streamer - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Streamer - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStreamer - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Streamer in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/4630aa9f7f1751c3346719f5c618b4cb2344c0b2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/4630aa9f7f1751c3346719f5c618b4cb2344c0b2.jpg\" alt=\"Advanced Technology\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Advanced Technology\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAdvanced Technology\u003c/strong\u003e\u003cbr/\u003e\n    Reach 10 Ranged Damage and get 3 structures at the same time\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/0b08c3c11303584e48d8f1a9250ba86012c85191.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/0b08c3c11303584e48d8f1a9250ba86012c85191.jpg\" alt=\"Giant Slayer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Giant Slayer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGiant Slayer\u003c/strong\u003e\u003cbr/\u003e\n    Kill a boss or an elite in less than 15 seconds\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/4c970132084cc448c1551c5dc04a9c55e3e1a21c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/4c970132084cc448c1551c5dc04a9c55e3e1a21c.jpg\" alt=\"Cyborg - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cyborg - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCyborg - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Cyborg in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/1b63aea14c765a1996206a053d122a1136d429f4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/1b63aea14c765a1996206a053d122a1136d429f4.jpg\" alt=\"Glutton - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Glutton - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGlutton - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Glutton in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/a46d9c0649a7f56509899c11d9209241be6f03fc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/a46d9c0649a7f56509899c11d9209241be6f03fc.jpg\" alt=\"Jack - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Jack - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJack - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Jack in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/11a98b6844be1ef256a2c175a469b43b7dfa06f5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/11a98b6844be1ef256a2c175a469b43b7dfa06f5.jpg\" alt=\"Lich - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Lich - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLich - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Lich in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/bdacc33fabbe049bc152c51bdf87bdf2713d576a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/bdacc33fabbe049bc152c51bdf87bdf2713d576a.jpg\" alt=\"Baited\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Baited\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBaited\u003c/strong\u003e\u003cbr/\u003e\n    Get 2 Bait during a run\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/5967b03ac2c5f03bad1b84d0debf7140e3febc3d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/5967b03ac2c5f03bad1b84d0debf7140e3febc3d.jpg\" alt=\"Forest\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Forest\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eForest\u003c/strong\u003e\u003cbr/\u003e\n    Finish a wave with 10 or more living trees\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/25da1e326cb3f1bc04ad170faad91489d1006a98.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/25da1e326cb3f1bc04ad170faad91489d1006a98.jpg\" alt=\"Reckless\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Reckless\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eReckless\u003c/strong\u003e\u003cbr/\u003e\n    Finish a wave with 1 HP\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/cd4c554333889f57d88fc862fa53f79fab1c789a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/cd4c554333889f57d88fc862fa53f79fab1c789a.jpg\" alt=\"Apprentice - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Apprentice - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eApprentice - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Apprentice in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/d888b44beb8fce18788cee860411633307594747.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/d888b44beb8fce18788cee860411633307594747.jpg\" alt=\"Cryptid - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cryptid - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCryptid - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Cryptid in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/020e91cd46863e254cdbbb38e289ad65cf0ea664.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/020e91cd46863e254cdbbb38e289ad65cf0ea664.jpg\" alt=\"Fisherman - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fisherman - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFisherman - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Fisherman in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/a850acdbdefd3eb6c956e206eb572ccec59afe2f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/a850acdbdefd3eb6c956e206eb572ccec59afe2f.jpg\" alt=\"Golem - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Golem - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGolem - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Golem in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/c4ccd2421972053a725dc8fdbc8e451aeba12a4e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/c4ccd2421972053a725dc8fdbc8e451aeba12a4e.jpg\" alt=\"King - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: King - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with King in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/9421d8d18527ad308151597dc58988d04b537e05.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/9421d8d18527ad308151597dc58988d04b537e05.jpg\" alt=\"Renegade - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Renegade - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRenegade - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Renegade in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/4c77a64a31f6b637c7fa4f017bf5ffa2b4190f6c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/4c77a64a31f6b637c7fa4f017bf5ffa2b4190f6c.jpg\" alt=\"Vampire - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Vampire - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVampire - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Vampire in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/865aace050d87f025eb4800f1fdeb6c071db0564.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/865aace050d87f025eb4800f1fdeb6c071db0564.jpg\" alt=\"Vagabond - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Vagabond - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVagabond - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Vagabond in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/cbf228e6b94370fe3eb03c5fb1cb5fa64e491094.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/cbf228e6b94370fe3eb03c5fb1cb5fa64e491094.jpg\" alt=\"Baby - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Baby - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBaby - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Baby in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/585ad7b53bb2bd19fc981a1bf6a25031e1ae2ed3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/585ad7b53bb2bd19fc981a1bf6a25031e1ae2ed3.jpg\" alt=\"Blood Drinker\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Blood Drinker\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlood Drinker\u003c/strong\u003e\u003cbr/\u003e\n    Reach 40 % Life Steal\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/e46948dec887f189d56e86b0e2625acf3abdf426.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/e46948dec887f189d56e86b0e2625acf3abdf426.jpg\" alt=\"Experimentation\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Experimentation\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExperimentation\u003c/strong\u003e\u003cbr/\u003e\n    Have 6 different weapons at once\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/2ac16e2e430182935efe57b58770782709107fe1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/2ac16e2e430182935efe57b58770782709107fe1.jpg\" alt=\"Fast Learner\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fast Learner\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFast Learner\u003c/strong\u003e\u003cbr/\u003e\n    Reach level 10 before wave 6\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/0b368ea79c66b42e3dbf5cd77f148f8e2baa9a32.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/0b368ea79c66b42e3dbf5cd77f148f8e2baa9a32.jpg\" alt=\"Magic and Machinery\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Magic and Machinery\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMagic and Machinery\u003c/strong\u003e\u003cbr/\u003e\n    Reach 10 Elemental Damage and get 3 structures at the same time\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/67cfcf797532f3df8e624414b07d56ee692c0c1b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/67cfcf797532f3df8e624414b07d56ee692c0c1b.jpg\" alt=\"Technomage - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Technomage - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTechnomage - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Technomage in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/2673d7b579d884200aabcbcf9ea27920de0b2c75.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/2673d7b579d884200aabcbcf9ea27920de0b2c75.jpg\" alt=\"Barbecue\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Barbecue\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBarbecue\u003c/strong\u003e\u003cbr/\u003e\n    Have at least 25 enemies burning at the same time\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/439b9fc55150d0c6db8707aabcf86b9bdbcca5a3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/439b9fc55150d0c6db8707aabcf86b9bdbcca5a3.jpg\" alt=\"Blind Greed\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Blind Greed\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlind Greed\u003c/strong\u003e\u003cbr/\u003e\n    Reach 100 % Pickup Range\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/d47106c829e1fefddc1c077ed7bf785d6ae793b8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/d47106c829e1fefddc1c077ed7bf785d6ae793b8.jpg\" alt=\"Buccaneer - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Buccaneer - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBuccaneer - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Buccaneer in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/8cfe48894a6c107909eac91c2d05860792270f50.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/8cfe48894a6c107909eac91c2d05860792270f50.jpg\" alt=\"Builder - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Builder - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBuilder - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Builder in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/83d35166e8fd2e9eb57509516f5eaa391dc619e0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/83d35166e8fd2e9eb57509516f5eaa391dc619e0.jpg\" alt=\"Captain - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Captain - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCaptain - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Captain in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/fc3a10c20481a576394605589e6521ed47bd2c4a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/fc3a10c20481a576394605589e6521ed47bd2c4a.jpg\" alt=\"Cautious\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cautious\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCautious\u003c/strong\u003e\u003cbr/\u003e\n    Kill 1000 enemies that are more than 700 range away from you\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/ef5b1ae150a26d9fdbf6bf0000fd0f653967f35a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/ef5b1ae150a26d9fdbf6bf0000fd0f653967f35a.jpg\" alt=\"Chef - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Chef - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChef - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Chef in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/08388c7d884a6093e501c589935095008e571dd3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/08388c7d884a6093e501c589935095008e571dd3.jpg\" alt=\"Creature - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Creature - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCreature - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Creature in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/1e26f9216b525877ccec3c5d56c69c367413dfab.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/1e26f9216b525877ccec3c5d56c69c367413dfab.jpg\" alt=\"Curious - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Curious - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCurious - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Curious in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/5618dd637ebab2b8ede08d90403f617a4edf709d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/5618dd637ebab2b8ede08d90403f617a4edf709d.jpg\" alt=\"Diver - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Diver - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDiver - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Diver in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/a1708009adf6bee4da841c7face6ce791891747e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/a1708009adf6bee4da841c7face6ce791891747e.jpg\" alt=\"Druid - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Druid - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDruid - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Druid in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/139a8b5bb4bef60e0064bdc7fd2c54e84ddc3289.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/139a8b5bb4bef60e0064bdc7fd2c54e84ddc3289.jpg\" alt=\"Dwarf - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Dwarf - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDwarf - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Dwarf in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/14d94e38c61912771307734a2bcff5ad8461e807.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/14d94e38c61912771307734a2bcff5ad8461e807.jpg\" alt=\"Gangster - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Gangster - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGangster - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Gangster in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/b9211c40b7f587df09fe62cf6fc4cf101578439b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/b9211c40b7f587df09fe62cf6fc4cf101578439b.jpg\" alt=\"Herbalist\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Herbalist\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHerbalist\u003c/strong\u003e\u003cbr/\u003e\n    Collect 250 consumables by the end of wave 20\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/014c82e9db211ffe315ceb18ad2bb8a5a734ff11.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/014c82e9db211ffe315ceb18ad2bb8a5a734ff11.jpg\" alt=\"Hiker - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hiker - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHiker - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Hiker in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/33a732daba2a0154705af93da9d1f75731fd9bf6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/33a732daba2a0154705af93da9d1f75731fd9bf6.jpg\" alt=\"Ogre - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ogre - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOgre - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Ogre in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/14d61315b9d75268979a13e63cd20e701a35b6cc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/14d61315b9d75268979a13e63cd20e701a35b6cc.jpg\" alt=\"Overkill\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Overkill\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOverkill\u003c/strong\u003e\u003cbr/\u003e\n    Deal 1000 damage to an enemy in a single hit\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/04ab1a4fb33f127fe3b886878aba14909eac493e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/04ab1a4fb33f127fe3b886878aba14909eac493e.jpg\" alt=\"Romantic - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Romantic - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRomantic - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Romantic in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/acac8b2a90fb117f415421ba00f24c0326260160.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/acac8b2a90fb117f415421ba00f24c0326260160.jpg\" alt=\"Sailor - Crash Zone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sailor - Crash Zone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSailor - Crash Zone\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Sailor in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/32f1fa848093ba184df17cf9ceb4f088840e069a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/32f1fa848093ba184df17cf9ceb4f088840e069a.jpg\" alt=\"Smelly Feet\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Smelly Feet\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSmelly Feet\u003c/strong\u003e\u003cbr/\u003e\n    Walk a total of 20000 steps\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/81aa3c62dc5b632ca0b5d8f72cec2f2a08ed6ba2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/81aa3c62dc5b632ca0b5d8f72cec2f2a08ed6ba2.jpg\" alt=\"Uncorrupted\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Uncorrupted\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUncorrupted\u003c/strong\u003e\u003cbr/\u003e\n    Finish a run with 0 Curse\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/b4daf750fbc1932c49a0a425be406ad1c6e2c073.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/b4daf750fbc1932c49a0a425be406ad1c6e2c073.jpg\" alt=\"Unlucky\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Unlucky\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUnlucky\u003c/strong\u003e\u003cbr/\u003e\n    Reroll 10 times in a single shop\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/d231d01a654d4ac3bbba7d59d948e1939f8722c4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/d231d01a654d4ac3bbba7d59d948e1939f8722c4.jpg\" alt=\"Unstoppable Force\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Unstoppable Force\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUnstoppable Force\u003c/strong\u003e\u003cbr/\u003e\n    Hit at least 25 enemies with a single melee attack\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/9f8a012da7c3bb5ae18bf3aacc6cdf5041e525ef.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/9f8a012da7c3bb5ae18bf3aacc6cdf5041e525ef.jpg\" alt=\"Well-Rounded - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Well-Rounded - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWell-Rounded - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Well-Rounded in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/891d11c7e0b08586d9f7eb9ba622fbca57d86278.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/891d11c7e0b08586d9f7eb9ba622fbca57d86278.jpg\" alt=\"Brawler - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Brawler - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBrawler - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Brawler in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/2efeda15284150d42a036204eab12cc375d2a8b8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/2efeda15284150d42a036204eab12cc375d2a8b8.jpg\" alt=\"Crazy - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Crazy - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCrazy - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Crazy in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/d31cd6b68ffeeaeb773a1ed313405b01a8df39c7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/d31cd6b68ffeeaeb773a1ed313405b01a8df39c7.jpg\" alt=\"Ranger - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ranger - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRanger - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Ranger in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/47a4ba3bc12b04701fb4bea9ad48a988fd51ecfe.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/47a4ba3bc12b04701fb4bea9ad48a988fd51ecfe.jpg\" alt=\"Mage - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mage - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMage - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Mage in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/a4d934a02d33bd036276cec1b19fe41a1422d827.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/a4d934a02d33bd036276cec1b19fe41a1422d827.jpg\" alt=\"Chunky - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Chunky - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChunky - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Chunky in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/a0b12810aca9612b3472fb2f2baed96210623df1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/a0b12810aca9612b3472fb2f2baed96210623df1.jpg\" alt=\"Old - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Old - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOld - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Old in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/141d9da0501f5b7a7ca727b624ce89a6b317f532.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/141d9da0501f5b7a7ca727b624ce89a6b317f532.jpg\" alt=\"Lucky - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Lucky - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLucky - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Lucky in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/d0d323f25cb25eef9ce77367f178dcf0052333ad.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/d0d323f25cb25eef9ce77367f178dcf0052333ad.jpg\" alt=\"Mutant - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mutant - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMutant - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Mutant in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/237622a5c22e3a06d8464d5fe8d4b3a10b25ff88.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/237622a5c22e3a06d8464d5fe8d4b3a10b25ff88.jpg\" alt=\"Generalist - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Generalist - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGeneralist - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Generalist in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/4813fbb1ffcd595595b3bd7f0f72b639842681d5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/4813fbb1ffcd595595b3bd7f0f72b639842681d5.jpg\" alt=\"Loud - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Loud - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLoud - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Loud in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/568c89bedc6493739837f6858020160cd8c88aec.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/568c89bedc6493739837f6858020160cd8c88aec.jpg\" alt=\"Multitasker - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Multitasker - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMultitasker - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Multitasker in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/c23b267af41d106b50e007b974fff99ebaaf77e8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/c23b267af41d106b50e007b974fff99ebaaf77e8.jpg\" alt=\"Wildling - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Wildling - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWildling - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Wildling in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/33ba4b46864d4472cecd98a02cd9d864ebcc03b4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/33ba4b46864d4472cecd98a02cd9d864ebcc03b4.jpg\" alt=\"Pacifist - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Pacifist - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePacifist - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Pacifist in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/a44527a7a5c755c6c726cd572d385b42e6e16595.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/a44527a7a5c755c6c726cd572d385b42e6e16595.jpg\" alt=\"Gladiator - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Gladiator - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGladiator - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Gladiator in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/f188707143f54991d95ec96e7287176ae11100cf.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/f188707143f54991d95ec96e7287176ae11100cf.jpg\" alt=\"Saver - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Saver - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSaver - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Saver in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/062184078fce6e0097f1a2ed96013cc6956f1f26.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/062184078fce6e0097f1a2ed96013cc6956f1f26.jpg\" alt=\"Sick - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sick - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSick - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Sick in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/12c02ea1d82252bc03a183a629712a7b2e62a193.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/12c02ea1d82252bc03a183a629712a7b2e62a193.jpg\" alt=\"Farmer - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Farmer - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFarmer - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Farmer in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/f875a56662c371c551f347e123a488650615e6e5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/f875a56662c371c551f347e123a488650615e6e5.jpg\" alt=\"Ghost - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ghost - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGhost - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Ghost in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/0ef0a63d3b3dee0e6bd4c1b9853d3018273f2bec.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/0ef0a63d3b3dee0e6bd4c1b9853d3018273f2bec.jpg\" alt=\"Speedy - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Speedy - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpeedy - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Speedy in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/d10d2d8874e1184d22ea16fe7750d8a7c1bd1dc2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/d10d2d8874e1184d22ea16fe7750d8a7c1bd1dc2.jpg\" alt=\"Entrepreneur - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Entrepreneur - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEntrepreneur - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Entrepreneur in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/5ec745704acc30f29fe0321557083d5f5f2c3e64.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/5ec745704acc30f29fe0321557083d5f5f2c3e64.jpg\" alt=\"Engineer - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Engineer - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEngineer - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Engineer in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/6cd13dd9e7b8fb0eeadc238b5b7b4980a92cc984.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/6cd13dd9e7b8fb0eeadc238b5b7b4980a92cc984.jpg\" alt=\"Explorer - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Explorer - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExplorer - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Explorer in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/8afdb0e534fd33b4111c1fd2aabb89f06d05c9d8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/8afdb0e534fd33b4111c1fd2aabb89f06d05c9d8.jpg\" alt=\"Doctor - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Doctor - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDoctor - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Doctor in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/306b65e9fbc638a6e59c08572f22ac1a005ca73b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/306b65e9fbc638a6e59c08572f22ac1a005ca73b.jpg\" alt=\"Hunter - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hunter - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHunter - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Hunter in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/3734da0993c1c2051146e3258ab4bf7d0b5b62c7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/3734da0993c1c2051146e3258ab4bf7d0b5b62c7.jpg\" alt=\"Artificer - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Artificer - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArtificer - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Artificer in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/e55ce03653c1212efce5a78a0deff4d2a8ec689f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/e55ce03653c1212efce5a78a0deff4d2a8ec689f.jpg\" alt=\"Arms Dealer - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Arms Dealer - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArms Dealer - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Arms Dealer in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/3ed08d403e510fdcd5e9cb06ef5da8f25c0a8c52.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/3ed08d403e510fdcd5e9cb06ef5da8f25c0a8c52.jpg\" alt=\"Streamer - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Streamer - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStreamer - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Streamer in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/2a343ecaea900cda733f090e204ff07812f7cf94.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/2a343ecaea900cda733f090e204ff07812f7cf94.jpg\" alt=\"Cyborg - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cyborg - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCyborg - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Cyborg in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/a31aa34841c0d215f4029157f8d180907db2db8a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/a31aa34841c0d215f4029157f8d180907db2db8a.jpg\" alt=\"Glutton - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Glutton - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGlutton - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Glutton in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/5f53aa3551e50d9482752a33e800187f5c9751e6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/5f53aa3551e50d9482752a33e800187f5c9751e6.jpg\" alt=\"Jack - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Jack - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJack - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Jack in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/78c68813ba4bc28592a8e997bf28d8f611665eeb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/78c68813ba4bc28592a8e997bf28d8f611665eeb.jpg\" alt=\"Lich - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Lich - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLich - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Lich in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/ce6b51d4d6f8b503b7f4acb8d9fd3ad7faf2c2e1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/ce6b51d4d6f8b503b7f4acb8d9fd3ad7faf2c2e1.jpg\" alt=\"Apprentice - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Apprentice - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eApprentice - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Apprentice in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/56be0124536ca125bf0d9af710e7f17c76613105.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/56be0124536ca125bf0d9af710e7f17c76613105.jpg\" alt=\"Cryptid - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cryptid - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCryptid - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Cryptid in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/42346d1727329e3e153a9bb264e84b2525dc4fa6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/42346d1727329e3e153a9bb264e84b2525dc4fa6.jpg\" alt=\"Fisherman - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fisherman - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFisherman - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Fisherman in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/80e5ad440d980b022cd5f978f0eaadeb9a88f571.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/80e5ad440d980b022cd5f978f0eaadeb9a88f571.jpg\" alt=\"Golem - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Golem - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGolem - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Golem in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/6b0fe40d918d6ee5efc6bd25eb967c7299003baf.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/6b0fe40d918d6ee5efc6bd25eb967c7299003baf.jpg\" alt=\"King - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: King - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with King in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/0da8761db2f8448cbc349257d6e093d3d22a72ab.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/0da8761db2f8448cbc349257d6e093d3d22a72ab.jpg\" alt=\"Renegade - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Renegade - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRenegade - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Renegade in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/a17546dbd1abd13e0efa200d6b8433bc634fd1fd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/a17546dbd1abd13e0efa200d6b8433bc634fd1fd.jpg\" alt=\"One-Armed - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: One-Armed - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOne-Armed - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with One-Armed in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/ed463671fc388d3f44ca5cda942c7f013b73c2b9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/ed463671fc388d3f44ca5cda942c7f013b73c2b9.jpg\" alt=\"Bull - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bull - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBull - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Bull in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/ef5b6f77d5c78f430e650520f62e37657d307c66.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/ef5b6f77d5c78f430e650520f62e37657d307c66.jpg\" alt=\"Soldier - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Soldier - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSoldier - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Soldier in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/113fcc13028fd00d9e8fe4c898894d2c1e97f286.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/113fcc13028fd00d9e8fe4c898894d2c1e97f286.jpg\" alt=\"Masochist - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Masochist - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMasochist - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Masochist in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/43837eb9c00215860fbedfd71ffb65f198cbda55.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/43837eb9c00215860fbedfd71ffb65f198cbda55.jpg\" alt=\"Knight - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Knight - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKnight - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Knight in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/3b500f9ef0e8d1e0fd37125e942b4fa9c47d4436.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/3b500f9ef0e8d1e0fd37125e942b4fa9c47d4436.jpg\" alt=\"Demon - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Demon - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDemon - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Demon in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/21ce76be1f2194da2efa97a2468ea735a4181609.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/21ce76be1f2194da2efa97a2468ea735a4181609.jpg\" alt=\"Baby - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Baby - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBaby - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Baby in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/9bde9aef76ae1c4b18a116cb7564b62d02b2934e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/9bde9aef76ae1c4b18a116cb7564b62d02b2934e.jpg\" alt=\"Vagabond - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Vagabond - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVagabond - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Vagabond in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/8670bc44a9c9e5ec650c9c7e316b8929d11fbee9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/8670bc44a9c9e5ec650c9c7e316b8929d11fbee9.jpg\" alt=\"Technomage - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Technomage - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTechnomage - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Technomage in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/04e157925504c08b985dfc201b2508f7e19cc760.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/04e157925504c08b985dfc201b2508f7e19cc760.jpg\" alt=\"Vampire - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Vampire - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVampire - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Vampire in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/4e6010befa3c2d8a703bb45c971bc5a84d910b6f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/4e6010befa3c2d8a703bb45c971bc5a84d910b6f.jpg\" alt=\"Sailor - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sailor - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSailor - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Sailor in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/2c8960f35fa6846695c83b11e96f4e6acc1cbbe5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/2c8960f35fa6846695c83b11e96f4e6acc1cbbe5.jpg\" alt=\"Curious - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Curious - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCurious - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Curious in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/1cd30e000dd522ef3553896334c61d4cdf24cf55.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/1cd30e000dd522ef3553896334c61d4cdf24cf55.jpg\" alt=\"Builder - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Builder - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBuilder - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Builder in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/3b17b67d8648f4f4514dae0ee39c74a65b232311.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/3b17b67d8648f4f4514dae0ee39c74a65b232311.jpg\" alt=\"Captain - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Captain - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCaptain - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Captain in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/159e8989988b8b98766dacbd350c8302c36319f1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/159e8989988b8b98766dacbd350c8302c36319f1.jpg\" alt=\"Creature - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Creature - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCreature - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Creature in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/cc3a18fc1ccebd275fb7b3ac8ff10ff65f9e34a4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/cc3a18fc1ccebd275fb7b3ac8ff10ff65f9e34a4.jpg\" alt=\"Chef - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Chef - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChef - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Chef in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/2562b46fdaf995faef3d1fc8372c8091d356f92d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/2562b46fdaf995faef3d1fc8372c8091d356f92d.jpg\" alt=\"Druid - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Druid - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDruid - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Druid in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/f2244d72edf91a95158a43dad8ab643c6789807d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/f2244d72edf91a95158a43dad8ab643c6789807d.jpg\" alt=\"Dwarf - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Dwarf - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDwarf - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Dwarf in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/11183e04c57626453f26d5794c02ff24bf8c6651.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/11183e04c57626453f26d5794c02ff24bf8c6651.jpg\" alt=\"Gangster - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Gangster - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGangster - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Gangster in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/4e09684cc0ecee8d98c54ed38e355d0066ad0210.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/4e09684cc0ecee8d98c54ed38e355d0066ad0210.jpg\" alt=\"Diver - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Diver - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDiver - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Diver in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/deb4d89bdd305e078933664324ef9f48e58eea74.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/deb4d89bdd305e078933664324ef9f48e58eea74.jpg\" alt=\"Hiker - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hiker - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHiker - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Hiker in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/9b2100809f416294340899523ae9aa21afd03345.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/9b2100809f416294340899523ae9aa21afd03345.jpg\" alt=\"Buccaneer - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Buccaneer - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBuccaneer - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Buccaneer in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/b84e49b8cdcf0569d0205125301196079bde8eb7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/b84e49b8cdcf0569d0205125301196079bde8eb7.jpg\" alt=\"Ogre - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ogre - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOgre - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Ogre in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/6200dea57c433c0d691ea789322eb1f2b5d04764.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/6200dea57c433c0d691ea789322eb1f2b5d04764.jpg\" alt=\"Romantic - The Abyss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Romantic - The Abyss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRomantic - The Abyss\u003c/strong\u003e\u003cbr/\u003e\n    Win a run with Romantic in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/1942280/library_600x900.jpg\" alt=\"Brotato box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/1942280/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eBrotato\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 11.36%\"\u003e\n        11.36%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e20/176 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e16.8h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-03-30\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (20)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/27a9be454703c52dc7a98bddc7d8c4a49e643340.jpg\" alt=\"Survivor 1\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSurvivor 1\u003c/strong\u003e\u003cbr\u003e\n    Kill 300 enemies\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 16, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/27a9be454703c52dc7a98bddc7d8c4a49e643340.jpg\" alt=\"Survivor 2\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSurvivor 2\u003c/strong\u003e\u003cbr\u003e\n    Kill 2000 enemies\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 16, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/27a9be454703c52dc7a98bddc7d8c4a49e643340.jpg\" alt=\"Survivor 3\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSurvivor 3\u003c/strong\u003e\u003cbr\u003e\n    Kill 5000 enemies\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 16, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/27a9be454703c52dc7a98bddc7d8c4a49e643340.jpg\" alt=\"Survivor 4\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSurvivor 4\u003c/strong\u003e\u003cbr\u003e\n    Kill 10000 enemies\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 16, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/27a9be454703c52dc7a98bddc7d8c4a49e643340.jpg\" alt=\"Survivor 5\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSurvivor 5\u003c/strong\u003e\u003cbr\u003e\n    Kill 20000 enemies\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 17, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/5a6009548d75340b0276b75a2c4faf76d757a58b.jpg\" alt=\"Gatherer 1\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGatherer 1\u003c/strong\u003e\u003cbr\u003e\n    Collect 300 materials\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 16, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/5a6009548d75340b0276b75a2c4faf76d757a58b.jpg\" alt=\"Gatherer 2\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGatherer 2\u003c/strong\u003e\u003cbr\u003e\n    Collect 2000 materials\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 16, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/5a6009548d75340b0276b75a2c4faf76d757a58b.jpg\" alt=\"Gatherer 3\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGatherer 3\u003c/strong\u003e\u003cbr\u003e\n    Collect 5000 materials\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 16, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/5a6009548d75340b0276b75a2c4faf76d757a58b.jpg\" alt=\"Gatherer 4\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGatherer 4\u003c/strong\u003e\u003cbr\u003e\n    Collect 10000 materials\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 16, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/5a6009548d75340b0276b75a2c4faf76d757a58b.jpg\" alt=\"Gatherer 5\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGatherer 5\u003c/strong\u003e\u003cbr\u003e\n    Collect 20000 materials\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 18, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/8b4ee07972f4c5c550efde55536dd2c489ec533b.jpg\" alt=\"Lumberjack\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLumberjack\u003c/strong\u003e\u003cbr\u003e\n    Kill 50 trees\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 16, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/d224fd35c23e67b99eb92e3448bfa7671b568869.jpg\" alt=\"Medicine\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMedicine\u003c/strong\u003e\u003cbr\u003e\n    Heal 200 HP in one wave\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 16, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/036c7cb80c10d0e0662f60a9673dd14c481e8dd1.jpg\" alt=\"Industrialization\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIndustrialization\u003c/strong\u003e\u003cbr\u003e\n    Get 5 turrets on the map simultaneously\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 17, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/ac20c0c1ebd29ab81976921ff53506e044db2944.jpg\" alt=\"Rookie\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRookie\u003c/strong\u003e\u003cbr\u003e\n    Die for the first time\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 16, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/4bc64756f01bdce3e81f16d8415df7ab1ccf2084.jpg\" alt=\"Fireworks\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFireworks\u003c/strong\u003e\u003cbr\u003e\n    Kill 15 enemies with a single explosion\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 16, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/235ff52a1d8a867fbbab502840c723d76daa1edc.jpg\" alt=\"Hungry\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHungry\u003c/strong\u003e\u003cbr\u003e\n    Pick up 20 consumables during a run\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 16, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/aafedcd7001f5150218925a485844e2b041089a3.jpg\" alt=\"Robust\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRobust\u003c/strong\u003e\u003cbr\u003e\n    Reach 100 Max HP\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 28, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/91aa74266f75fb2e72b176d849a00362ea72cf1b.jpg\" alt=\"Bourgeoisie\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBourgeoisie\u003c/strong\u003e\u003cbr\u003e\n    Get 3 tier IV weapons at once\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 28, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/27aaf83293d10297c7b8864ca1fb3ce20b9098e7.jpg\" alt=\"Student\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStudent\u003c/strong\u003e\u003cbr\u003e\n    Reach level 20\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 28, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/e21b25485c503c224ca790483fe4d92bd1612c19.jpg\" alt=\"Scavenger\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eScavenger\u003c/strong\u003e\u003cbr\u003e\n    Get 10 different tier I items during a run\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 28, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (156)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/7e70d573534df355b17757d7fd67d9c81679b08c.jpg\" alt=\"Danger 0\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDanger 0\u003c/strong\u003e\u003cbr\u003e\n    Win a run in Danger 0\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/fcdce32683fd9b6d6893118e1438338c17f50c55.jpg\" alt=\"Danger 1\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDanger 1\u003c/strong\u003e\u003cbr\u003e\n    Win a run in Danger 1\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/9a6a8a086e79abaa1b18f0b9823520290150be55.jpg\" alt=\"Danger 2\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDanger 2\u003c/strong\u003e\u003cbr\u003e\n    Win a run in Danger 2\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/c92d37ed567fb53ddc70f1590454d4104334d27e.jpg\" alt=\"Danger 3\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDanger 3\u003c/strong\u003e\u003cbr\u003e\n    Win a run in Danger 3\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/1cb743776ee67410487e48a658cc4c3e31c90864.jpg\" alt=\"Danger 4\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDanger 4\u003c/strong\u003e\u003cbr\u003e\n    Win a run in Danger 4\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/fcba237974a4cc165c7518d16ac1f06e9f31e8a5.jpg\" alt=\"Danger 5\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDanger 5\u003c/strong\u003e\u003cbr\u003e\n    Win a run in Danger 5\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/060ea5c6616f1b5c62f3db3c77e294404636bbb2.jpg\" alt=\"Agriculture\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAgriculture\u003c/strong\u003e\u003cbr\u003e\n    Reach 200 Harvesting\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/42b8e726661d19d3b81e1e830a1edf3a7ad837cd.jpg\" alt=\"Dying\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDying\u003c/strong\u003e\u003cbr\u003e\n    Reach -5 HP Regeneration\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/79f27676a04648a7aa895ddf1a7a502d04ce2242.jpg\" alt=\"Fast\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFast\u003c/strong\u003e\u003cbr\u003e\n    Reach 50 % Speed\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/a40ebe858d3899fbd003d1360b6e38a9ff99745f.jpg\" alt=\"Hoarder\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHoarder\u003c/strong\u003e\u003cbr\u003e\n    Hold 3000 materials\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/dd1d56231d9ec76ac4451d269d6bf8be90e4b0f9.jpg\" alt=\"Hallucination\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHallucination\u003c/strong\u003e\u003cbr\u003e\n    Reach 60 % Dodge\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/798f56db56c0ea01b3a7fd4864ebb6b00d80c55d.jpg\" alt=\"Brawler - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBrawler - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Brawler in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/fadff6e5e3dc30b69754d1fe92aaeffd943f44b6.jpg\" alt=\"Bull - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBull - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Bull in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/4d951263b0eb7daed378f12a86af65e012ebbe98.jpg\" alt=\"Chunky - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChunky - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Chunky in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/9299a7c01dba79224f6f1ccd3f30dde347390054.jpg\" alt=\"Demon - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDemon - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Demon in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/719961cdb35e4eba4a1efdd0818bef93ed186239.jpg\" alt=\"Doctor - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDoctor - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Doctor in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/f2917d8f343adf547bb8102d562919707b58a9d0.jpg\" alt=\"Engineer - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEngineer - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Engineer in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/40c1cca3323f1bbcc03b206acdef44885aa69ea3.jpg\" alt=\"Entrepreneur - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEntrepreneur - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Entrepreneur in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/1ce4e0b92c1589fb495d0b80af269deda9863a9a.jpg\" alt=\"Explorer - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExplorer - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Explorer in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/d99bc16e18dd2e8e23995ded303eea203e8c1ad2.jpg\" alt=\"Farmer - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFarmer - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Farmer in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/b02d4287488aea77e43036b32147f4c605404ff6.jpg\" alt=\"Ghost - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGhost - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Ghost in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/56b0223b19c8ebc7e93bf5202a3bef85aa89a606.jpg\" alt=\"Gladiator - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGladiator - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Gladiator in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/bb1f2a0aaaa011bc61bb83ecd6eebb7bbc3dfc27.jpg\" alt=\"Knight - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKnight - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Knight in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/28aeff334348c5bc58f68f1870185427020b29b7.jpg\" alt=\"Loud - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLoud - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Loud in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/cc5f91b0472ae5dcaa1c577316abbf6e9673573e.jpg\" alt=\"Lucky - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLucky - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Lucky in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/c9680025ae38f1c9e6e439067075cd492cffc0b6.jpg\" alt=\"Mage - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMage - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Mage in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/2a8d864c23afb40e64a91606a001949733da2afb.jpg\" alt=\"Masochist - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMasochist - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Masochist in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/6adee1a1d46216256dab61ad513a2bc9ecfb9efd.jpg\" alt=\"Multitasker - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMultitasker - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Multitasker in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/df12c22cf82f367f9a9c78af935b47837517364a.jpg\" alt=\"Mutant - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMutant - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Mutant in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/da1c6b34d81f762c6118d01b04a965e36046a0e2.jpg\" alt=\"Old - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOld - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Old in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/aab62c6bc9f630bcf42aca4e818c34f282d995b4.jpg\" alt=\"One-Armed - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOne-Armed - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with One-Armed in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/391ef4c1c57d78a5b8e0d6d4c5d42f54c80a031d.jpg\" alt=\"Pacifist - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePacifist - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Pacifist in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/bdfe7f61375dc1bd0065da221de07abc6eac0beb.jpg\" alt=\"Ranger - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRanger - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Ranger in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/6af29938fc8f83cbe7f84ff313ac96e8ad14b780.jpg\" alt=\"Saver - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSaver - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Saver in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/acd69512df10053982b4f4009981fb13245cb83f.jpg\" alt=\"Sick - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSick - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Sick in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/dcfbc6e4fe9bfc576b30e339efc6478dec372eca.jpg\" alt=\"Soldier - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSoldier - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Soldier in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/210bf2bc1f3169e7c9d94bbff749956034a8c2b3.jpg\" alt=\"Speedy - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpeedy - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Speedy in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/3fcce34c6d7337f5afe49f16288ece63bb5a134f.jpg\" alt=\"Well-Rounded - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWell-Rounded - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Well-Rounded in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/42ad104cc5c4076c2ae906097572f134cb0c08ca.jpg\" alt=\"Wildling - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWildling - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Wildling in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/b5a4d6aefe6c159ae92d64b4454fe7e76e18255e.jpg\" alt=\"Crazy - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCrazy - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Crazy in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/218661451cd834bd978ffcbb43f1192e9c2748c4.jpg\" alt=\"Generalist - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGeneralist - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Generalist in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/e361be5c02040e3654cb0b6742ed1fb52fd94310.jpg\" alt=\"Artificer - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArtificer - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Artificer in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/a35ae0d5b944323cb038d96ba3651bcb3f2305ca.jpg\" alt=\"Hunter - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHunter - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Hunter in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/058cbdc2d240d9fe496fa68f971aaef2f0e02748.jpg\" alt=\"Perfect Vision\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePerfect Vision\u003c/strong\u003e\u003cbr\u003e\n    Reach 300 Range\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/59acf5a43c5db20b1862dcfaf200c0497db513cc.jpg\" alt=\"Recycling\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRecycling\u003c/strong\u003e\u003cbr\u003e\n    Recycle 12 weapons during a run\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/5269be3503f50a7d5bcc6dfeecade17c4f625cf0.jpg\" alt=\"Slow\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSlow\u003c/strong\u003e\u003cbr\u003e\n    Reach -20 % Speed\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/42ceb861f82c57f083da93baf31a5efabbddb696.jpg\" alt=\"Arms Dealer - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArms Dealer - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Arms Dealer in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/c3182774e61ad833c254daa6522744b9538a6204.jpg\" alt=\"Streamer - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStreamer - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Streamer in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/4630aa9f7f1751c3346719f5c618b4cb2344c0b2.jpg\" alt=\"Advanced Technology\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAdvanced Technology\u003c/strong\u003e\u003cbr\u003e\n    Reach 10 Ranged Damage and get 3 structures at the same time\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/0b08c3c11303584e48d8f1a9250ba86012c85191.jpg\" alt=\"Giant Slayer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGiant Slayer\u003c/strong\u003e\u003cbr\u003e\n    Kill a boss or an elite in less than 15 seconds\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/4c970132084cc448c1551c5dc04a9c55e3e1a21c.jpg\" alt=\"Cyborg - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCyborg - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Cyborg in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/1b63aea14c765a1996206a053d122a1136d429f4.jpg\" alt=\"Glutton - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGlutton - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Glutton in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/a46d9c0649a7f56509899c11d9209241be6f03fc.jpg\" alt=\"Jack - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJack - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Jack in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/11a98b6844be1ef256a2c175a469b43b7dfa06f5.jpg\" alt=\"Lich - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLich - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Lich in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/bdacc33fabbe049bc152c51bdf87bdf2713d576a.jpg\" alt=\"Baited\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBaited\u003c/strong\u003e\u003cbr\u003e\n    Get 2 Bait during a run\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/5967b03ac2c5f03bad1b84d0debf7140e3febc3d.jpg\" alt=\"Forest\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eForest\u003c/strong\u003e\u003cbr\u003e\n    Finish a wave with 10 or more living trees\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/25da1e326cb3f1bc04ad170faad91489d1006a98.jpg\" alt=\"Reckless\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eReckless\u003c/strong\u003e\u003cbr\u003e\n    Finish a wave with 1 HP\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/cd4c554333889f57d88fc862fa53f79fab1c789a.jpg\" alt=\"Apprentice - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eApprentice - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Apprentice in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/d888b44beb8fce18788cee860411633307594747.jpg\" alt=\"Cryptid - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCryptid - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Cryptid in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/020e91cd46863e254cdbbb38e289ad65cf0ea664.jpg\" alt=\"Fisherman - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFisherman - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Fisherman in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/a850acdbdefd3eb6c956e206eb572ccec59afe2f.jpg\" alt=\"Golem - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGolem - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Golem in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/c4ccd2421972053a725dc8fdbc8e451aeba12a4e.jpg\" alt=\"King - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with King in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/9421d8d18527ad308151597dc58988d04b537e05.jpg\" alt=\"Renegade - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRenegade - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Renegade in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/4c77a64a31f6b637c7fa4f017bf5ffa2b4190f6c.jpg\" alt=\"Vampire - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVampire - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Vampire in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/865aace050d87f025eb4800f1fdeb6c071db0564.jpg\" alt=\"Vagabond - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVagabond - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Vagabond in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/cbf228e6b94370fe3eb03c5fb1cb5fa64e491094.jpg\" alt=\"Baby - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBaby - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Baby in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/585ad7b53bb2bd19fc981a1bf6a25031e1ae2ed3.jpg\" alt=\"Blood Drinker\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlood Drinker\u003c/strong\u003e\u003cbr\u003e\n    Reach 40 % Life Steal\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/e46948dec887f189d56e86b0e2625acf3abdf426.jpg\" alt=\"Experimentation\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExperimentation\u003c/strong\u003e\u003cbr\u003e\n    Have 6 different weapons at once\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/2ac16e2e430182935efe57b58770782709107fe1.jpg\" alt=\"Fast Learner\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFast Learner\u003c/strong\u003e\u003cbr\u003e\n    Reach level 10 before wave 6\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/0b368ea79c66b42e3dbf5cd77f148f8e2baa9a32.jpg\" alt=\"Magic and Machinery\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMagic and Machinery\u003c/strong\u003e\u003cbr\u003e\n    Reach 10 Elemental Damage and get 3 structures at the same time\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/67cfcf797532f3df8e624414b07d56ee692c0c1b.jpg\" alt=\"Technomage - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTechnomage - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Technomage in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/2673d7b579d884200aabcbcf9ea27920de0b2c75.jpg\" alt=\"Barbecue\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBarbecue\u003c/strong\u003e\u003cbr\u003e\n    Have at least 25 enemies burning at the same time\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/439b9fc55150d0c6db8707aabcf86b9bdbcca5a3.jpg\" alt=\"Blind Greed\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlind Greed\u003c/strong\u003e\u003cbr\u003e\n    Reach 100 % Pickup Range\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/d47106c829e1fefddc1c077ed7bf785d6ae793b8.jpg\" alt=\"Buccaneer - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBuccaneer - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Buccaneer in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/8cfe48894a6c107909eac91c2d05860792270f50.jpg\" alt=\"Builder - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBuilder - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Builder in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/83d35166e8fd2e9eb57509516f5eaa391dc619e0.jpg\" alt=\"Captain - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCaptain - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Captain in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/fc3a10c20481a576394605589e6521ed47bd2c4a.jpg\" alt=\"Cautious\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCautious\u003c/strong\u003e\u003cbr\u003e\n    Kill 1000 enemies that are more than 700 range away from you\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/ef5b1ae150a26d9fdbf6bf0000fd0f653967f35a.jpg\" alt=\"Chef - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChef - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Chef in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/08388c7d884a6093e501c589935095008e571dd3.jpg\" alt=\"Creature - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCreature - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Creature in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/1e26f9216b525877ccec3c5d56c69c367413dfab.jpg\" alt=\"Curious - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCurious - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Curious in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/5618dd637ebab2b8ede08d90403f617a4edf709d.jpg\" alt=\"Diver - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDiver - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Diver in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/a1708009adf6bee4da841c7face6ce791891747e.jpg\" alt=\"Druid - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDruid - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Druid in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/139a8b5bb4bef60e0064bdc7fd2c54e84ddc3289.jpg\" alt=\"Dwarf - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDwarf - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Dwarf in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/14d94e38c61912771307734a2bcff5ad8461e807.jpg\" alt=\"Gangster - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGangster - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Gangster in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/b9211c40b7f587df09fe62cf6fc4cf101578439b.jpg\" alt=\"Herbalist\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHerbalist\u003c/strong\u003e\u003cbr\u003e\n    Collect 250 consumables by the end of wave 20\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/014c82e9db211ffe315ceb18ad2bb8a5a734ff11.jpg\" alt=\"Hiker - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHiker - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Hiker in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/33a732daba2a0154705af93da9d1f75731fd9bf6.jpg\" alt=\"Ogre - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOgre - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Ogre in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/14d61315b9d75268979a13e63cd20e701a35b6cc.jpg\" alt=\"Overkill\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOverkill\u003c/strong\u003e\u003cbr\u003e\n    Deal 1000 damage to an enemy in a single hit\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/04ab1a4fb33f127fe3b886878aba14909eac493e.jpg\" alt=\"Romantic - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRomantic - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Romantic in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/acac8b2a90fb117f415421ba00f24c0326260160.jpg\" alt=\"Sailor - Crash Zone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSailor - Crash Zone\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Sailor in Crash Zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/32f1fa848093ba184df17cf9ceb4f088840e069a.jpg\" alt=\"Smelly Feet\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSmelly Feet\u003c/strong\u003e\u003cbr\u003e\n    Walk a total of 20000 steps\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/81aa3c62dc5b632ca0b5d8f72cec2f2a08ed6ba2.jpg\" alt=\"Uncorrupted\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUncorrupted\u003c/strong\u003e\u003cbr\u003e\n    Finish a run with 0 Curse\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/b4daf750fbc1932c49a0a425be406ad1c6e2c073.jpg\" alt=\"Unlucky\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUnlucky\u003c/strong\u003e\u003cbr\u003e\n    Reroll 10 times in a single shop\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/d231d01a654d4ac3bbba7d59d948e1939f8722c4.jpg\" alt=\"Unstoppable Force\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUnstoppable Force\u003c/strong\u003e\u003cbr\u003e\n    Hit at least 25 enemies with a single melee attack\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/9f8a012da7c3bb5ae18bf3aacc6cdf5041e525ef.jpg\" alt=\"Well-Rounded - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWell-Rounded - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Well-Rounded in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/891d11c7e0b08586d9f7eb9ba622fbca57d86278.jpg\" alt=\"Brawler - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBrawler - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Brawler in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/2efeda15284150d42a036204eab12cc375d2a8b8.jpg\" alt=\"Crazy - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCrazy - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Crazy in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/d31cd6b68ffeeaeb773a1ed313405b01a8df39c7.jpg\" alt=\"Ranger - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRanger - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Ranger in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/47a4ba3bc12b04701fb4bea9ad48a988fd51ecfe.jpg\" alt=\"Mage - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMage - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Mage in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/a4d934a02d33bd036276cec1b19fe41a1422d827.jpg\" alt=\"Chunky - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChunky - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Chunky in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/a0b12810aca9612b3472fb2f2baed96210623df1.jpg\" alt=\"Old - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOld - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Old in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/141d9da0501f5b7a7ca727b624ce89a6b317f532.jpg\" alt=\"Lucky - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLucky - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Lucky in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/d0d323f25cb25eef9ce77367f178dcf0052333ad.jpg\" alt=\"Mutant - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMutant - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Mutant in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/237622a5c22e3a06d8464d5fe8d4b3a10b25ff88.jpg\" alt=\"Generalist - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGeneralist - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Generalist in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/4813fbb1ffcd595595b3bd7f0f72b639842681d5.jpg\" alt=\"Loud - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLoud - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Loud in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/568c89bedc6493739837f6858020160cd8c88aec.jpg\" alt=\"Multitasker - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMultitasker - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Multitasker in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/c23b267af41d106b50e007b974fff99ebaaf77e8.jpg\" alt=\"Wildling - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWildling - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Wildling in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/33ba4b46864d4472cecd98a02cd9d864ebcc03b4.jpg\" alt=\"Pacifist - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePacifist - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Pacifist in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/a44527a7a5c755c6c726cd572d385b42e6e16595.jpg\" alt=\"Gladiator - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGladiator - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Gladiator in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/f188707143f54991d95ec96e7287176ae11100cf.jpg\" alt=\"Saver - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSaver - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Saver in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/062184078fce6e0097f1a2ed96013cc6956f1f26.jpg\" alt=\"Sick - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSick - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Sick in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/12c02ea1d82252bc03a183a629712a7b2e62a193.jpg\" alt=\"Farmer - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFarmer - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Farmer in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/f875a56662c371c551f347e123a488650615e6e5.jpg\" alt=\"Ghost - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGhost - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Ghost in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/0ef0a63d3b3dee0e6bd4c1b9853d3018273f2bec.jpg\" alt=\"Speedy - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpeedy - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Speedy in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/d10d2d8874e1184d22ea16fe7750d8a7c1bd1dc2.jpg\" alt=\"Entrepreneur - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEntrepreneur - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Entrepreneur in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/5ec745704acc30f29fe0321557083d5f5f2c3e64.jpg\" alt=\"Engineer - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEngineer - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Engineer in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/6cd13dd9e7b8fb0eeadc238b5b7b4980a92cc984.jpg\" alt=\"Explorer - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExplorer - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Explorer in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/8afdb0e534fd33b4111c1fd2aabb89f06d05c9d8.jpg\" alt=\"Doctor - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDoctor - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Doctor in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/306b65e9fbc638a6e59c08572f22ac1a005ca73b.jpg\" alt=\"Hunter - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHunter - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Hunter in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/3734da0993c1c2051146e3258ab4bf7d0b5b62c7.jpg\" alt=\"Artificer - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArtificer - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Artificer in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/e55ce03653c1212efce5a78a0deff4d2a8ec689f.jpg\" alt=\"Arms Dealer - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArms Dealer - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Arms Dealer in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/3ed08d403e510fdcd5e9cb06ef5da8f25c0a8c52.jpg\" alt=\"Streamer - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStreamer - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Streamer in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/2a343ecaea900cda733f090e204ff07812f7cf94.jpg\" alt=\"Cyborg - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCyborg - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Cyborg in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/a31aa34841c0d215f4029157f8d180907db2db8a.jpg\" alt=\"Glutton - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGlutton - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Glutton in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/5f53aa3551e50d9482752a33e800187f5c9751e6.jpg\" alt=\"Jack - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJack - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Jack in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/78c68813ba4bc28592a8e997bf28d8f611665eeb.jpg\" alt=\"Lich - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLich - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Lich in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/ce6b51d4d6f8b503b7f4acb8d9fd3ad7faf2c2e1.jpg\" alt=\"Apprentice - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eApprentice - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Apprentice in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/56be0124536ca125bf0d9af710e7f17c76613105.jpg\" alt=\"Cryptid - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCryptid - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Cryptid in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/42346d1727329e3e153a9bb264e84b2525dc4fa6.jpg\" alt=\"Fisherman - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFisherman - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Fisherman in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/80e5ad440d980b022cd5f978f0eaadeb9a88f571.jpg\" alt=\"Golem - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGolem - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Golem in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/6b0fe40d918d6ee5efc6bd25eb967c7299003baf.jpg\" alt=\"King - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with King in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/0da8761db2f8448cbc349257d6e093d3d22a72ab.jpg\" alt=\"Renegade - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRenegade - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Renegade in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/a17546dbd1abd13e0efa200d6b8433bc634fd1fd.jpg\" alt=\"One-Armed - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOne-Armed - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with One-Armed in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/ed463671fc388d3f44ca5cda942c7f013b73c2b9.jpg\" alt=\"Bull - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBull - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Bull in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/ef5b6f77d5c78f430e650520f62e37657d307c66.jpg\" alt=\"Soldier - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSoldier - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Soldier in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/113fcc13028fd00d9e8fe4c898894d2c1e97f286.jpg\" alt=\"Masochist - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMasochist - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Masochist in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/43837eb9c00215860fbedfd71ffb65f198cbda55.jpg\" alt=\"Knight - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKnight - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Knight in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/3b500f9ef0e8d1e0fd37125e942b4fa9c47d4436.jpg\" alt=\"Demon - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDemon - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Demon in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/21ce76be1f2194da2efa97a2468ea735a4181609.jpg\" alt=\"Baby - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBaby - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Baby in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/9bde9aef76ae1c4b18a116cb7564b62d02b2934e.jpg\" alt=\"Vagabond - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVagabond - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Vagabond in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/8670bc44a9c9e5ec650c9c7e316b8929d11fbee9.jpg\" alt=\"Technomage - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTechnomage - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Technomage in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/04e157925504c08b985dfc201b2508f7e19cc760.jpg\" alt=\"Vampire - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVampire - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Vampire in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/4e6010befa3c2d8a703bb45c971bc5a84d910b6f.jpg\" alt=\"Sailor - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSailor - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Sailor in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/2c8960f35fa6846695c83b11e96f4e6acc1cbbe5.jpg\" alt=\"Curious - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCurious - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Curious in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/1cd30e000dd522ef3553896334c61d4cdf24cf55.jpg\" alt=\"Builder - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBuilder - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Builder in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/3b17b67d8648f4f4514dae0ee39c74a65b232311.jpg\" alt=\"Captain - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCaptain - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Captain in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/159e8989988b8b98766dacbd350c8302c36319f1.jpg\" alt=\"Creature - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCreature - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Creature in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/cc3a18fc1ccebd275fb7b3ac8ff10ff65f9e34a4.jpg\" alt=\"Chef - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChef - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Chef in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/2562b46fdaf995faef3d1fc8372c8091d356f92d.jpg\" alt=\"Druid - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDruid - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Druid in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/f2244d72edf91a95158a43dad8ab643c6789807d.jpg\" alt=\"Dwarf - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDwarf - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Dwarf in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/11183e04c57626453f26d5794c02ff24bf8c6651.jpg\" alt=\"Gangster - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGangster - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Gangster in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/4e09684cc0ecee8d98c54ed38e355d0066ad0210.jpg\" alt=\"Diver - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDiver - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Diver in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/deb4d89bdd305e078933664324ef9f48e58eea74.jpg\" alt=\"Hiker - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHiker - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Hiker in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/9b2100809f416294340899523ae9aa21afd03345.jpg\" alt=\"Buccaneer - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBuccaneer - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Buccaneer in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/b84e49b8cdcf0569d0205125301196079bde8eb7.jpg\" alt=\"Ogre - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOgre - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Ogre in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1942280/6200dea57c433c0d691ea789322eb1f2b5d04764.jpg\" alt=\"Romantic - The Abyss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRomantic - The Abyss\u003c/strong\u003e\u003cbr\u003e\n    Win a run with Romantic in The Abyss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Brotato - 11.36% complete with 20/176 achievements unlocked.",
      "date_published": "2025-03-30T00:00:00Z",
      "date_modified": "2025-03-30T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "brotato"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/2025-nas/",
      "url": "https://go.waylonwalker.com/2025-nas/",
      "title": "2025-nas",
      "content_html": "\u003ch2 id=\"current-inventory\"\u003eCurrent inventory \u003ca href=\"#current-inventory\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSilverstone micro-atx case\n\u003cul\u003e\n\u003cli\u003e5 3.5\u0026#34; hot swap drive drive bays\u003c/li\u003e\n\u003cli\u003e2 3.5\u0026#34; 3.5\u0026#34; drive bays\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e2 Seagate 4TB 3.5\u0026#34; drive (trust worthy drives)\u003c/li\u003e\n\u003cli\u003e1 WD 3TB 3.5\u0026#34; (could be a trash drive for stuff that does not matter)\u003c/li\u003e\n\u003cli\u003eryzen 3300G\u003c/li\u003e\n\u003cli\u003e16gb Gskill Trident Z rgb ram\u003c/li\u003e\n\u003cli\u003e500GB nvme ssd - I have this installed in a machine I would like to keep there, but not hurt if I pulled it\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"dream-build\"\u003eDream Build \u003ca href=\"#dream-build\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e$169 seagate exos x16\n\u003ca href=\"https://serverpartdeals.com/collections/hard-drives/products/seagate-exos-x16-st14000nm005g-14tb-7-2k-rpm-sata-6gb-s-512e-cmr-3-5-refurbished-hdd\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://serverpartdeals.com/collections/hard-drives/products/seagate-exos-x16-st14000nm005g-14tb-7-2k-rpm-sata-6gb-s-512e-cmr-3-5-refurbished-hdd\u0026amp;height=450\u0026amp;width=800\u0026amp;scaled_width=800\u0026amp;scaled_height=450\u0026amp;selectors=\" alt=\"screenshot of https://serverpartdeals.com/collections/hard-drives/products/seagate-exos-x16-st14000nm005g-14tb-7-2k-rpm-sata-6gb-s-512e-cmr-3-5-refurbished-hdd\"/ data-glightbox=\"description: screenshot of https://serverpartdeals.com/collections/hard-drives/products/seagate-exos-x16-st14000nm005g-14tb-7-2k-rpm-sata-6gb-s-512e-cmr-3-5-refurbished-hdd\"\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e$79 motherboard ASUS Prime B450M-A II - has 6 sata ports\n\u003ca href=\"https://www.amazon.com/dp/B08KH12V25\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://www.amazon.com/dp/B08KH12V25\u0026amp;height=450\u0026amp;width=800\u0026amp;scaled_width=800\u0026amp;scaled_height=450\u0026amp;selectors=\" alt=\"screenshot of https://www.amazon.com/dp/B08KH12V25\"/ data-glightbox=\"description: screenshot of https://www.amazon.com/dp/B08KH12V25\"\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cdel\u003e$79 motherboard ASROCK B450M PRO4 R2.0\u003c/del\u003e only has 4 sata ports\n\u003ca href=\"https://www.amazon.com/ASROCK-B450M-PRO4-R2-0-Motherboard/dp/B09JM6QYG1/ref=sr_1_1?sr=8-1\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://www.amazon.com/ASROCK-B450M-PRO4-R2-0-Motherboard/dp/B09JM6QYG1/ref=sr_1_1?sr=8-1\u0026amp;height=450\u0026amp;width=800\u0026amp;scaled_width=800\u0026amp;scaled_height=450\u0026amp;selectors=\" alt=\"screenshot of https://www.amazon.com/ASROCK-B450M-PRO4-R2-0-Motherboard/dp/B09JM6QYG1/ref=sr_1_1?sr=8-1\"/ data-glightbox=\"description: screenshot of https://www.amazon.com/ASROCK-B450M-PRO4-R2-0-Motherboard/dp/B09JM6QYG1/ref=sr_1_1?sr=8-1\"\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e$85 power supply CORSAIR RM650\n\u003ca href=\"https://www.amazon.com/CORSAIR-RM650-Modular-Low-Noise-Supply/dp/B0CQN16G8Z/ref=sr_1_4?sr=8-4\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://www.amazon.com/CORSAIR-RM650-Modular-Low-Noise-Supply/dp/B0CQN16G8Z/ref=sr_1_4?sr=8-4\u0026amp;height=450\u0026amp;width=800\u0026amp;scaled_width=800\u0026amp;scaled_height=450\u0026amp;selectors=\" alt=\"screenshot of https://www.amazon.com/CORSAIR-RM650-Modular-Low-Noise-Supply/dp/B0CQN16G8Z/ref=sr_1_4?sr=8-4\"/ data-glightbox=\"description: screenshot of https://www.amazon.com/CORSAIR-RM650-Modular-Low-Noise-Supply/dp/B0CQN16G8Z/ref=sr_1_4?sr=8-4\"\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e$89 Crucial 64GB ram\n\u003ca href=\"https://www.amazon.com/Crucial-3200MT-3000MT-Desktop-CP2K32G4DFRA32A/dp/B0C29W4G29/ref=sr_1_3?sr=8-3\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://www.amazon.com/Crucial-3200MT-3000MT-Desktop-CP2K32G4DFRA32A/dp/B0C29W4G29/ref=sr_1_3?sr=8-3\u0026amp;height=450\u0026amp;width=800\u0026amp;scaled_width=800\u0026amp;scaled_height=450\u0026amp;selectors=\" alt=\"screenshot of https://www.amazon.com/Crucial-3200MT-3000MT-Desktop-CP2K32G4DFRA32A/dp/B0C29W4G29/ref=sr_1_3?sr=8-3\"/ data-glightbox=\"description: screenshot of https://www.amazon.com/Crucial-3200MT-3000MT-Desktop-CP2K32G4DFRA32A/dp/B0C29W4G29/ref=sr_1_3?sr=8-3\"\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e$89 2TB nvme\n\u003ca href=\"https://www.amazon.com/Silicon-Power-Gen3x4-Solid-SP002TBP34A60M28/dp/B07ZQ97H3W/ref=sr_1_4?sr=8-4\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://www.amazon.com/Silicon-Power-Gen3x4-Solid-SP002TBP34A60M28/dp/B07ZQ97H3W/ref=sr_1_4?sr=8-4\u0026amp;height=450\u0026amp;width=800\u0026amp;scaled_width=800\u0026amp;scaled_height=450\u0026amp;selectors=\" alt=\"screenshot of https://www.amazon.com/Silicon-Power-Gen3x4-Solid-SP002TBP34A60M28/dp/B07ZQ97H3W/ref=sr_1_4?sr=8-4\"/ data-glightbox=\"description: screenshot of https://www.amazon.com/Silicon-Power-Gen3x4-Solid-SP002TBP34A60M28/dp/B07ZQ97H3W/ref=sr_1_4?sr=8-4\"\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"4-16tb-drive-option\"\u003e4 16TB drive option \u003ca href=\"#4-16tb-drive-option\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003e169*4 + 79 + 85 + 89 + 89\n= $1018\u003c/p\u003e\n\u003ch3 id=\"2-16tb-drive-option\"\u003e2 16TB drive option \u003ca href=\"#2-16tb-drive-option\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003e169*2 + 79 + 85 + 89 + 89\n= $680\u003c/p\u003e\n\u003ch3 id=\"only-2-4tb-drive\"\u003eonly 2 4TB drive \u003ca href=\"#only-2-4tb-drive\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003e79 + 85 + 89 + 89\n= $342\u003c/p\u003e\n\u003ch3 id=\"2-16tb-drive---16gb-ram\"\u003e2 16TB drive - 16GB RAM \u003ca href=\"#2-16tb-drive---16gb-ram\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eI think this is my option I’m leaning towards, good modular power supply, 500GB nvme from budget list.\u003c/p\u003e\n\u003cp\u003e169*2 + 79 + 85 + 30\n= $532\u003c/p\u003e\n\u003cp\u003eusing my existing 500Gb nvme drive\u003c/p\u003e\n\u003cp\u003e169*2 + 79 + 85\n= $502\u003c/p\u003e\n\u003cp\u003eusing only existing 4TB drives\u003c/p\u003e\n\u003cp\u003e79 + 85\n= $164\u003c/p\u003e\n\u003ch2 id=\"budget-friendly-build\"\u003eBudget friendly build \u003ca href=\"#budget-friendly-build\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e$169 seagate exos x16\n\u003ca href=\"https://serverpartdeals.com/collections/hard-drives/products/seagate-exos-x16-st14000nm005g-14tb-7-2k-rpm-sata-6gb-s-512e-cmr-3-5-refurbished-hdd\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://serverpartdeals.com/collections/hard-drives/products/seagate-exos-x16-st14000nm005g-14tb-7-2k-rpm-sata-6gb-s-512e-cmr-3-5-refurbished-hdd\u0026amp;height=450\u0026amp;width=800\u0026amp;scaled_width=800\u0026amp;scaled_height=450\u0026amp;selectors=\" alt=\"screenshot of https://serverpartdeals.com/collections/hard-drives/products/seagate-exos-x16-st14000nm005g-14tb-7-2k-rpm-sata-6gb-s-512e-cmr-3-5-refurbished-hdd\"/ data-glightbox=\"description: screenshot of https://serverpartdeals.com/collections/hard-drives/products/seagate-exos-x16-st14000nm005g-14tb-7-2k-rpm-sata-6gb-s-512e-cmr-3-5-refurbished-hdd\"\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e$79 motherboard ASUS Prime B450M-A II - has 6 sata ports\n\u003ca href=\"https://www.amazon.com/dp/B08KH12V25\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://www.amazon.com/dp/B08KH12V25\u0026amp;height=450\u0026amp;width=800\u0026amp;scaled_width=800\u0026amp;scaled_height=450\u0026amp;selectors=\" alt=\"screenshot of https://www.amazon.com/dp/B08KH12V25\"/ data-glightbox=\"description: screenshot of https://www.amazon.com/dp/B08KH12V25\"\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cdel\u003e$79 motherboard ASROCK B450M PRO4 R2.0\u003c/del\u003e only has 4 sata ports\n\u003ca href=\"https://www.amazon.com/ASROCK-B450M-PRO4-R2-0-Motherboard/dp/B09JM6QYG1/ref=sr_1_1?sr=8-1\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://www.amazon.com/ASROCK-B450M-PRO4-R2-0-Motherboard/dp/B09JM6QYG1/ref=sr_1_1?sr=8-1\u0026amp;height=450\u0026amp;width=800\u0026amp;scaled_width=800\u0026amp;scaled_height=450\u0026amp;selectors=\" alt=\"screenshot of https://www.amazon.com/ASROCK-B450M-PRO4-R2-0-Motherboard/dp/B09JM6QYG1/ref=sr_1_1?sr=8-1\"/ data-glightbox=\"description: screenshot of https://www.amazon.com/ASROCK-B450M-PRO4-R2-0-Motherboard/dp/B09JM6QYG1/ref=sr_1_1?sr=8-1\"\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e$60 power supply CORSAIR CX550 - non modular\n\u003ca href=\"https://www.amazon.com/CORSAIR-Bronze-Modular-Low-Noise-Supply/dp/B0CQMQY2V2/ref=sr_1_1?sr=8-1\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://www.amazon.com/CORSAIR-Bronze-Modular-Low-Noise-Supply/dp/B0CQMQY2V2/ref=sr_1_1?sr=8-1\u0026amp;height=450\u0026amp;width=800\u0026amp;scaled_width=800\u0026amp;scaled_height=450\u0026amp;selectors=\" alt=\"screenshot of https://www.amazon.com/CORSAIR-Bronze-Modular-Low-Noise-Supply/dp/B0CQMQY2V2/ref=sr_1_1?sr=8-1\"/ data-glightbox=\"description: screenshot of https://www.amazon.com/CORSAIR-Bronze-Modular-Low-Noise-Supply/dp/B0CQMQY2V2/ref=sr_1_1?sr=8-1\"\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e$50 Crucial 32GB ram\n\u003ca href=\"https://www.amazon.com/Crucial-3200MT-3000MT-Desktop-CP2K32G4DFRA32A/dp/B0C29R9LNL/ref=sr_1_3?sr=8-3\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://www.amazon.com/Crucial-3200MT-3000MT-Desktop-CP2K32G4DFRA32A/dp/B0C29R9LNL/ref=sr_1_3?sr=8-3\u0026amp;height=450\u0026amp;width=800\u0026amp;scaled_width=800\u0026amp;scaled_height=450\u0026amp;selectors=\" alt=\"screenshot of https://www.amazon.com/Crucial-3200MT-3000MT-Desktop-CP2K32G4DFRA32A/dp/B0C29R9LNL/ref=sr_1_3?sr=8-3\"/ data-glightbox=\"description: screenshot of https://www.amazon.com/Crucial-3200MT-3000MT-Desktop-CP2K32G4DFRA32A/dp/B0C29R9LNL/ref=sr_1_3?sr=8-3\"\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e$30 512GB nvme\n\u003ca href=\"https://www.amazon.com/Silicon-Power-Gen3x4-Solid-SP002TBP34A60M28/dp/B07ZGJYLNL/ref=sr_1_4?sr=8-4\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://www.amazon.com/Silicon-Power-Gen3x4-Solid-SP002TBP34A60M28/dp/B07ZGJYLNL/ref=sr_1_4?sr=8-4\u0026amp;height=450\u0026amp;width=800\u0026amp;scaled_width=800\u0026amp;scaled_height=450\u0026amp;selectors=\" alt=\"screenshot of https://www.amazon.com/Silicon-Power-Gen3x4-Solid-SP002TBP34A60M28/dp/B07ZGJYLNL/ref=sr_1_4?sr=8-4\"/ data-glightbox=\"description: screenshot of https://www.amazon.com/Silicon-Power-Gen3x4-Solid-SP002TBP34A60M28/dp/B07ZGJYLNL/ref=sr_1_4?sr=8-4\"\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e$29 cooler master 212 Black\n\u003ca href=\"https://www.amazon.com/Cooler-Master-Silencio-Anodized-Gun-Metal/dp/B07H25DYM3/ref=sr_1_7?sr=8-7\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://www.amazon.com/Cooler-Master-Silencio-Anodized-Gun-Metal/dp/B07H25DYM3/ref=sr_1_7?sr=8-7\u0026amp;height=450\u0026amp;width=800\u0026amp;scaled_width=800\u0026amp;scaled_height=450\u0026amp;selectors=\" alt=\"screenshot of https://www.amazon.com/Cooler-Master-Silencio-Anodized-Gun-Metal/dp/B07H25DYM3/ref=sr_1_7?sr=8-7\"/ data-glightbox=\"description: screenshot of https://www.amazon.com/Cooler-Master-Silencio-Anodized-Gun-Metal/dp/B07H25DYM3/ref=sr_1_7?sr=8-7\"\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"2-16tb-drive-option-1\"\u003e2 16TB drive option \u003ca href=\"#2-16tb-drive-option-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003e169*2 + 79 + 60 + 30 + 50 + 29\n= $586\u003c/p\u003e\n\u003ch3 id=\"only-2-4tb-drive-1\"\u003eonly 2 4TB drive \u003ca href=\"#only-2-4tb-drive-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003e79 + 60 + 30 + 50 + 29\n= $248\u003c/p\u003e\n",
      "content_text": "\n\n## Current inventory\n\n* Silverstone micro-atx case\n  * 5 3.5\" hot swap drive drive bays\n  * 2 3.5\" 3.5\" drive bays\n* 2 Seagate 4TB 3.5\" drive (trust worthy drives)\n* 1 WD 3TB 3.5\" (could be a trash drive for stuff that does not matter)\n* ryzen 3300G\n* 16gb Gskill Trident Z rgb ram\n* 500GB nvme ssd - I have this installed in a machine I would like to keep there, but not hurt if I pulled it\n\n## Dream Build\n\n* $169 seagate exos x16\n  [![screenshot of https://serverpartdeals.com/collections/hard-drives/products/seagate-exos-x16-st14000nm005g-14tb-7-2k-rpm-sata-6gb-s-512e-cmr-3-5-refurbished-hdd](https://shots.waylonwalker.com/shot/?url=https://serverpartdeals.com/collections/hard-drives/products/seagate-exos-x16-st14000nm005g-14tb-7-2k-rpm-sata-6gb-s-512e-cmr-3-5-refurbished-hdd\u0026height=450\u0026width=800\u0026scaled_width=800\u0026scaled_height=450\u0026selectors=)](https://serverpartdeals.com/collections/hard-drives/products/seagate-exos-x16-st14000nm005g-14tb-7-2k-rpm-sata-6gb-s-512e-cmr-3-5-refurbished-hdd)\n* $79 motherboard ASUS Prime B450M-A II - has 6 sata ports\n  [![screenshot of https://www.amazon.com/dp/B08KH12V25](https://shots.waylonwalker.com/shot/?url=https://www.amazon.com/dp/B08KH12V25\u0026height=450\u0026width=800\u0026scaled_width=800\u0026scaled_height=450\u0026selectors=)](https://www.amazon.com/dp/B08KH12V25)\n* ~$79 motherboard ASROCK B450M PRO4 R2.0~ only has 4 sata ports\n  [![screenshot of https://www.amazon.com/ASROCK-B450M-PRO4-R2-0-Motherboard/dp/B09JM6QYG1/ref=sr_1_1?sr=8-1](https://shots.waylonwalker.com/shot/?url=https://www.amazon.com/ASROCK-B450M-PRO4-R2-0-Motherboard/dp/B09JM6QYG1/ref=sr_1_1?sr=8-1\u0026height=450\u0026width=800\u0026scaled_width=800\u0026scaled_height=450\u0026selectors=)](https://www.amazon.com/ASROCK-B450M-PRO4-R2-0-Motherboard/dp/B09JM6QYG1/ref=sr_1_1?sr=8-1)\n* $85 power supply CORSAIR RM650\n  [![screenshot of https://www.amazon.com/CORSAIR-RM650-Modular-Low-Noise-Supply/dp/B0CQN16G8Z/ref=sr_1_4?sr=8-4](https://shots.waylonwalker.com/shot/?url=https://www.amazon.com/CORSAIR-RM650-Modular-Low-Noise-Supply/dp/B0CQN16G8Z/ref=sr_1_4?sr=8-4\u0026height=450\u0026width=800\u0026scaled_width=800\u0026scaled_height=450\u0026selectors=)](https://www.amazon.com/CORSAIR-RM650-Modular-Low-Noise-Supply/dp/B0CQN16G8Z/ref=sr_1_4?sr=8-4)\n* $89 Crucial 64GB ram\n  [![screenshot of https://www.amazon.com/Crucial-3200MT-3000MT-Desktop-CP2K32G4DFRA32A/dp/B0C29W4G29/ref=sr_1_3?sr=8-3](https://shots.waylonwalker.com/shot/?url=https://www.amazon.com/Crucial-3200MT-3000MT-Desktop-CP2K32G4DFRA32A/dp/B0C29W4G29/ref=sr_1_3?sr=8-3\u0026height=450\u0026width=800\u0026scaled_width=800\u0026scaled_height=450\u0026selectors=)](https://www.amazon.com/Crucial-3200MT-3000MT-Desktop-CP2K32G4DFRA32A/dp/B0C29W4G29/ref=sr_1_3?sr=8-3)\n* $89 2TB nvme\n  [![screenshot of https://www.amazon.com/Silicon-Power-Gen3x4-Solid-SP002TBP34A60M28/dp/B07ZQ97H3W/ref=sr_1_4?sr=8-4](https://shots.waylonwalker.com/shot/?url=https://www.amazon.com/Silicon-Power-Gen3x4-Solid-SP002TBP34A60M28/dp/B07ZQ97H3W/ref=sr_1_4?sr=8-4\u0026height=450\u0026width=800\u0026scaled_width=800\u0026scaled_height=450\u0026selectors=)](https://www.amazon.com/Silicon-Power-Gen3x4-Solid-SP002TBP34A60M28/dp/B07ZQ97H3W/ref=sr_1_4?sr=8-4)\n\n### 4 16TB drive option\n\n169*4 + 79 + 85 + 89 + 89\n= $1018\n\n### 2 16TB drive option\n\n169*2 + 79 + 85 + 89 + 89\n= $680\n\n### only 2 4TB drive\n\n79 + 85 + 89 + 89\n= $342\n\n### 2 16TB drive - 16GB RAM\n\nI think this is my option I'm leaning towards, good modular power supply, 500GB nvme from budget list.\n\n169*2 + 79 + 85 + 30\n= $532\n\nusing my existing 500Gb nvme drive\n\n169*2 + 79 + 85\n= $502\n\nusing only existing 4TB drives\n\n79 + 85\n= $164\n\n## Budget friendly build\n\n* $169 seagate exos x16\n  [![screenshot of https://serverpartdeals.com/collections/hard-drives/products/seagate-exos-x16-st14000nm005g-14tb-7-2k-rpm-sata-6gb-s-512e-cmr-3-5-refurbished-hdd](https://shots.waylonwalker.com/shot/?url=https://serverpartdeals.com/collections/hard-drives/products/seagate-exos-x16-st14000nm005g-14tb-7-2k-rpm-sata-6gb-s-512e-cmr-3-5-refurbished-hdd\u0026height=450\u0026width=800\u0026scaled_width=800\u0026scaled_height=450\u0026selectors=)](https://serverpartdeals.com/collections/hard-drives/products/seagate-exos-x16-st14000nm005g-14tb-7-2k-rpm-sata-6gb-s-512e-cmr-3-5-refurbished-hdd)\n* $79 motherboard ASUS Prime B450M-A II - has 6 sata ports\n  [![screenshot of https://www.amazon.com/dp/B08KH12V25](https://shots.waylonwalker.com/shot/?url=https://www.amazon.com/dp/B08KH12V25\u0026height=450\u0026width=800\u0026scaled_width=800\u0026scaled_height=450\u0026selectors=)](https://www.amazon.com/dp/B08KH12V25)\n* ~$79 motherboard ASROCK B450M PRO4 R2.0~ only has 4 sata ports\n  [![screenshot of https://www.amazon.com/ASROCK-B450M-PRO4-R2-0-Motherboard/dp/B09JM6QYG1/ref=sr_1_1?sr=8-1](https://shots.waylonwalker.com/shot/?url=https://www.amazon.com/ASROCK-B450M-PRO4-R2-0-Motherboard/dp/B09JM6QYG1/ref=sr_1_1?sr=8-1\u0026height=450\u0026width=800\u0026scaled_width=800\u0026scaled_height=450\u0026selectors=)](https://www.amazon.com/ASROCK-B450M-PRO4-R2-0-Motherboard/dp/B09JM6QYG1/ref=sr_1_1?sr=8-1)\n* $60 power supply CORSAIR CX550 - non modular\n  [![screenshot of https://www.amazon.com/CORSAIR-Bronze-Modular-Low-Noise-Supply/dp/B0CQMQY2V2/ref=sr_1_1?sr=8-1](https://shots.waylonwalker.com/shot/?url=https://www.amazon.com/CORSAIR-Bronze-Modular-Low-Noise-Supply/dp/B0CQMQY2V2/ref=sr_1_1?sr=8-1\u0026height=450\u0026width=800\u0026scaled_width=800\u0026scaled_height=450\u0026selectors=)](https://www.amazon.com/CORSAIR-Bronze-Modular-Low-Noise-Supply/dp/B0CQMQY2V2/ref=sr_1_1?sr=8-1)\n* $50 Crucial 32GB ram\n  [![screenshot of https://www.amazon.com/Crucial-3200MT-3000MT-Desktop-CP2K32G4DFRA32A/dp/B0C29R9LNL/ref=sr_1_3?sr=8-3](https://shots.waylonwalker.com/shot/?url=https://www.amazon.com/Crucial-3200MT-3000MT-Desktop-CP2K32G4DFRA32A/dp/B0C29R9LNL/ref=sr_1_3?sr=8-3\u0026height=450\u0026width=800\u0026scaled_width=800\u0026scaled_height=450\u0026selectors=)](https://www.amazon.com/Crucial-3200MT-3000MT-Desktop-CP2K32G4DFRA32A/dp/B0C29R9LNL/ref=sr_1_3?sr=8-3)\n* $30 512GB nvme\n  [![screenshot of https://www.amazon.com/Silicon-Power-Gen3x4-Solid-SP002TBP34A60M28/dp/B07ZGJYLNL/ref=sr_1_4?sr=8-4](https://shots.waylonwalker.com/shot/?url=https://www.amazon.com/Silicon-Power-Gen3x4-Solid-SP002TBP34A60M28/dp/B07ZGJYLNL/ref=sr_1_4?sr=8-4\u0026height=450\u0026width=800\u0026scaled_width=800\u0026scaled_height=450\u0026selectors=)](https://www.amazon.com/Silicon-Power-Gen3x4-Solid-SP002TBP34A60M28/dp/B07ZGJYLNL/ref=sr_1_4?sr=8-4)\n* $29 cooler master 212 Black\n  [![screenshot of https://www.amazon.com/Cooler-Master-Silencio-Anodized-Gun-Metal/dp/B07H25DYM3/ref=sr_1_7?sr=8-7](https://shots.waylonwalker.com/shot/?url=https://www.amazon.com/Cooler-Master-Silencio-Anodized-Gun-Metal/dp/B07H25DYM3/ref=sr_1_7?sr=8-7\u0026height=450\u0026width=800\u0026scaled_width=800\u0026scaled_height=450\u0026selectors=)](https://www.amazon.com/Cooler-Master-Silencio-Anodized-Gun-Metal/dp/B07H25DYM3/ref=sr_1_7?sr=8-7)\n\n### 2 16TB drive option\n\n169*2 + 79 + 60 + 30 + 50 + 29\n= $586\n\n### only 2 4TB drive\n\n79 + 60 + 30 + 50 + 29\n= $248\n",
      "summary": "5 3.5\" hot swap drive drive bays * 2 Seagate 4TB 3.5\" drive (trust worthy drives) * ryzen 3300G * 500GB nvme ssd - I have this installed in a machine I would...",
      "date_published": "2025-03-04T15:13:06Z",
      "date_modified": "2025-03-04T15:13:06Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "homelab"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/raft/",
      "url": "https://go.waylonwalker.com/steam/raft/",
      "title": "Raft",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/648800/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/648800/library_600x900.jpg\" alt=\"Raft box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/648800/header.jpg\u0026#39;\"/ data-glightbox=\"description: Raft box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eRaft\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 19.23%\"\u003e\n        19.23%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e20/104 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e120.3h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-01-26\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (20)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/5736d279ef6a7dd455665e41c7d28655375efd6e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/5736d279ef6a7dd455665e41c7d28655375efd6e.jpg\" alt=\"Beginner Builder!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Beginner Builder!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeginner Builder!\u003c/strong\u003e\u003cbr/\u003e\n    Build 10 foundations.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 24, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/b75e3a0b192e3303aafc6ee14f1ee48050084e2d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/b75e3a0b192e3303aafc6ee14f1ee48050084e2d.jpg\" alt=\"Teamplay!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Teamplay!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTeamplay!\u003c/strong\u003e\u003cbr/\u003e\n    Team up with a friend in multiplayer.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 03, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/a062114af753a3acdb2574f54236bb2aedc9aea9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/a062114af753a3acdb2574f54236bb2aedc9aea9.jpg\" alt=\"Dinnertime!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Dinnertime!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDinnertime!\u003c/strong\u003e\u003cbr/\u003e\n    Craft and place a simple grill.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 24, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/9e95ebc07776295682c20d3d5f50be6c9d1346ae.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/9e95ebc07776295682c20d3d5f50be6c9d1346ae.jpg\" alt=\"It\u0026#39;s Better Without The Salt.\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: It\u0026#39;s Better Without The Salt.\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt\u0026#39;s Better Without The Salt.\u003c/strong\u003e\u003cbr/\u003e\n    Craft and place a simple purifier.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 24, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/a4290bc88b97c598997dd7fb2154e677971f453c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/a4290bc88b97c598997dd7fb2154e677971f453c.jpg\" alt=\"Aye Aye Captain!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Aye Aye Captain!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAye Aye Captain!\u003c/strong\u003e\u003cbr/\u003e\n    Place a sail and a stationary anchor on the same raft.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 29, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/e502b2fd3d5054b76b26553641bd6af7f899871f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/e502b2fd3d5054b76b26553641bd6af7f899871f.jpg\" alt=\"Intermediate Builder!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Intermediate Builder!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIntermediate Builder!\u003c/strong\u003e\u003cbr/\u003e\n    Build 100 foundations.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 05, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/1febd4acad109ee809489828b11cfbca80e2473f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/1febd4acad109ee809489828b11cfbca80e2473f.jpg\" alt=\"Beginner Shark Hunter!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Beginner Shark Hunter!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeginner Shark Hunter!\u003c/strong\u003e\u003cbr/\u003e\n    Kill 1 shark.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 26, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/5da12354657e88f02460ccdda2a75830d294520c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/5da12354657e88f02460ccdda2a75830d294520c.jpg\" alt=\"Beginner Gatherer!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Beginner Gatherer!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeginner Gatherer!\u003c/strong\u003e\u003cbr/\u003e\n    Hook 100 items.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 26, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/d72d06458856e2e19b4a221294c7c9de2048b0e2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/d72d06458856e2e19b4a221294c7c9de2048b0e2.jpg\" alt=\"Intermediate Gatherer!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Intermediate Gatherer!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIntermediate Gatherer!\u003c/strong\u003e\u003cbr/\u003e\n    Hook 500 items.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 21, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/980b66f66fe869498a6998ad1666212eeff3429b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/980b66f66fe869498a6998ad1666212eeff3429b.jpg\" alt=\"Beginner Bird Hunter!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Beginner Bird Hunter!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeginner Bird Hunter!\u003c/strong\u003e\u003cbr/\u003e\n    Kill 1 bird.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 08, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/e11e71a54f79a59ff408204c3891e57079f0e6f5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/e11e71a54f79a59ff408204c3891e57079f0e6f5.jpg\" alt=\"This Goes Here!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: This Goes Here!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThis Goes Here!\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 28, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/d69689068b1c5d99eccc77a7e4cd26ef1ad49007.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/d69689068b1c5d99eccc77a7e4cd26ef1ad49007.jpg\" alt=\"An Ocean Cemetery!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: An Ocean Cemetery!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAn Ocean Cemetery!\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 27, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/dafd7000f9e359725b4b84af4033c017e9996979.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/dafd7000f9e359725b4b84af4033c017e9996979.jpg\" alt=\"Exploring The depths!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Exploring The depths!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExploring The depths!\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 27, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/932e2512b22f9c2bb9eaaa4782d5b95eeef3dddb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/932e2512b22f9c2bb9eaaa4782d5b95eeef3dddb.jpg\" alt=\"Beginner Survivor!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Beginner Survivor!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeginner Survivor!\u003c/strong\u003e\u003cbr/\u003e\n    Survive 1 day.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 24, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/7af778292af2311972720d45d66c8d475809c394.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/7af778292af2311972720d45d66c8d475809c394.jpg\" alt=\"Intermediate Survivor!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Intermediate Survivor!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIntermediate Survivor!\u003c/strong\u003e\u003cbr/\u003e\n    Survive 7 days.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 25, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/91009567652d091bd9b1440d33bdcc3c023ac509.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/91009567652d091bd9b1440d33bdcc3c023ac509.jpg\" alt=\"Expert Survivor!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Expert Survivor!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert Survivor!\u003c/strong\u003e\u003cbr/\u003e\n    Survive 30 days.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 26, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/6fcf886e0c0244ccc542ce6687f1368e20fc70df.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/6fcf886e0c0244ccc542ce6687f1368e20fc70df.jpg\" alt=\"Beginner Poison-Puffer Hunter!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Beginner Poison-Puffer Hunter!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeginner Poison-Puffer Hunter!\u003c/strong\u003e\u003cbr/\u003e\n    Kill 1 Poison-puffer.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 26, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/7378b61f0a25511bb1c23ac4fe70c9221f58cc0b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/7378b61f0a25511bb1c23ac4fe70c9221f58cc0b.jpg\" alt=\"Large Landmass Ahoy!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Large Landmass Ahoy!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLarge Landmass Ahoy!\u003c/strong\u003e\u003cbr/\u003e\n    Discover a large island.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 25, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/f3f188117147249b4b5897593f8b31071cc28b95.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/f3f188117147249b4b5897593f8b31071cc28b95.jpg\" alt=\"Beginner Warthog Hunter!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Beginner Warthog Hunter!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeginner Warthog Hunter!\u003c/strong\u003e\u003cbr/\u003e\n    Kill 1 Warthog.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 08, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/7622ad7e6dea318193016f9c96a92a45a92c3bb0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/7622ad7e6dea318193016f9c96a92a45a92c3bb0.jpg\" alt=\"O Captain! My Captain!?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: O Captain! My Captain!?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eO Captain! My Captain!?\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: February 13, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (84)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/2f779d93fe91cac1913259bfe875eeb38d56c4f0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/2f779d93fe91cac1913259bfe875eeb38d56c4f0.jpg\" alt=\"Hoarder!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hoarder!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHoarder!\u003c/strong\u003e\u003cbr/\u003e\n    Have 20 storages on the same raft.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/0c785afd1e1972e24a2cadd86f90a364eabddaa8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/0c785afd1e1972e24a2cadd86f90a364eabddaa8.jpg\" alt=\"Farmer!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Farmer!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFarmer!\u003c/strong\u003e\u003cbr/\u003e\n    Have 20 cropplots on the same raft.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/9c6db081d26b90c697d3f83084a7968786916b52.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/9c6db081d26b90c697d3f83084a7968786916b52.jpg\" alt=\"Bookworm!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bookworm!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBookworm!\u003c/strong\u003e\u003cbr/\u003e\n    Research everything in the research table.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/13eef08f5a9bef2bbab7d154c1af69a5da1517ac.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/13eef08f5a9bef2bbab7d154c1af69a5da1517ac.jpg\" alt=\"Expert Builder!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Expert Builder!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert Builder!\u003c/strong\u003e\u003cbr/\u003e\n    Build 1000 foundations.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/5b08affd9f22917993615857e07ed41bfb93eaf1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/5b08affd9f22917993615857e07ed41bfb93eaf1.jpg\" alt=\"Intermediate Shark Hunter!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Intermediate Shark Hunter!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIntermediate Shark Hunter!\u003c/strong\u003e\u003cbr/\u003e\n    Kill 10 sharks.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/fdca2a4f32af1db2fcdb0e23acfa89c4c4300516.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/fdca2a4f32af1db2fcdb0e23acfa89c4c4300516.jpg\" alt=\"Expert Shark Hunter!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Expert Shark Hunter!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert Shark Hunter!\u003c/strong\u003e\u003cbr/\u003e\n    Kill 50 sharks.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/d8d9bb234865ee3622db37f4292485c8bb4dd039.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/d8d9bb234865ee3622db37f4292485c8bb4dd039.jpg\" alt=\"Expert Gatherer!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Expert Gatherer!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert Gatherer!\u003c/strong\u003e\u003cbr/\u003e\n    Hook 5000 items.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/16cbeaa0744b80e4251d7754c7d066aa834a5fc8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/16cbeaa0744b80e4251d7754c7d066aa834a5fc8.jpg\" alt=\"Intermediate Bird Hunter!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Intermediate Bird Hunter!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIntermediate Bird Hunter!\u003c/strong\u003e\u003cbr/\u003e\n    Kill 10 birds.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/0cfad289146a8099cddf0be4509b5c512c36f30a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/0cfad289146a8099cddf0be4509b5c512c36f30a.jpg\" alt=\"Expert Bird Hunter!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Expert Bird Hunter!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert Bird Hunter!\u003c/strong\u003e\u003cbr/\u003e\n    Kill 50 birds.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/ca7d0e99b2ae9eb454baf4ee7b6cae2f4e02ce26.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/ca7d0e99b2ae9eb454baf4ee7b6cae2f4e02ce26.jpg\" alt=\"Beginner Painter!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Beginner Painter!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeginner Painter!\u003c/strong\u003e\u003cbr/\u003e\n    Paint 50 blocks.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/0c2782a04fca8409ae1437a0fae182444b66560c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/0c2782a04fca8409ae1437a0fae182444b66560c.jpg\" alt=\"Intermediate Painter!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Intermediate Painter!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIntermediate Painter!\u003c/strong\u003e\u003cbr/\u003e\n    Paint 200 blocks.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/f2f71af8490eab985d7c8446d86ba9505ed0d6ef.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/f2f71af8490eab985d7c8446d86ba9505ed0d6ef.jpg\" alt=\"Expert Painter!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Expert Painter!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert Painter!\u003c/strong\u003e\u003cbr/\u003e\n    Paint 1000 blocks.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/fe9d3b37e073ba99d585ddc92f03021c5ca81d5b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/fe9d3b37e073ba99d585ddc92f03021c5ca81d5b.jpg\" alt=\"Is There A Utopia?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Is There A Utopia?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIs There A Utopia?\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/fb92995d36f40ca032156651c0db94e8c261422f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/fb92995d36f40ca032156651c0db94e8c261422f.jpg\" alt=\"Master Survivor!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Master Survivor!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaster Survivor!\u003c/strong\u003e\u003cbr/\u003e\n    Survive 365 days.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/b4ef121127892e8d9f426643ab3245159bd31ba7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/b4ef121127892e8d9f426643ab3245159bd31ba7.jpg\" alt=\"Intermediate Poison-Puffer Hunter!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Intermediate Poison-Puffer Hunter!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIntermediate Poison-Puffer Hunter!\u003c/strong\u003e\u003cbr/\u003e\n    Kill 10 Poison-puffers.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/7f860951345cf7651da84dd2c391ea2884fe39c9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/7f860951345cf7651da84dd2c391ea2884fe39c9.jpg\" alt=\"Expert Poison-Puffer Hunter!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Expert Poison-Puffer Hunter!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert Poison-Puffer Hunter!\u003c/strong\u003e\u003cbr/\u003e\n    Kill 50 Poison-puffers.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/36323d469ead63a63b03c48a6e61bcd3f8d3cbf1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/36323d469ead63a63b03c48a6e61bcd3f8d3cbf1.jpg\" alt=\"Beginner Screecher Hunter!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Beginner Screecher Hunter!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeginner Screecher Hunter!\u003c/strong\u003e\u003cbr/\u003e\n    Kill 1 Screecher.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/62f44737ef9659cced3a5d5d3f3a209d4467c517.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/62f44737ef9659cced3a5d5d3f3a209d4467c517.jpg\" alt=\"Intermediate Screecher Hunter!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Intermediate Screecher Hunter!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIntermediate Screecher Hunter!\u003c/strong\u003e\u003cbr/\u003e\n    Kill 10 Screechers.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/20eec4125f79031112e6d701d04fc330a4b40fe6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/20eec4125f79031112e6d701d04fc330a4b40fe6.jpg\" alt=\"Expert Screecher Hunter!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Expert Screecher Hunter!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert Screecher Hunter!\u003c/strong\u003e\u003cbr/\u003e\n    Kill 50 Screechers.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/df53290444ae62b930c35bc507738ee90d993d04.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/df53290444ae62b930c35bc507738ee90d993d04.jpg\" alt=\"Not A Great Landing!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Not A Great Landing!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNot A Great Landing!\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/95144559f4c8ca63303606551d9b0853a7ce7105.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/95144559f4c8ca63303606551d9b0853a7ce7105.jpg\" alt=\"A More Complex Concoction!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A More Complex Concoction!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA More Complex Concoction!\u003c/strong\u003e\u003cbr/\u003e\n    Cook a meal by following a recipe.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/25794504dbcfdfbaf33801d23ad0b1edf8927202.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/25794504dbcfdfbaf33801d23ad0b1edf8927202.jpg\" alt=\"Beginner Wrangler!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Beginner Wrangler!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeginner Wrangler!\u003c/strong\u003e\u003cbr/\u003e\n    Capture 1 animal.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/de2982e2a6aa06dc4564bec42de09d06fd8b09bf.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/de2982e2a6aa06dc4564bec42de09d06fd8b09bf.jpg\" alt=\"Intermediate Wrangler!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Intermediate Wrangler!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIntermediate Wrangler!\u003c/strong\u003e\u003cbr/\u003e\n    Capture 10 animals.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/38ac4edc91be062acafd1ab6200d8f3619362161.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/38ac4edc91be062acafd1ab6200d8f3619362161.jpg\" alt=\"Expert Wrangler!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Expert Wrangler!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert Wrangler!\u003c/strong\u003e\u003cbr/\u003e\n    Capture 50 animals.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/4d47c0c4627aaed976f0ca3d55a411fb31829b01.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/4d47c0c4627aaed976f0ca3d55a411fb31829b01.jpg\" alt=\"Some Look Different!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Some Look Different!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSome Look Different!\u003c/strong\u003e\u003cbr/\u003e\n    Capture a rare animal.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/4e332c5f90f86b9b553d60760d27368c3b3fa5e5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/4e332c5f90f86b9b553d60760d27368c3b3fa5e5.jpg\" alt=\"Intermediate Warthog Hunter!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Intermediate Warthog Hunter!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIntermediate Warthog Hunter!\u003c/strong\u003e\u003cbr/\u003e\n    Kill 10 Warthogs.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/3ba15a7f9d13d4707dddc05a1fb8cd5603042082.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/3ba15a7f9d13d4707dddc05a1fb8cd5603042082.jpg\" alt=\"Expert Warthog Hunter!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Expert Warthog Hunter!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert Warthog Hunter!\u003c/strong\u003e\u003cbr/\u003e\n    Kill 50 Warthogs.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/0048e45ac66e74ffcf64415348636e682ae7b016.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/0048e45ac66e74ffcf64415348636e682ae7b016.jpg\" alt=\"Mother Lode!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mother Lode!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMother Lode!\u003c/strong\u003e\u003cbr/\u003e\n    Slay the Mama Bear.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/ff2d9ed284ab3161f2a2de32a8340eb1fe8bf98c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/ff2d9ed284ab3161f2a2de32a8340eb1fe8bf98c.jpg\" alt=\"Pling!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Pling!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePling!\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/81c494c16346a25a3f55e56cb7505df1f5c94336.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/81c494c16346a25a3f55e56cb7505df1f5c94336.jpg\" alt=\"Fix Errol!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fix Errol!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFix Errol!\u003c/strong\u003e\u003cbr/\u003e\n    There you go, Errol.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/94a248db7246671de37db945e6316787a407d049.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/94a248db7246671de37db945e6316787a407d049.jpg\" alt=\"A Revelation!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Revelation!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Revelation!\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/50e419e762cf0927dc10972c4e38d6071cdfb76d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/50e419e762cf0927dc10972c4e38d6071cdfb76d.jpg\" alt=\"Tiny Little Murderer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tiny Little Murderer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTiny Little Murderer\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/bc2f60e066b781629e6289684c032bc2a59b968c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/bc2f60e066b781629e6289684c032bc2a59b968c.jpg\" alt=\"Radio Tower Historian!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Radio Tower Historian!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRadio Tower Historian!\u003c/strong\u003e\u003cbr/\u003e\n    Find all notes on the Radio Tower!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/d12c283bbd5431044197170ddae6733af98274d1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/d12c283bbd5431044197170ddae6733af98274d1.jpg\" alt=\"Vasagatan Historian!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Vasagatan Historian!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVasagatan Historian!\u003c/strong\u003e\u003cbr/\u003e\n    Find all notes on Vasagatan!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/d12c283bbd5431044197170ddae6733af98274d1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/d12c283bbd5431044197170ddae6733af98274d1.jpg\" alt=\"Balboa Historian!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Balboa Historian!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBalboa Historian!\u003c/strong\u003e\u003cbr/\u003e\n    Find all notes on Balboa!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/8f0c505b24d195c41e918a31ec745be7a9c820cf.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/8f0c505b24d195c41e918a31ec745be7a9c820cf.jpg\" alt=\"Bootleg Fireworks!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bootleg Fireworks!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBootleg Fireworks!\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/5fb77e1e04e68bba2bc4056192e804139fcdad60.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/5fb77e1e04e68bba2bc4056192e804139fcdad60.jpg\" alt=\"Beginner Lurker Hunter!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Beginner Lurker Hunter!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeginner Lurker Hunter!\u003c/strong\u003e\u003cbr/\u003e\n    Kill 1 Lurker.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/67c148d41a49d03ac27a6c79a6cb96d0cb423999.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/67c148d41a49d03ac27a6c79a6cb96d0cb423999.jpg\" alt=\"Intermediate Lurker Hunter!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Intermediate Lurker Hunter!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIntermediate Lurker Hunter!\u003c/strong\u003e\u003cbr/\u003e\n    Kill 10 Lurkers.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/35ff415129c0d3e2bf4576df658580aa015fc90b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/35ff415129c0d3e2bf4576df658580aa015fc90b.jpg\" alt=\"Expert Lurker Hunter!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Expert Lurker Hunter!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert Lurker Hunter!\u003c/strong\u003e\u003cbr/\u003e\n    Kill 50 Lurkers.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/24ba62e2ae5e1d13ad1d1922a0a0340b90fc055f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/24ba62e2ae5e1d13ad1d1922a0a0340b90fc055f.jpg\" alt=\"Beginner Bear Hunter!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Beginner Bear Hunter!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeginner Bear Hunter!\u003c/strong\u003e\u003cbr/\u003e\n    Kill 1 Bear.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/b4a4b2f5c408dba254f4d46f3f8caa04e3efaf94.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/b4a4b2f5c408dba254f4d46f3f8caa04e3efaf94.jpg\" alt=\"Intermediate Bear Hunter!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Intermediate Bear Hunter!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIntermediate Bear Hunter!\u003c/strong\u003e\u003cbr/\u003e\n    Kill 10 Bears.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/45098ab1f183ff3a1dcf4d1fe9a9fe13cb6a95f1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/45098ab1f183ff3a1dcf4d1fe9a9fe13cb6a95f1.jpg\" alt=\"Expert Bear Hunter!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Expert Bear Hunter!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert Bear Hunter!\u003c/strong\u003e\u003cbr/\u003e\n    Kill 50 Bears.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/199ace7d76e8e622d71630a96908f9eeecd83d48.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/199ace7d76e8e622d71630a96908f9eeecd83d48.jpg\" alt=\"Artistic Collection!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Artistic Collection!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArtistic Collection!\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/d12c283bbd5431044197170ddae6733af98274d1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/d12c283bbd5431044197170ddae6733af98274d1.jpg\" alt=\"Caravan Town Historian!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Caravan Town Historian!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCaravan Town Historian!\u003c/strong\u003e\u003cbr/\u003e\n    Find all notes on Caravan Town!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/bc2f60e066b781629e6289684c032bc2a59b968c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/bc2f60e066b781629e6289684c032bc2a59b968c.jpg\" alt=\"Tangaroa Historian! \" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tangaroa Historian!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTangaroa Historian! \u003c/strong\u003e\u003cbr/\u003e\n    Find all notes in Tangaroa!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/552226a489393001a7b800e98f66e3f4e9acfa5b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/552226a489393001a7b800e98f66e3f4e9acfa5b.jpg\" alt=\"Zip Zap!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Zip Zap!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eZip Zap!\u003c/strong\u003e\u003cbr/\u003e\n    Travel 50 meters on a zipline without disjointing.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/44d0bba53be32726f5c4488cee0512609cb57ece.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/44d0bba53be32726f5c4488cee0512609cb57ece.jpg\" alt=\"Beginner Ziponaut!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Beginner Ziponaut!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeginner Ziponaut!\u003c/strong\u003e\u003cbr/\u003e\n    Travel 100 meters with the zipline tool.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/3fbb74c0d2f46c17c28b0a71dbeaa639a4da0687.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/3fbb74c0d2f46c17c28b0a71dbeaa639a4da0687.jpg\" alt=\"Intermediate Ziponaut!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Intermediate Ziponaut!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIntermediate Ziponaut!\u003c/strong\u003e\u003cbr/\u003e\n    Travel 500 meters with the zipline tool.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/346e560184993685b28a1a9c55788f362dc57c65.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/346e560184993685b28a1a9c55788f362dc57c65.jpg\" alt=\"Expert Ziponaut!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Expert Ziponaut!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert Ziponaut!\u003c/strong\u003e\u003cbr/\u003e\n    Travel 1500 meters with the zipline tool.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/0d33085f14f2cf2ebfc0aa1fde8006f847340cae.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/0d33085f14f2cf2ebfc0aa1fde8006f847340cae.jpg\" alt=\"Beginner Excavator!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Beginner Excavator!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeginner Excavator!\u003c/strong\u003e\u003cbr/\u003e\n    Dig up a treasure.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/8494a07a7ba2da0eccaeb2c1f21ea106d0d99ecd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/8494a07a7ba2da0eccaeb2c1f21ea106d0d99ecd.jpg\" alt=\"Intermediate Excavator!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Intermediate Excavator!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIntermediate Excavator!\u003c/strong\u003e\u003cbr/\u003e\n    Dig up 20 treasures.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/b86ebfc2e11f994fcc6459836b3ded564a42c6fe.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/b86ebfc2e11f994fcc6459836b3ded564a42c6fe.jpg\" alt=\"Expert Excavator!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Expert Excavator!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert Excavator!\u003c/strong\u003e\u003cbr/\u003e\n    Dig up 50 treasures.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/c49c4e7d61d247c28890b613ed4398e41308acd0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/c49c4e7d61d247c28890b613ed4398e41308acd0.jpg\" alt=\"Former Glory!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Former Glory!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFormer Glory!\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/5d3302e038d9f30babe88837fcdb7f4ec92e785f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/5d3302e038d9f30babe88837fcdb7f4ec92e785f.jpg\" alt=\"Plumber Power!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Plumber Power!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePlumber Power!\u003c/strong\u003e\u003cbr/\u003e\n    Have 30 pipes placed at once.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/c8c11ee1b504ee05250e782d7c62e89a43b22177.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/c8c11ee1b504ee05250e782d7c62e89a43b22177.jpg\" alt=\"Bee Keeper!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bee Keeper!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBee Keeper!\u003c/strong\u003e\u003cbr/\u003e\n    Have 10 beehives placed at once.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/50fcb20221e6477b55baed97694e371b8fcfcf98.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/50fcb20221e6477b55baed97694e371b8fcfcf98.jpg\" alt=\"Beginner Bee-nevolent!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Beginner Bee-nevolent!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeginner Bee-nevolent!\u003c/strong\u003e\u003cbr/\u003e\n    Capture 1 bee.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/cf41d3b89cd34ec6dfe8214f14bbe94e57f2318b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/cf41d3b89cd34ec6dfe8214f14bbe94e57f2318b.jpg\" alt=\"Intermediate Bee-nevolent!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Intermediate Bee-nevolent!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIntermediate Bee-nevolent!\u003c/strong\u003e\u003cbr/\u003e\n    Capture 10 bees.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/e376b1a3d7ccf3d66d0bc21f433736488741b7e7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/e376b1a3d7ccf3d66d0bc21f433736488741b7e7.jpg\" alt=\"Expert Bee-nevolent!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Expert Bee-nevolent!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert Bee-nevolent!\u003c/strong\u003e\u003cbr/\u003e\n    Capture 25 bees.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/eb13c2125b3595b21eefe9659aa958da4a668f41.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/eb13c2125b3595b21eefe9659aa958da4a668f41.jpg\" alt=\"Boxed In!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Boxed In!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBoxed In!\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/33f7576351cba0131b8441ef23b08d100aa64364.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/33f7576351cba0131b8441ef23b08d100aa64364.jpg\" alt=\"Instrumentalist!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Instrumentalist!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInstrumentalist!\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/323f32fd1f377310a940298ff14f0ad0c51787e5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/323f32fd1f377310a940298ff14f0ad0c51787e5.jpg\" alt=\"Small Spender! \" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Small Spender!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSmall Spender! \u003c/strong\u003e\u003cbr/\u003e\n    Spend 10 tokens.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/54599989abbefeab648c4b1c88fb87a59a61f73b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/54599989abbefeab648c4b1c88fb87a59a61f73b.jpg\" alt=\"Medium Spender!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Medium Spender!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMedium Spender!\u003c/strong\u003e\u003cbr/\u003e\n    Spend 20 tokens.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/c44275b85fddf179dc017b5b6f4616776fde52c2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/c44275b85fddf179dc017b5b6f4616776fde52c2.jpg\" alt=\"Big Spender!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Big Spender!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBig Spender!\u003c/strong\u003e\u003cbr/\u003e\n    Spend 30 tokens.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/f96fb9c7829cd94a5b986636cd1fa2bfa0fc1a70.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/f96fb9c7829cd94a5b986636cd1fa2bfa0fc1a70.jpg\" alt=\"Beginner Disruptor!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Beginner Disruptor!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeginner Disruptor!\u003c/strong\u003e\u003cbr/\u003e\n    Disrupt 1 Butler-Bot.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/98468e57477dc49f5ebe7a79fb60cb579d173214.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/98468e57477dc49f5ebe7a79fb60cb579d173214.jpg\" alt=\"Intermediate Disruptor!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Intermediate Disruptor!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIntermediate Disruptor!\u003c/strong\u003e\u003cbr/\u003e\n    Disrupt 10 Butler-Bots.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/bd82d2251404282e708213993cf233a2094d07e8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/bd82d2251404282e708213993cf233a2094d07e8.jpg\" alt=\"Expert Disruptor!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Expert Disruptor!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert Disruptor!\u003c/strong\u003e\u003cbr/\u003e\n    Disrupt 20 Butler-Bots.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/5e6eca5fc2262a8ca86a8157f436613efc5a8269.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/5e6eca5fc2262a8ca86a8157f436613efc5a8269.jpg\" alt=\"Launch Initiated!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Launch Initiated!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLaunch Initiated!\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/aa2631369d41c5e8b9e383a701eca87e33a8c686.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/aa2631369d41c5e8b9e383a701eca87e33a8c686.jpg\" alt=\"Real Fireworks!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Real Fireworks!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eReal Fireworks!\u003c/strong\u003e\u003cbr/\u003e\n    Witness 50 firework explosions.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/29e90c565465cc95d34bec6735385d5c00e6f618.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/29e90c565465cc95d34bec6735385d5c00e6f618.jpg\" alt=\"You Should Not Be Here!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: You Should Not Be Here!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou Should Not Be Here!\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/fed566ea0df175543e5c78f73f687d5560d986b2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/fed566ea0df175543e5c78f73f687d5560d986b2.jpg\" alt=\"The Renovator!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Renovator!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Renovator!\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/2cb2cc49320dfbe8caf71fa461e290ce09bce933.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/2cb2cc49320dfbe8caf71fa461e290ce09bce933.jpg\" alt=\"Explosive Force!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Explosive Force!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExplosive Force!\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/39f3f41f533e8fedd7bae5300a3fa9b5c2dafa76.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/39f3f41f533e8fedd7bae5300a3fa9b5c2dafa76.jpg\" alt=\"Beginner Anglerfish Hunter!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Beginner Anglerfish Hunter!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeginner Anglerfish Hunter!\u003c/strong\u003e\u003cbr/\u003e\n    Kill 1 Anglerfish.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/3c62122e310e77422bc3fb52199f5a02083feb1b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/3c62122e310e77422bc3fb52199f5a02083feb1b.jpg\" alt=\"Intermediate Anglerfish Hunter!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Intermediate Anglerfish Hunter!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIntermediate Anglerfish Hunter!\u003c/strong\u003e\u003cbr/\u003e\n    Kill 10 Anglerfish.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/bd9e83797796ec7a9c6dba6846f581ac7e60a7c8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/bd9e83797796ec7a9c6dba6846f581ac7e60a7c8.jpg\" alt=\"Expert Anglerfish Hunter!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Expert Anglerfish Hunter!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert Anglerfish Hunter!\u003c/strong\u003e\u003cbr/\u003e\n    Kill 50 Anglerfish.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/4fdb9e3e694bf1c768f282fcab287e5932f57e3b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/4fdb9e3e694bf1c768f282fcab287e5932f57e3b.jpg\" alt=\"There Is A Utopia!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: There Is A Utopia!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThere Is A Utopia!\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/269e375602af70e5e8618651ab7c6f00133948c4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/269e375602af70e5e8618651ab7c6f00133948c4.jpg\" alt=\"All Aboard!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: All Aboard!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAll Aboard!\u003c/strong\u003e\u003cbr/\u003e\n    Unlock all playable characters.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/74ee9337c1e4850e0dd3ead9651b7c4ebea63d2c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/74ee9337c1e4850e0dd3ead9651b7c4ebea63d2c.jpg\" alt=\"Beginner Merchant!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Beginner Merchant!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeginner Merchant!\u003c/strong\u003e\u003cbr/\u003e\n    Purchase an item at a trading post.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/a188833085c5c2b77d2453d15b10fefa2568c280.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/a188833085c5c2b77d2453d15b10fefa2568c280.jpg\" alt=\"Intermediate Merchant!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Intermediate Merchant!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIntermediate Merchant!\u003c/strong\u003e\u003cbr/\u003e\n    Reach tier 2 in the trading post.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/6d31cf7a2700e57bc82fd151e98161197ca72590.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/6d31cf7a2700e57bc82fd151e98161197ca72590.jpg\" alt=\"Expert Merchant!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Expert Merchant!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert Merchant!\u003c/strong\u003e\u003cbr/\u003e\n    Reach tier 3 in the trading post.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/dbced4fecf66da04dafc22fae9a091535cdadf6b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/dbced4fecf66da04dafc22fae9a091535cdadf6b.jpg\" alt=\"Powered Up!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Powered Up!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePowered Up!\u003c/strong\u003e\u003cbr/\u003e\n    Have all buffs from meals and drinks active on you at the same time.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/706eea8a2dd183d2fea41776f2a0a2898b175312.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/706eea8a2dd183d2fea41776f2a0a2898b175312.jpg\" alt=\"That\u0026#39;s Not A Boat...\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: That\u0026#39;s Not A Boat...\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThat\u0026#39;s Not A Boat...\u003c/strong\u003e\u003cbr/\u003e\n    Drive a snowmobile into the sea.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/215aaec628f18f60389cc9c961a5fa435a6d854e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/215aaec628f18f60389cc9c961a5fa435a6d854e.jpg\" alt=\"Cache Collector!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cache Collector!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCache Collector!\u003c/strong\u003e\u003cbr/\u003e\n    Locate all Grabber caches on Varuna Point.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/d12c283bbd5431044197170ddae6733af98274d1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/d12c283bbd5431044197170ddae6733af98274d1.jpg\" alt=\"Varuna Point Historian!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Varuna Point Historian!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVaruna Point Historian!\u003c/strong\u003e\u003cbr/\u003e\n    Find all notes in Varuna Point.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/d12c283bbd5431044197170ddae6733af98274d1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/d12c283bbd5431044197170ddae6733af98274d1.jpg\" alt=\"Temperance Historian!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Temperance Historian!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTemperance Historian!\u003c/strong\u003e\u003cbr/\u003e\n    Find all notes in Temperance.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/648800/library_600x900.jpg\" alt=\"Raft box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/648800/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eRaft\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 19.23%\"\u003e\n        19.23%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e20/104 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e120.3h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-01-26\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (20)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/5736d279ef6a7dd455665e41c7d28655375efd6e.jpg\" alt=\"Beginner Builder!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeginner Builder!\u003c/strong\u003e\u003cbr\u003e\n    Build 10 foundations.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 24, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/b75e3a0b192e3303aafc6ee14f1ee48050084e2d.jpg\" alt=\"Teamplay!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTeamplay!\u003c/strong\u003e\u003cbr\u003e\n    Team up with a friend in multiplayer.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 03, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/a062114af753a3acdb2574f54236bb2aedc9aea9.jpg\" alt=\"Dinnertime!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDinnertime!\u003c/strong\u003e\u003cbr\u003e\n    Craft and place a simple grill.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 24, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/9e95ebc07776295682c20d3d5f50be6c9d1346ae.jpg\" alt=\"It's Better Without The Salt.\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt's Better Without The Salt.\u003c/strong\u003e\u003cbr\u003e\n    Craft and place a simple purifier.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 24, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/a4290bc88b97c598997dd7fb2154e677971f453c.jpg\" alt=\"Aye Aye Captain!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAye Aye Captain!\u003c/strong\u003e\u003cbr\u003e\n    Place a sail and a stationary anchor on the same raft.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 29, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/e502b2fd3d5054b76b26553641bd6af7f899871f.jpg\" alt=\"Intermediate Builder!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIntermediate Builder!\u003c/strong\u003e\u003cbr\u003e\n    Build 100 foundations.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 05, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/1febd4acad109ee809489828b11cfbca80e2473f.jpg\" alt=\"Beginner Shark Hunter!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeginner Shark Hunter!\u003c/strong\u003e\u003cbr\u003e\n    Kill 1 shark.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 26, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/5da12354657e88f02460ccdda2a75830d294520c.jpg\" alt=\"Beginner Gatherer!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeginner Gatherer!\u003c/strong\u003e\u003cbr\u003e\n    Hook 100 items.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 26, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/d72d06458856e2e19b4a221294c7c9de2048b0e2.jpg\" alt=\"Intermediate Gatherer!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIntermediate Gatherer!\u003c/strong\u003e\u003cbr\u003e\n    Hook 500 items.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 21, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/980b66f66fe869498a6998ad1666212eeff3429b.jpg\" alt=\"Beginner Bird Hunter!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeginner Bird Hunter!\u003c/strong\u003e\u003cbr\u003e\n    Kill 1 bird.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 08, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/e11e71a54f79a59ff408204c3891e57079f0e6f5.jpg\" alt=\"This Goes Here!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThis Goes Here!\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 28, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/d69689068b1c5d99eccc77a7e4cd26ef1ad49007.jpg\" alt=\"An Ocean Cemetery!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAn Ocean Cemetery!\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 27, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/dafd7000f9e359725b4b84af4033c017e9996979.jpg\" alt=\"Exploring The depths!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExploring The depths!\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 27, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/932e2512b22f9c2bb9eaaa4782d5b95eeef3dddb.jpg\" alt=\"Beginner Survivor!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeginner Survivor!\u003c/strong\u003e\u003cbr\u003e\n    Survive 1 day.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 24, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/7af778292af2311972720d45d66c8d475809c394.jpg\" alt=\"Intermediate Survivor!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIntermediate Survivor!\u003c/strong\u003e\u003cbr\u003e\n    Survive 7 days.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 25, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/91009567652d091bd9b1440d33bdcc3c023ac509.jpg\" alt=\"Expert Survivor!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert Survivor!\u003c/strong\u003e\u003cbr\u003e\n    Survive 30 days.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 26, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/6fcf886e0c0244ccc542ce6687f1368e20fc70df.jpg\" alt=\"Beginner Poison-Puffer Hunter!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeginner Poison-Puffer Hunter!\u003c/strong\u003e\u003cbr\u003e\n    Kill 1 Poison-puffer.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 26, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/7378b61f0a25511bb1c23ac4fe70c9221f58cc0b.jpg\" alt=\"Large Landmass Ahoy!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLarge Landmass Ahoy!\u003c/strong\u003e\u003cbr\u003e\n    Discover a large island.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 25, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/f3f188117147249b4b5897593f8b31071cc28b95.jpg\" alt=\"Beginner Warthog Hunter!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeginner Warthog Hunter!\u003c/strong\u003e\u003cbr\u003e\n    Kill 1 Warthog.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 08, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/7622ad7e6dea318193016f9c96a92a45a92c3bb0.jpg\" alt=\"O Captain! My Captain!?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eO Captain! My Captain!?\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: February 13, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (84)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/2f779d93fe91cac1913259bfe875eeb38d56c4f0.jpg\" alt=\"Hoarder!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHoarder!\u003c/strong\u003e\u003cbr\u003e\n    Have 20 storages on the same raft.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/0c785afd1e1972e24a2cadd86f90a364eabddaa8.jpg\" alt=\"Farmer!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFarmer!\u003c/strong\u003e\u003cbr\u003e\n    Have 20 cropplots on the same raft.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/9c6db081d26b90c697d3f83084a7968786916b52.jpg\" alt=\"Bookworm!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBookworm!\u003c/strong\u003e\u003cbr\u003e\n    Research everything in the research table.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/13eef08f5a9bef2bbab7d154c1af69a5da1517ac.jpg\" alt=\"Expert Builder!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert Builder!\u003c/strong\u003e\u003cbr\u003e\n    Build 1000 foundations.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/5b08affd9f22917993615857e07ed41bfb93eaf1.jpg\" alt=\"Intermediate Shark Hunter!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIntermediate Shark Hunter!\u003c/strong\u003e\u003cbr\u003e\n    Kill 10 sharks.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/fdca2a4f32af1db2fcdb0e23acfa89c4c4300516.jpg\" alt=\"Expert Shark Hunter!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert Shark Hunter!\u003c/strong\u003e\u003cbr\u003e\n    Kill 50 sharks.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/d8d9bb234865ee3622db37f4292485c8bb4dd039.jpg\" alt=\"Expert Gatherer!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert Gatherer!\u003c/strong\u003e\u003cbr\u003e\n    Hook 5000 items.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/16cbeaa0744b80e4251d7754c7d066aa834a5fc8.jpg\" alt=\"Intermediate Bird Hunter!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIntermediate Bird Hunter!\u003c/strong\u003e\u003cbr\u003e\n    Kill 10 birds.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/0cfad289146a8099cddf0be4509b5c512c36f30a.jpg\" alt=\"Expert Bird Hunter!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert Bird Hunter!\u003c/strong\u003e\u003cbr\u003e\n    Kill 50 birds.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/ca7d0e99b2ae9eb454baf4ee7b6cae2f4e02ce26.jpg\" alt=\"Beginner Painter!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeginner Painter!\u003c/strong\u003e\u003cbr\u003e\n    Paint 50 blocks.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/0c2782a04fca8409ae1437a0fae182444b66560c.jpg\" alt=\"Intermediate Painter!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIntermediate Painter!\u003c/strong\u003e\u003cbr\u003e\n    Paint 200 blocks.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/f2f71af8490eab985d7c8446d86ba9505ed0d6ef.jpg\" alt=\"Expert Painter!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert Painter!\u003c/strong\u003e\u003cbr\u003e\n    Paint 1000 blocks.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/fe9d3b37e073ba99d585ddc92f03021c5ca81d5b.jpg\" alt=\"Is There A Utopia?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIs There A Utopia?\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/fb92995d36f40ca032156651c0db94e8c261422f.jpg\" alt=\"Master Survivor!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaster Survivor!\u003c/strong\u003e\u003cbr\u003e\n    Survive 365 days.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/b4ef121127892e8d9f426643ab3245159bd31ba7.jpg\" alt=\"Intermediate Poison-Puffer Hunter!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIntermediate Poison-Puffer Hunter!\u003c/strong\u003e\u003cbr\u003e\n    Kill 10 Poison-puffers.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/7f860951345cf7651da84dd2c391ea2884fe39c9.jpg\" alt=\"Expert Poison-Puffer Hunter!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert Poison-Puffer Hunter!\u003c/strong\u003e\u003cbr\u003e\n    Kill 50 Poison-puffers.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/36323d469ead63a63b03c48a6e61bcd3f8d3cbf1.jpg\" alt=\"Beginner Screecher Hunter!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeginner Screecher Hunter!\u003c/strong\u003e\u003cbr\u003e\n    Kill 1 Screecher.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/62f44737ef9659cced3a5d5d3f3a209d4467c517.jpg\" alt=\"Intermediate Screecher Hunter!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIntermediate Screecher Hunter!\u003c/strong\u003e\u003cbr\u003e\n    Kill 10 Screechers.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/20eec4125f79031112e6d701d04fc330a4b40fe6.jpg\" alt=\"Expert Screecher Hunter!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert Screecher Hunter!\u003c/strong\u003e\u003cbr\u003e\n    Kill 50 Screechers.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/df53290444ae62b930c35bc507738ee90d993d04.jpg\" alt=\"Not A Great Landing!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNot A Great Landing!\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/95144559f4c8ca63303606551d9b0853a7ce7105.jpg\" alt=\"A More Complex Concoction!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA More Complex Concoction!\u003c/strong\u003e\u003cbr\u003e\n    Cook a meal by following a recipe.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/25794504dbcfdfbaf33801d23ad0b1edf8927202.jpg\" alt=\"Beginner Wrangler!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeginner Wrangler!\u003c/strong\u003e\u003cbr\u003e\n    Capture 1 animal.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/de2982e2a6aa06dc4564bec42de09d06fd8b09bf.jpg\" alt=\"Intermediate Wrangler!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIntermediate Wrangler!\u003c/strong\u003e\u003cbr\u003e\n    Capture 10 animals.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/38ac4edc91be062acafd1ab6200d8f3619362161.jpg\" alt=\"Expert Wrangler!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert Wrangler!\u003c/strong\u003e\u003cbr\u003e\n    Capture 50 animals.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/4d47c0c4627aaed976f0ca3d55a411fb31829b01.jpg\" alt=\"Some Look Different!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSome Look Different!\u003c/strong\u003e\u003cbr\u003e\n    Capture a rare animal.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/4e332c5f90f86b9b553d60760d27368c3b3fa5e5.jpg\" alt=\"Intermediate Warthog Hunter!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIntermediate Warthog Hunter!\u003c/strong\u003e\u003cbr\u003e\n    Kill 10 Warthogs.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/3ba15a7f9d13d4707dddc05a1fb8cd5603042082.jpg\" alt=\"Expert Warthog Hunter!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert Warthog Hunter!\u003c/strong\u003e\u003cbr\u003e\n    Kill 50 Warthogs.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/0048e45ac66e74ffcf64415348636e682ae7b016.jpg\" alt=\"Mother Lode!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMother Lode!\u003c/strong\u003e\u003cbr\u003e\n    Slay the Mama Bear.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/ff2d9ed284ab3161f2a2de32a8340eb1fe8bf98c.jpg\" alt=\"Pling!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePling!\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/81c494c16346a25a3f55e56cb7505df1f5c94336.jpg\" alt=\"Fix Errol!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFix Errol!\u003c/strong\u003e\u003cbr\u003e\n    There you go, Errol.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/94a248db7246671de37db945e6316787a407d049.jpg\" alt=\"A Revelation!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Revelation!\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/50e419e762cf0927dc10972c4e38d6071cdfb76d.jpg\" alt=\"Tiny Little Murderer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTiny Little Murderer\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/bc2f60e066b781629e6289684c032bc2a59b968c.jpg\" alt=\"Radio Tower Historian!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRadio Tower Historian!\u003c/strong\u003e\u003cbr\u003e\n    Find all notes on the Radio Tower!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/d12c283bbd5431044197170ddae6733af98274d1.jpg\" alt=\"Vasagatan Historian!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVasagatan Historian!\u003c/strong\u003e\u003cbr\u003e\n    Find all notes on Vasagatan!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/d12c283bbd5431044197170ddae6733af98274d1.jpg\" alt=\"Balboa Historian!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBalboa Historian!\u003c/strong\u003e\u003cbr\u003e\n    Find all notes on Balboa!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/8f0c505b24d195c41e918a31ec745be7a9c820cf.jpg\" alt=\"Bootleg Fireworks!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBootleg Fireworks!\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/5fb77e1e04e68bba2bc4056192e804139fcdad60.jpg\" alt=\"Beginner Lurker Hunter!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeginner Lurker Hunter!\u003c/strong\u003e\u003cbr\u003e\n    Kill 1 Lurker.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/67c148d41a49d03ac27a6c79a6cb96d0cb423999.jpg\" alt=\"Intermediate Lurker Hunter!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIntermediate Lurker Hunter!\u003c/strong\u003e\u003cbr\u003e\n    Kill 10 Lurkers.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/35ff415129c0d3e2bf4576df658580aa015fc90b.jpg\" alt=\"Expert Lurker Hunter!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert Lurker Hunter!\u003c/strong\u003e\u003cbr\u003e\n    Kill 50 Lurkers.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/24ba62e2ae5e1d13ad1d1922a0a0340b90fc055f.jpg\" alt=\"Beginner Bear Hunter!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeginner Bear Hunter!\u003c/strong\u003e\u003cbr\u003e\n    Kill 1 Bear.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/b4a4b2f5c408dba254f4d46f3f8caa04e3efaf94.jpg\" alt=\"Intermediate Bear Hunter!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIntermediate Bear Hunter!\u003c/strong\u003e\u003cbr\u003e\n    Kill 10 Bears.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/45098ab1f183ff3a1dcf4d1fe9a9fe13cb6a95f1.jpg\" alt=\"Expert Bear Hunter!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert Bear Hunter!\u003c/strong\u003e\u003cbr\u003e\n    Kill 50 Bears.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/199ace7d76e8e622d71630a96908f9eeecd83d48.jpg\" alt=\"Artistic Collection!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArtistic Collection!\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/d12c283bbd5431044197170ddae6733af98274d1.jpg\" alt=\"Caravan Town Historian!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCaravan Town Historian!\u003c/strong\u003e\u003cbr\u003e\n    Find all notes on Caravan Town!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/bc2f60e066b781629e6289684c032bc2a59b968c.jpg\" alt=\"Tangaroa Historian! \" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTangaroa Historian! \u003c/strong\u003e\u003cbr\u003e\n    Find all notes in Tangaroa!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/552226a489393001a7b800e98f66e3f4e9acfa5b.jpg\" alt=\"Zip Zap!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eZip Zap!\u003c/strong\u003e\u003cbr\u003e\n    Travel 50 meters on a zipline without disjointing.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/44d0bba53be32726f5c4488cee0512609cb57ece.jpg\" alt=\"Beginner Ziponaut!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeginner Ziponaut!\u003c/strong\u003e\u003cbr\u003e\n    Travel 100 meters with the zipline tool.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/3fbb74c0d2f46c17c28b0a71dbeaa639a4da0687.jpg\" alt=\"Intermediate Ziponaut!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIntermediate Ziponaut!\u003c/strong\u003e\u003cbr\u003e\n    Travel 500 meters with the zipline tool.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/346e560184993685b28a1a9c55788f362dc57c65.jpg\" alt=\"Expert Ziponaut!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert Ziponaut!\u003c/strong\u003e\u003cbr\u003e\n    Travel 1500 meters with the zipline tool.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/0d33085f14f2cf2ebfc0aa1fde8006f847340cae.jpg\" alt=\"Beginner Excavator!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeginner Excavator!\u003c/strong\u003e\u003cbr\u003e\n    Dig up a treasure.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/8494a07a7ba2da0eccaeb2c1f21ea106d0d99ecd.jpg\" alt=\"Intermediate Excavator!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIntermediate Excavator!\u003c/strong\u003e\u003cbr\u003e\n    Dig up 20 treasures.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/b86ebfc2e11f994fcc6459836b3ded564a42c6fe.jpg\" alt=\"Expert Excavator!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert Excavator!\u003c/strong\u003e\u003cbr\u003e\n    Dig up 50 treasures.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/c49c4e7d61d247c28890b613ed4398e41308acd0.jpg\" alt=\"Former Glory!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFormer Glory!\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/5d3302e038d9f30babe88837fcdb7f4ec92e785f.jpg\" alt=\"Plumber Power!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePlumber Power!\u003c/strong\u003e\u003cbr\u003e\n    Have 30 pipes placed at once.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/c8c11ee1b504ee05250e782d7c62e89a43b22177.jpg\" alt=\"Bee Keeper!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBee Keeper!\u003c/strong\u003e\u003cbr\u003e\n    Have 10 beehives placed at once.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/50fcb20221e6477b55baed97694e371b8fcfcf98.jpg\" alt=\"Beginner Bee-nevolent!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeginner Bee-nevolent!\u003c/strong\u003e\u003cbr\u003e\n    Capture 1 bee.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/cf41d3b89cd34ec6dfe8214f14bbe94e57f2318b.jpg\" alt=\"Intermediate Bee-nevolent!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIntermediate Bee-nevolent!\u003c/strong\u003e\u003cbr\u003e\n    Capture 10 bees.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/e376b1a3d7ccf3d66d0bc21f433736488741b7e7.jpg\" alt=\"Expert Bee-nevolent!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert Bee-nevolent!\u003c/strong\u003e\u003cbr\u003e\n    Capture 25 bees.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/eb13c2125b3595b21eefe9659aa958da4a668f41.jpg\" alt=\"Boxed In!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBoxed In!\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/33f7576351cba0131b8441ef23b08d100aa64364.jpg\" alt=\"Instrumentalist!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInstrumentalist!\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/323f32fd1f377310a940298ff14f0ad0c51787e5.jpg\" alt=\"Small Spender! \" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSmall Spender! \u003c/strong\u003e\u003cbr\u003e\n    Spend 10 tokens.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/54599989abbefeab648c4b1c88fb87a59a61f73b.jpg\" alt=\"Medium Spender!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMedium Spender!\u003c/strong\u003e\u003cbr\u003e\n    Spend 20 tokens.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/c44275b85fddf179dc017b5b6f4616776fde52c2.jpg\" alt=\"Big Spender!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBig Spender!\u003c/strong\u003e\u003cbr\u003e\n    Spend 30 tokens.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/f96fb9c7829cd94a5b986636cd1fa2bfa0fc1a70.jpg\" alt=\"Beginner Disruptor!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeginner Disruptor!\u003c/strong\u003e\u003cbr\u003e\n    Disrupt 1 Butler-Bot.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/98468e57477dc49f5ebe7a79fb60cb579d173214.jpg\" alt=\"Intermediate Disruptor!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIntermediate Disruptor!\u003c/strong\u003e\u003cbr\u003e\n    Disrupt 10 Butler-Bots.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/bd82d2251404282e708213993cf233a2094d07e8.jpg\" alt=\"Expert Disruptor!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert Disruptor!\u003c/strong\u003e\u003cbr\u003e\n    Disrupt 20 Butler-Bots.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/5e6eca5fc2262a8ca86a8157f436613efc5a8269.jpg\" alt=\"Launch Initiated!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLaunch Initiated!\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/aa2631369d41c5e8b9e383a701eca87e33a8c686.jpg\" alt=\"Real Fireworks!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eReal Fireworks!\u003c/strong\u003e\u003cbr\u003e\n    Witness 50 firework explosions.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/29e90c565465cc95d34bec6735385d5c00e6f618.jpg\" alt=\"You Should Not Be Here!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou Should Not Be Here!\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/fed566ea0df175543e5c78f73f687d5560d986b2.jpg\" alt=\"The Renovator!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Renovator!\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/2cb2cc49320dfbe8caf71fa461e290ce09bce933.jpg\" alt=\"Explosive Force!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExplosive Force!\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/39f3f41f533e8fedd7bae5300a3fa9b5c2dafa76.jpg\" alt=\"Beginner Anglerfish Hunter!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeginner Anglerfish Hunter!\u003c/strong\u003e\u003cbr\u003e\n    Kill 1 Anglerfish.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/3c62122e310e77422bc3fb52199f5a02083feb1b.jpg\" alt=\"Intermediate Anglerfish Hunter!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIntermediate Anglerfish Hunter!\u003c/strong\u003e\u003cbr\u003e\n    Kill 10 Anglerfish.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/bd9e83797796ec7a9c6dba6846f581ac7e60a7c8.jpg\" alt=\"Expert Anglerfish Hunter!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert Anglerfish Hunter!\u003c/strong\u003e\u003cbr\u003e\n    Kill 50 Anglerfish.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/4fdb9e3e694bf1c768f282fcab287e5932f57e3b.jpg\" alt=\"There Is A Utopia!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThere Is A Utopia!\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/269e375602af70e5e8618651ab7c6f00133948c4.jpg\" alt=\"All Aboard!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAll Aboard!\u003c/strong\u003e\u003cbr\u003e\n    Unlock all playable characters.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/74ee9337c1e4850e0dd3ead9651b7c4ebea63d2c.jpg\" alt=\"Beginner Merchant!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeginner Merchant!\u003c/strong\u003e\u003cbr\u003e\n    Purchase an item at a trading post.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/a188833085c5c2b77d2453d15b10fefa2568c280.jpg\" alt=\"Intermediate Merchant!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIntermediate Merchant!\u003c/strong\u003e\u003cbr\u003e\n    Reach tier 2 in the trading post.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/6d31cf7a2700e57bc82fd151e98161197ca72590.jpg\" alt=\"Expert Merchant!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert Merchant!\u003c/strong\u003e\u003cbr\u003e\n    Reach tier 3 in the trading post.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/dbced4fecf66da04dafc22fae9a091535cdadf6b.jpg\" alt=\"Powered Up!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePowered Up!\u003c/strong\u003e\u003cbr\u003e\n    Have all buffs from meals and drinks active on you at the same time.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/706eea8a2dd183d2fea41776f2a0a2898b175312.jpg\" alt=\"That's Not A Boat...\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThat's Not A Boat...\u003c/strong\u003e\u003cbr\u003e\n    Drive a snowmobile into the sea.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/215aaec628f18f60389cc9c961a5fa435a6d854e.jpg\" alt=\"Cache Collector!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCache Collector!\u003c/strong\u003e\u003cbr\u003e\n    Locate all Grabber caches on Varuna Point.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/d12c283bbd5431044197170ddae6733af98274d1.jpg\" alt=\"Varuna Point Historian!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVaruna Point Historian!\u003c/strong\u003e\u003cbr\u003e\n    Find all notes in Varuna Point.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/648800/d12c283bbd5431044197170ddae6733af98274d1.jpg\" alt=\"Temperance Historian!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTemperance Historian!\u003c/strong\u003e\u003cbr\u003e\n    Find all notes in Temperance.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Raft - 19.23% complete with 20/104 achievements unlocked.",
      "date_published": "2025-01-26T00:00:00Z",
      "date_modified": "2025-01-26T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "raft"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/wizard-with-a-gun/",
      "url": "https://go.waylonwalker.com/steam/wizard-with-a-gun/",
      "title": "Wizard with a Gun",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/1150530/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/1150530/library_600x900.jpg\" alt=\"Wizard with a Gun box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/1150530/header.jpg\u0026#39;\"/ data-glightbox=\"description: Wizard with a Gun box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eWizard with a Gun\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 60.87%\"\u003e\n        60.87%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e28/46 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e112.6h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-01-18\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (28)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/0b7534f74c4507ab31a80bc82ab2491adeb28e76.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/0b7534f74c4507ab31a80bc82ab2491adeb28e76.jpg\" alt=\"Prime Time\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Prime Time\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePrime Time\u003c/strong\u003e\u003cbr/\u003e\n    Restore the Chronomancer Wheel with 1 gear while hosting or in singleplayer\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 25, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/c47feb3e0ffedb636765d4b203c5ed3f78c3c6a0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/c47feb3e0ffedb636765d4b203c5ed3f78c3c6a0.jpg\" alt=\"A Grand Old Time\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Grand Old Time\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Grand Old Time\u003c/strong\u003e\u003cbr/\u003e\n    Restore the Chronomancer Wheel with 10 gears while hosting or in singleplayer\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 26, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/1b610014f9f54328dd857a9c6f3ad9820b2e8ea0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/1b610014f9f54328dd857a9c6f3ad9820b2e8ea0.jpg\" alt=\"Big Time Operator\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Big Time Operator\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBig Time Operator\u003c/strong\u003e\u003cbr/\u003e\n    Restore the Chronomancer Wheel with 20 gears while hosting or in singleplayer\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 03, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/c3279f5f716397fc09aac3cf424599c6a30b4852.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/c3279f5f716397fc09aac3cf424599c6a30b4852.jpg\" alt=\"A Time Honored Tradition\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Time Honored Tradition\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Time Honored Tradition\u003c/strong\u003e\u003cbr/\u003e\n    Restore the Chronomancer Wheel with 35 gears while hosting or in singleplayer\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 02, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/2b48b00ada7830dcd1a0e8957b42a132a588bed3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/2b48b00ada7830dcd1a0e8957b42a132a588bed3.jpg\" alt=\"All the Time in the World\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: All the Time in the World\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAll the Time in the World\u003c/strong\u003e\u003cbr/\u003e\n    Restore the Chronomancer Wheel with 53 gears while hosting or in singleplayer\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 11, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/81a3f2d791a9e72f567a44c5f465cdc691c9bc4c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/81a3f2d791a9e72f567a44c5f465cdc691c9bc4c.jpg\" alt=\"Isa Gladwell\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Isa Gladwell\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIsa Gladwell\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 30, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/ceaf5f128015f4cf1ac6bb322b6532535fab47e5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/ceaf5f128015f4cf1ac6bb322b6532535fab47e5.jpg\" alt=\"The Stark Ravin\u0026#39; Magus\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Stark Ravin\u0026#39; Magus\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Stark Ravin\u0026#39; Magus\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 11, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/b8dc41c86bbbd068443fd39465b7fa5dacdeffb9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/b8dc41c86bbbd068443fd39465b7fa5dacdeffb9.jpg\" alt=\"The Abdicant Heir\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Abdicant Heir\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Abdicant Heir\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 03, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/79b262f44bbb63b4d08d7540bc89ec9416a94837.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/79b262f44bbb63b4d08d7540bc89ec9416a94837.jpg\" alt=\"Talia Stareyes\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Talia Stareyes\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTalia Stareyes\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 11, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/0ec8f4958e446f04dad87a48eac0c728914cfd28.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/0ec8f4958e446f04dad87a48eac0c728914cfd28.jpg\" alt=\"The Harbinger of Chaos\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Harbinger of Chaos\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Harbinger of Chaos\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 11, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/d6550cd14026f483caa7e37f2665352ec86040e6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/d6550cd14026f483caa7e37f2665352ec86040e6.jpg\" alt=\"Deconstructed\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Deconstructed\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDeconstructed\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 27, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/01393b0df024aff54e0a9188a3692bca84c1903f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/01393b0df024aff54e0a9188a3692bca84c1903f.jpg\" alt=\"This Is Anarchy!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: This Is Anarchy!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThis Is Anarchy!\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 10, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/db528234fe44ccf2274160310a4079340ef85b51.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/db528234fe44ccf2274160310a4079340ef85b51.jpg\" alt=\"Who\u0026#39;s the King Now?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Who\u0026#39;s the King Now?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWho\u0026#39;s the King Now?\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 02, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/f982382bcf8744f57c9b88d8298b06f3f3a8a26e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/f982382bcf8744f57c9b88d8298b06f3f3a8a26e.jpg\" alt=\"The Hunter Is Now the Hunted\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Hunter Is Now the Hunted\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Hunter Is Now the Hunted\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 04, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/6ed6982d96b2710b7ddd35629ed384ecd7bd09ce.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/6ed6982d96b2710b7ddd35629ed384ecd7bd09ce.jpg\" alt=\"Greek Fire\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Greek Fire\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGreek Fire\u003c/strong\u003e\u003cbr/\u003e\n    Ignite a creature doused in oil with a fire bullet\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 29, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/91ce17c62383da48a493c34a00e4a80d1eb8c1cb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/91ce17c62383da48a493c34a00e4a80d1eb8c1cb.jpg\" alt=\"Galvanic Games\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Galvanic Games\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGalvanic Games\u003c/strong\u003e\u003cbr/\u003e\n    Electrocute a creature through water\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 27, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/e5b0d7e3b00c74cd819520897582b2ba35f4f499.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/e5b0d7e3b00c74cd819520897582b2ba35f4f499.jpg\" alt=\"Sorcerer\u0026#39;s Apprentice\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sorcerer\u0026#39;s Apprentice\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSorcerer\u0026#39;s Apprentice\u003c/strong\u003e\u003cbr/\u003e\n    Craft Burning or Shocking Bullet Level 10 or higher\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 10, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/519d31d27daf735ce2e22dfc72004656a6d53082.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/519d31d27daf735ce2e22dfc72004656a6d53082.jpg\" alt=\"Sorcerer Supreme\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sorcerer Supreme\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSorcerer Supreme\u003c/strong\u003e\u003cbr/\u003e\n    Craft Burning or Shocking Bullet Level 20 or higher\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 03, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/b993d2377e3858180c8cb9411df0bf86cd8371e3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/b993d2377e3858180c8cb9411df0bf86cd8371e3.jpg\" alt=\"Experiments in Transmutation\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Experiments in Transmutation\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExperiments in Transmutation\u003c/strong\u003e\u003cbr/\u003e\n    Craft Cold or Force Bullet Level 10 or higher\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 05, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/06c8ebaea319e5a077c1e1bf8bf902a213c35554.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/06c8ebaea319e5a077c1e1bf8bf902a213c35554.jpg\" alt=\"Full Metal Alchemy\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Full Metal Alchemy\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFull Metal Alchemy\u003c/strong\u003e\u003cbr/\u003e\n    Craft Cold or Force Bullet Level 20 or higher\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 10, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/6701d4354dd9d414d57bfb54388744bf10a32895.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/6701d4354dd9d414d57bfb54388744bf10a32895.jpg\" alt=\"There\u0026#39;s a Magus Among Us\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: There\u0026#39;s a Magus Among Us\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThere\u0026#39;s a Magus Among Us\u003c/strong\u003e\u003cbr/\u003e\n    Craft Charming, Healing, or Repair Bullet Level 10 or higher\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 03, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/f5759186b8468d205b49758049b34d20ff2bf2b4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/f5759186b8468d205b49758049b34d20ff2bf2b4.jpg\" alt=\"Fastest Guns in the West\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fastest Guns in the West\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFastest Guns in the West\u003c/strong\u003e\u003cbr/\u003e\n    Craft an enchantment to reduce gun cooldowns on your gloves\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 29, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/4468fb3137878e21a83ebd75bf981072456c4b72.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/4468fb3137878e21a83ebd75bf981072456c4b72.jpg\" alt=\"Backpack, Backpack!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Backpack, Backpack!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBackpack, Backpack!\u003c/strong\u003e\u003cbr/\u003e\n    Craft the second or greater inventory expansion enchantment on your backpack\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 10, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/5f2fba19e94a074bf0e659b5308249e31cd2206b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/5f2fba19e94a074bf0e659b5308249e31cd2206b.jpg\" alt=\"Healing Factor\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Healing Factor\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHealing Factor\u003c/strong\u003e\u003cbr/\u003e\n    Craft the third or greater health regeneration enchantment on your amulet\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 02, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/f91230893e3c9dbb34486a57cdd1f7cc6be535b9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/f91230893e3c9dbb34486a57cdd1f7cc6be535b9.jpg\" alt=\"You\u0026#39;re the Omega\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: You\u0026#39;re the Omega\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou\u0026#39;re the Omega\u003c/strong\u003e\u003cbr/\u003e\n    Survive in the apocalypse for 5 minutes\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 29, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/e89ba9ca0c149ba60b553361c083a8313768fc0e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/e89ba9ca0c149ba60b553361c083a8313768fc0e.jpg\" alt=\"Wanted Dead or Alive\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Wanted Dead or Alive\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWanted Dead or Alive\u003c/strong\u003e\u003cbr/\u003e\n    Turn in a Bounty\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 11, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/91d98b49562e81132e038087fbcf55f66ab7edc4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/91d98b49562e81132e038087fbcf55f66ab7edc4.jpg\" alt=\"A Job Well Done\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Job Well Done\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Job Well Done\u003c/strong\u003e\u003cbr/\u003e\n    Earn a Boss Bounty\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 11, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/f84447820580033299e5a63042314ad4cffc628d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/f84447820580033299e5a63042314ad4cffc628d.jpg\" alt=\"What in Tarnation\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: What in Tarnation\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhat in Tarnation\u003c/strong\u003e\u003cbr/\u003e\n    Encounter a Surprise Event\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 09, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (18)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/56314cb1a7b9da20e19974df47167ef0826b119e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/56314cb1a7b9da20e19974df47167ef0826b119e.jpg\" alt=\"Crushed Ice\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Crushed Ice\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCrushed Ice\u003c/strong\u003e\u003cbr/\u003e\n    Shatter the ice on a frozen creature\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/342928841334e9f474e5421f7eed4c039ec27d7b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/342928841334e9f474e5421f7eed4c039ec27d7b.jpg\" alt=\"Force of Nature\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Force of Nature\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eForce of Nature\u003c/strong\u003e\u003cbr/\u003e\n    Slam a creature with force accumulated in stasis\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/7aec6acb4dbab046fb5dbceb36ffe7d9f04b0e8b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/7aec6acb4dbab046fb5dbceb36ffe7d9f04b0e8b.jpg\" alt=\"Mend a Friend\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mend a Friend\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMend a Friend\u003c/strong\u003e\u003cbr/\u003e\n    Heal a charmed creature\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/0f9a52e324350355d56fc7ad7a0d3af2eb4d030a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/0f9a52e324350355d56fc7ad7a0d3af2eb4d030a.jpg\" alt=\"Intoxicating\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Intoxicating\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIntoxicating\u003c/strong\u003e\u003cbr/\u003e\n    Use a poison finisher bullet on a poisoned creature\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/79620bc858390aa3bfc382d0f7798cb34e0364b3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/79620bc858390aa3bfc382d0f7798cb34e0364b3.jpg\" alt=\"Dark Arts Dabbler\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Dark Arts Dabbler\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDark Arts Dabbler\u003c/strong\u003e\u003cbr/\u003e\n    Craft Poison or Fear Bullet Level 10 or higher\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/5a74e3df48cf6f338bb1ac6499e9362299b66def.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/5a74e3df48cf6f338bb1ac6499e9362299b66def.jpg\" alt=\"Defend Against This\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Defend Against This\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDefend Against This\u003c/strong\u003e\u003cbr/\u003e\n    Craft Poison or Fear Bullet Level 20 or higher\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/198d3ec1653dca851ca4c31cac5a1af940273afa.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/198d3ec1653dca851ca4c31cac5a1af940273afa.jpg\" alt=\"Magus Elite\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Magus Elite\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMagus Elite\u003c/strong\u003e\u003cbr/\u003e\n    Craft Charming, Healing, or Repair Bullet Level 20 or higher\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/b17fecf488d07a468724fa30b5d797946019d4f4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/b17fecf488d07a468724fa30b5d797946019d4f4.jpg\" alt=\"Leap of Faith\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Leap of Faith\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLeap of Faith\u003c/strong\u003e\u003cbr/\u003e\n    Craft an enchantment to dash further on your boots\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/2b2024c4f028eb93e70562b7b7486d5f8c6e3673.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/2b2024c4f028eb93e70562b7b7486d5f8c6e3673.jpg\" alt=\"To Your Health!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: To Your Health!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTo Your Health!\u003c/strong\u003e\u003cbr/\u003e\n    Craft the fifth or greater max health increase enchantment on your robes\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/057e2146f5c9072d50d9dd4ee3a6bd3d7053c3fc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/057e2146f5c9072d50d9dd4ee3a6bd3d7053c3fc.jpg\" alt=\"Champion of the Sun\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Champion of the Sun\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChampion of the Sun\u003c/strong\u003e\u003cbr/\u003e\n    Survive until Day 5 while averting the apocalypse\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/8cd194bfae7090726b09cd5a6266defc371a376b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/8cd194bfae7090726b09cd5a6266defc371a376b.jpg\" alt=\"Just A Humble Bounty Hunter\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Just A Humble Bounty Hunter\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJust A Humble Bounty Hunter\u003c/strong\u003e\u003cbr/\u003e\n    Earn 100 Bounties\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/8102075337cb813d5226f3c1b7fb121acfb4cef7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/8102075337cb813d5226f3c1b7fb121acfb4cef7.jpg\" alt=\"Put Them in the Cargo Hold\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Put Them in the Cargo Hold\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePut Them in the Cargo Hold\u003c/strong\u003e\u003cbr/\u003e\n    Earn a Golden Bounty\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/f55c508d08bdc9bc4f38603256d536d492eaa03b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/f55c508d08bdc9bc4f38603256d536d492eaa03b.jpg\" alt=\"Zoltar Speaks\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Zoltar Speaks\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eZoltar Speaks\u003c/strong\u003e\u003cbr/\u003e\n    Build a Bounty Mechana\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/0a7d57d98fcee4469ea2a20e2bc6fca5ac3c7907.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/0a7d57d98fcee4469ea2a20e2bc6fca5ac3c7907.jpg\" alt=\"One for the Books\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: One for the Books\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOne for the Books\u003c/strong\u003e\u003cbr/\u003e\n    Construct the Magus, Alchemist, Sorcerer, and Warlock bookshelves\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/77f2ca5229ba108526794fc666ee021d5532ffec.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/77f2ca5229ba108526794fc666ee021d5532ffec.jpg\" alt=\"A Law Unto Yourself\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Law Unto Yourself\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Law Unto Yourself\u003c/strong\u003e\u003cbr/\u003e\n    Defeat all bosses on Sheriff difficulty or greater\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/8e9bc16c3d8141f08601375ed8ad4ef501f1dce2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/8e9bc16c3d8141f08601375ed8ad4ef501f1dce2.jpg\" alt=\"Above The Law\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Above The Law\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAbove The Law\u003c/strong\u003e\u003cbr/\u003e\n    Defeat all bosses on Outlaw difficulty or greater\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/05c7d80e96d0329516d1cc82a9ffb920798229b0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/05c7d80e96d0329516d1cc82a9ffb920798229b0.jpg\" alt=\"Chaos Reined\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Chaos Reined\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChaos Reined\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/3252969d3d8a76794d4a9dbcdd9092cb818d2434.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/3252969d3d8a76794d4a9dbcdd9092cb818d2434.jpg\" alt=\"Better Together\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Better Together\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBetter Together\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/1150530/library_600x900.jpg\" alt=\"Wizard with a Gun box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/1150530/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eWizard with a Gun\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 60.87%\"\u003e\n        60.87%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e28/46 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e112.6h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-01-18\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (28)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/0b7534f74c4507ab31a80bc82ab2491adeb28e76.jpg\" alt=\"Prime Time\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePrime Time\u003c/strong\u003e\u003cbr\u003e\n    Restore the Chronomancer Wheel with 1 gear while hosting or in singleplayer\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 25, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/c47feb3e0ffedb636765d4b203c5ed3f78c3c6a0.jpg\" alt=\"A Grand Old Time\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Grand Old Time\u003c/strong\u003e\u003cbr\u003e\n    Restore the Chronomancer Wheel with 10 gears while hosting or in singleplayer\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 26, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/1b610014f9f54328dd857a9c6f3ad9820b2e8ea0.jpg\" alt=\"Big Time Operator\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBig Time Operator\u003c/strong\u003e\u003cbr\u003e\n    Restore the Chronomancer Wheel with 20 gears while hosting or in singleplayer\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 03, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/c3279f5f716397fc09aac3cf424599c6a30b4852.jpg\" alt=\"A Time Honored Tradition\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Time Honored Tradition\u003c/strong\u003e\u003cbr\u003e\n    Restore the Chronomancer Wheel with 35 gears while hosting or in singleplayer\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 02, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/2b48b00ada7830dcd1a0e8957b42a132a588bed3.jpg\" alt=\"All the Time in the World\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAll the Time in the World\u003c/strong\u003e\u003cbr\u003e\n    Restore the Chronomancer Wheel with 53 gears while hosting or in singleplayer\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 11, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/81a3f2d791a9e72f567a44c5f465cdc691c9bc4c.jpg\" alt=\"Isa Gladwell\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIsa Gladwell\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 30, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/ceaf5f128015f4cf1ac6bb322b6532535fab47e5.jpg\" alt=\"The Stark Ravin' Magus\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Stark Ravin' Magus\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 11, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/b8dc41c86bbbd068443fd39465b7fa5dacdeffb9.jpg\" alt=\"The Abdicant Heir\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Abdicant Heir\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 03, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/79b262f44bbb63b4d08d7540bc89ec9416a94837.jpg\" alt=\"Talia Stareyes\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTalia Stareyes\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 11, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/0ec8f4958e446f04dad87a48eac0c728914cfd28.jpg\" alt=\"The Harbinger of Chaos\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Harbinger of Chaos\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 11, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/d6550cd14026f483caa7e37f2665352ec86040e6.jpg\" alt=\"Deconstructed\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDeconstructed\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 27, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/01393b0df024aff54e0a9188a3692bca84c1903f.jpg\" alt=\"This Is Anarchy!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThis Is Anarchy!\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 10, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/db528234fe44ccf2274160310a4079340ef85b51.jpg\" alt=\"Who's the King Now?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWho's the King Now?\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 02, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/f982382bcf8744f57c9b88d8298b06f3f3a8a26e.jpg\" alt=\"The Hunter Is Now the Hunted\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Hunter Is Now the Hunted\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 04, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/6ed6982d96b2710b7ddd35629ed384ecd7bd09ce.jpg\" alt=\"Greek Fire\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGreek Fire\u003c/strong\u003e\u003cbr\u003e\n    Ignite a creature doused in oil with a fire bullet\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 29, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/91ce17c62383da48a493c34a00e4a80d1eb8c1cb.jpg\" alt=\"Galvanic Games\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGalvanic Games\u003c/strong\u003e\u003cbr\u003e\n    Electrocute a creature through water\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 27, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/e5b0d7e3b00c74cd819520897582b2ba35f4f499.jpg\" alt=\"Sorcerer's Apprentice\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSorcerer's Apprentice\u003c/strong\u003e\u003cbr\u003e\n    Craft Burning or Shocking Bullet Level 10 or higher\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 10, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/519d31d27daf735ce2e22dfc72004656a6d53082.jpg\" alt=\"Sorcerer Supreme\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSorcerer Supreme\u003c/strong\u003e\u003cbr\u003e\n    Craft Burning or Shocking Bullet Level 20 or higher\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 03, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/b993d2377e3858180c8cb9411df0bf86cd8371e3.jpg\" alt=\"Experiments in Transmutation\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExperiments in Transmutation\u003c/strong\u003e\u003cbr\u003e\n    Craft Cold or Force Bullet Level 10 or higher\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 05, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/06c8ebaea319e5a077c1e1bf8bf902a213c35554.jpg\" alt=\"Full Metal Alchemy\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFull Metal Alchemy\u003c/strong\u003e\u003cbr\u003e\n    Craft Cold or Force Bullet Level 20 or higher\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 10, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/6701d4354dd9d414d57bfb54388744bf10a32895.jpg\" alt=\"There's a Magus Among Us\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThere's a Magus Among Us\u003c/strong\u003e\u003cbr\u003e\n    Craft Charming, Healing, or Repair Bullet Level 10 or higher\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 03, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/f5759186b8468d205b49758049b34d20ff2bf2b4.jpg\" alt=\"Fastest Guns in the West\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFastest Guns in the West\u003c/strong\u003e\u003cbr\u003e\n    Craft an enchantment to reduce gun cooldowns on your gloves\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 29, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/4468fb3137878e21a83ebd75bf981072456c4b72.jpg\" alt=\"Backpack, Backpack!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBackpack, Backpack!\u003c/strong\u003e\u003cbr\u003e\n    Craft the second or greater inventory expansion enchantment on your backpack\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 10, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/5f2fba19e94a074bf0e659b5308249e31cd2206b.jpg\" alt=\"Healing Factor\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHealing Factor\u003c/strong\u003e\u003cbr\u003e\n    Craft the third or greater health regeneration enchantment on your amulet\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 02, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/f91230893e3c9dbb34486a57cdd1f7cc6be535b9.jpg\" alt=\"You're the Omega\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou're the Omega\u003c/strong\u003e\u003cbr\u003e\n    Survive in the apocalypse for 5 minutes\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 29, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/e89ba9ca0c149ba60b553361c083a8313768fc0e.jpg\" alt=\"Wanted Dead or Alive\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWanted Dead or Alive\u003c/strong\u003e\u003cbr\u003e\n    Turn in a Bounty\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 11, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/91d98b49562e81132e038087fbcf55f66ab7edc4.jpg\" alt=\"A Job Well Done\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Job Well Done\u003c/strong\u003e\u003cbr\u003e\n    Earn a Boss Bounty\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 11, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/f84447820580033299e5a63042314ad4cffc628d.jpg\" alt=\"What in Tarnation\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhat in Tarnation\u003c/strong\u003e\u003cbr\u003e\n    Encounter a Surprise Event\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 09, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (18)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/56314cb1a7b9da20e19974df47167ef0826b119e.jpg\" alt=\"Crushed Ice\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCrushed Ice\u003c/strong\u003e\u003cbr\u003e\n    Shatter the ice on a frozen creature\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/342928841334e9f474e5421f7eed4c039ec27d7b.jpg\" alt=\"Force of Nature\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eForce of Nature\u003c/strong\u003e\u003cbr\u003e\n    Slam a creature with force accumulated in stasis\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/7aec6acb4dbab046fb5dbceb36ffe7d9f04b0e8b.jpg\" alt=\"Mend a Friend\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMend a Friend\u003c/strong\u003e\u003cbr\u003e\n    Heal a charmed creature\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/0f9a52e324350355d56fc7ad7a0d3af2eb4d030a.jpg\" alt=\"Intoxicating\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIntoxicating\u003c/strong\u003e\u003cbr\u003e\n    Use a poison finisher bullet on a poisoned creature\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/79620bc858390aa3bfc382d0f7798cb34e0364b3.jpg\" alt=\"Dark Arts Dabbler\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDark Arts Dabbler\u003c/strong\u003e\u003cbr\u003e\n    Craft Poison or Fear Bullet Level 10 or higher\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/5a74e3df48cf6f338bb1ac6499e9362299b66def.jpg\" alt=\"Defend Against This\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDefend Against This\u003c/strong\u003e\u003cbr\u003e\n    Craft Poison or Fear Bullet Level 20 or higher\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/198d3ec1653dca851ca4c31cac5a1af940273afa.jpg\" alt=\"Magus Elite\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMagus Elite\u003c/strong\u003e\u003cbr\u003e\n    Craft Charming, Healing, or Repair Bullet Level 20 or higher\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/b17fecf488d07a468724fa30b5d797946019d4f4.jpg\" alt=\"Leap of Faith\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLeap of Faith\u003c/strong\u003e\u003cbr\u003e\n    Craft an enchantment to dash further on your boots\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/2b2024c4f028eb93e70562b7b7486d5f8c6e3673.jpg\" alt=\"To Your Health!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTo Your Health!\u003c/strong\u003e\u003cbr\u003e\n    Craft the fifth or greater max health increase enchantment on your robes\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/057e2146f5c9072d50d9dd4ee3a6bd3d7053c3fc.jpg\" alt=\"Champion of the Sun\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChampion of the Sun\u003c/strong\u003e\u003cbr\u003e\n    Survive until Day 5 while averting the apocalypse\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/8cd194bfae7090726b09cd5a6266defc371a376b.jpg\" alt=\"Just A Humble Bounty Hunter\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJust A Humble Bounty Hunter\u003c/strong\u003e\u003cbr\u003e\n    Earn 100 Bounties\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/8102075337cb813d5226f3c1b7fb121acfb4cef7.jpg\" alt=\"Put Them in the Cargo Hold\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePut Them in the Cargo Hold\u003c/strong\u003e\u003cbr\u003e\n    Earn a Golden Bounty\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/f55c508d08bdc9bc4f38603256d536d492eaa03b.jpg\" alt=\"Zoltar Speaks\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eZoltar Speaks\u003c/strong\u003e\u003cbr\u003e\n    Build a Bounty Mechana\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/0a7d57d98fcee4469ea2a20e2bc6fca5ac3c7907.jpg\" alt=\"One for the Books\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOne for the Books\u003c/strong\u003e\u003cbr\u003e\n    Construct the Magus, Alchemist, Sorcerer, and Warlock bookshelves\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/77f2ca5229ba108526794fc666ee021d5532ffec.jpg\" alt=\"A Law Unto Yourself\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Law Unto Yourself\u003c/strong\u003e\u003cbr\u003e\n    Defeat all bosses on Sheriff difficulty or greater\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/8e9bc16c3d8141f08601375ed8ad4ef501f1dce2.jpg\" alt=\"Above The Law\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAbove The Law\u003c/strong\u003e\u003cbr\u003e\n    Defeat all bosses on Outlaw difficulty or greater\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/05c7d80e96d0329516d1cc82a9ffb920798229b0.jpg\" alt=\"Chaos Reined\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChaos Reined\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1150530/3252969d3d8a76794d4a9dbcdd9092cb818d2434.jpg\" alt=\"Better Together\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBetter Together\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Wizard with a Gun - 60.87% complete with 28/46 achievements unlocked.",
      "date_published": "2025-01-18T00:00:00Z",
      "date_modified": "2025-01-18T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "wizard-with-a-gun"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/hot-wheels-unleashed/",
      "url": "https://go.waylonwalker.com/steam/hot-wheels-unleashed/",
      "title": "HOT WHEELS UNLEASHED™",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/1271700/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/1271700/library_600x900.jpg\" alt=\"HOT WHEELS UNLEASHED™ box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/1271700/header.jpg\u0026#39;\"/ data-glightbox=\"description: HOT WHEELS UNLEASHED™ box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eHOT WHEELS UNLEASHED™\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 32.08%\"\u003e\n        32.08%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e17/53 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e28.3h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-01-06\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (17)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/c16ea21b866aeb501a3a3804000ddc6579b03761.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/c16ea21b866aeb501a3a3804000ddc6579b03761.jpg\" alt=\"First is free\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: First is free\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFirst is free\u003c/strong\u003e\u003cbr/\u003e\n    Open your first Blind Box.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 01, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/47fcb51d1e03a561b24f229219ad531cc3f8b919.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/47fcb51d1e03a561b24f229219ad531cc3f8b919.jpg\" alt=\"Try your luck\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Try your luck\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTry your luck\u003c/strong\u003e\u003cbr/\u003e\n    Open a total of 10 Blind Boxes.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 06, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/2ca32c78fa8b2d28eb2021e7b9c91c86fba2f420.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/2ca32c78fa8b2d28eb2021e7b9c91c86fba2f420.jpg\" alt=\"First-timer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: First-timer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFirst-timer\u003c/strong\u003e\u003cbr/\u003e\n    Complete the tutorial.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 01, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/43b8a8a847e864e94dd2cc56b0d6f07b97420330.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/43b8a8a847e864e94dd2cc56b0d6f07b97420330.jpg\" alt=\"Tiny hoard\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tiny hoard\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTiny hoard\u003c/strong\u003e\u003cbr/\u003e\n    Get a total of 10,000 Coins.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 12, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/0d2e5833b0403a46b341b22c483579b382b9f985.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/0d2e5833b0403a46b341b22c483579b382b9f985.jpg\" alt=\"Friends no more\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Friends no more\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFriends no more\u003c/strong\u003e\u003cbr/\u003e\n    Complete a race in Split Screen mode.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 01, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/6e1f1f3f221c5851df0f7b071a87337d6bbdac14.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/6e1f1f3f221c5851df0f7b071a87337d6bbdac14.jpg\" alt=\"Spendthrift\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Spendthrift\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpendthrift\u003c/strong\u003e\u003cbr/\u003e\n    Make a purchase in the Shop.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 04, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/2d2dfaa00b7c12c79ee5c2ff547d4c1889a0c0fa.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/2d2dfaa00b7c12c79ee5c2ff547d4c1889a0c0fa.jpg\" alt=\"A good start…\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A good start…\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA good start…\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Unleashed Goal of one Race Pad.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 01, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/19aa36cddca480b5f917415852c2e8decb848671.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/19aa36cddca480b5f917415852c2e8decb848671.jpg\" alt=\"Top place taken\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Top place taken\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTop place taken\u003c/strong\u003e\u003cbr/\u003e\n    Win a Boss Race.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 06, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/9a5c3211508fbc21d93501270b2a876d8c30f498.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/9a5c3211508fbc21d93501270b2a876d8c30f498.jpg\" alt=\"You\u0026#39;re good!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: You\u0026#39;re good!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou\u0026#39;re good!\u003c/strong\u003e\u003cbr/\u003e\n    Reach the podium in a total of 10 Quick Races (not unlockable in Split Screen mode).\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 03, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/26a9763fcdaf88572c6591ffc50997603909b791.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/26a9763fcdaf88572c6591ffc50997603909b791.jpg\" alt=\"Welcome to the Basement\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Welcome to the Basement\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWelcome to the Basement\u003c/strong\u003e\u003cbr/\u003e\n    Win a Quick Race on any track in the Basement (not unlockable in Split Screen mode).\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 01, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/047efbd43ba9bf1de14d7b9376c1703a6fc4f4b3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/047efbd43ba9bf1de14d7b9376c1703a6fc4f4b3.jpg\" alt=\"Will you park it for me?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Will you park it for me?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWill you park it for me?\u003c/strong\u003e\u003cbr/\u003e\n    Win a Quick Race on any track in the Garage (not unlockable in Split Screen mode).\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 02, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/5b0ba41de6864418d931a2105d46684d6e7dff65.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/5b0ba41de6864418d931a2105d46684d6e7dff65.jpg\" alt=\"What time is the test?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: What time is the test?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhat time is the test?\u003c/strong\u003e\u003cbr/\u003e\n    Win a Quick Race on any track in the College Campus (not unlockable in Split Screen mode).\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 02, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/699776381a639c96e89179764cfa0712f67c52e6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/699776381a639c96e89179764cfa0712f67c52e6.jpg\" alt=\"Awesome view!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Awesome view!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAwesome view!\u003c/strong\u003e\u003cbr/\u003e\n    Win a Quick Race on any track in the Skyscraper (not unlockable in Split Screen mode).\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 06, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/3cfb6fbd0ea2eda6886b63c43a9ff87a6388ace3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/3cfb6fbd0ea2eda6886b63c43a9ff87a6388ace3.jpg\" alt=\"Go beyond limits\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Go beyond limits\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGo beyond limits\u003c/strong\u003e\u003cbr/\u003e\n    Win  a Quick Race on any track in the Skatepark (not unlockable in Split Screen mode).\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 02, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/1047e81b1e5cc9606be0f441115a6edd3d89f4da.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/1047e81b1e5cc9606be0f441115a6edd3d89f4da.jpg\" alt=\"Full speed\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Full speed\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFull speed\u003c/strong\u003e\u003cbr/\u003e\n    Use the Boost for a total of 10 minutes.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 01, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/852ba9b984534c59a6992b45872352883974116a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/852ba9b984534c59a6992b45872352883974116a.jpg\" alt=\"One against all\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: One against all\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOne against all\u003c/strong\u003e\u003cbr/\u003e\n    Complete a Quick Race in Multiplayer mode.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 03, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/c187746ea3506eca485270aaff7c663d7a1c9c86.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/c187746ea3506eca485270aaff7c663d7a1c9c86.jpg\" alt=\"You have what it takes\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: You have what it takes\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou have what it takes\u003c/strong\u003e\u003cbr/\u003e\n    Reach the podium in a total of 3 Quick Races in Multiplayer mode.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 03, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (36)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/65eb06c8b1c0e014658b7a7855247cf61b84ed48.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/65eb06c8b1c0e014658b7a7855247cf61b84ed48.jpg\" alt=\"Wild unpacker\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Wild unpacker\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWild unpacker\u003c/strong\u003e\u003cbr/\u003e\n    Open a total of 50 Blind Boxes.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/70d18841a142dc3d8c17b92b795760201eef176c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/70d18841a142dc3d8c17b92b795760201eef176c.jpg\" alt=\"Box collector\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Box collector\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBox collector\u003c/strong\u003e\u003cbr/\u003e\n    Open a total of 100 Blind Boxes.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/8548cd4525620779a47466495da6849b213a13bf.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/8548cd4525620779a47466495da6849b213a13bf.jpg\" alt=\"Just starting\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Just starting\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJust starting\u003c/strong\u003e\u003cbr/\u003e\n    Upgrade the Rarity of one Common vehicle.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/ea7c948bd3c156c89bdbeb36ec3240ed3a2aad55.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/ea7c948bd3c156c89bdbeb36ec3240ed3a2aad55.jpg\" alt=\"Well advanced\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Well advanced\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWell advanced\u003c/strong\u003e\u003cbr/\u003e\n    Upgrade the Rarity of 10 Common vehicles.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/e486a40e5be04ef026da6bd83c2ea2dcdf87649b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/e486a40e5be04ef026da6bd83c2ea2dcdf87649b.jpg\" alt=\"Fine work\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fine work\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFine work\u003c/strong\u003e\u003cbr/\u003e\n    Upgrade the Rarity of one Rare vehicle.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/29fa69849c3ff29d9fa031838d6d4cb557c75352.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/29fa69849c3ff29d9fa031838d6d4cb557c75352.jpg\" alt=\"It’s over 9000\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: It’s over 9000\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt’s over 9000\u003c/strong\u003e\u003cbr/\u003e\n    Upgrade the Rarity of 15 Rare vehicles.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/cb25569088943dc3ef727446807001ee648f5221.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/cb25569088943dc3ef727446807001ee648f5221.jpg\" alt=\"Growing profit\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Growing profit\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGrowing profit\u003c/strong\u003e\u003cbr/\u003e\n    Get a total of 50,000 Coins.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/cc19dc64fc311615e26681faa67c1a7234f8840f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/cc19dc64fc311615e26681faa67c1a7234f8840f.jpg\" alt=\"Unbridled luxury\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Unbridled luxury\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUnbridled luxury\u003c/strong\u003e\u003cbr/\u003e\n    Get a total of 100,000 Coins.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/669d36777f4bfbe2ee3f4f074af07dbb7eb36557.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/669d36777f4bfbe2ee3f4f074af07dbb7eb36557.jpg\" alt=\"I need more!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: I need more!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI need more!\u003c/strong\u003e\u003cbr/\u003e\n    Get a total of 2,500 Gears.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/837b8c7e08f0222b0e297318d9e83222f4f763bb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/837b8c7e08f0222b0e297318d9e83222f4f763bb.jpg\" alt=\"Not enough!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Not enough!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNot enough!\u003c/strong\u003e\u003cbr/\u003e\n    Get a total of 10,000 Gears.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/a8a303e26955ebfe1433e0b8acbc394d1f984e3f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/a8a303e26955ebfe1433e0b8acbc394d1f984e3f.jpg\" alt=\"What do I do with so many?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: What do I do with so many?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhat do I do with so many?\u003c/strong\u003e\u003cbr/\u003e\n    Get a total of 25,000 Gears.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/a87c03f67720c2eda85c611a1031cf6d45586265.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/a87c03f67720c2eda85c611a1031cf6d45586265.jpg\" alt=\"Tell no one\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tell no one\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTell no one\u003c/strong\u003e\u003cbr/\u003e\n    Meet the requirements of a Secret Race Pad.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/819d2f8e63eb51f529d6f21dd08c4f3c392e4957.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/819d2f8e63eb51f529d6f21dd08c4f3c392e4957.jpg\" alt=\"Keeper of Secrets\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Keeper of Secrets\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKeeper of Secrets\u003c/strong\u003e\u003cbr/\u003e\n    Meet the requirements of all the Secret Race Pads.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/34f626b68fa60cba0368d1d20134580d0120d099.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/34f626b68fa60cba0368d1d20134580d0120d099.jpg\" alt=\"King of the city\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: King of the city\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of the city\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Unleashed Goal of all the Race Pads.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/85d89f4b4e859538223a39f913df8dbcd48fc651.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/85d89f4b4e859538223a39f913df8dbcd48fc651.jpg\" alt=\"No more rivals left\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: No more rivals left\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNo more rivals left\u003c/strong\u003e\u003cbr/\u003e\n    Win all the Boss Races.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/3c20c2720326d1927029789a82009be4462a4397.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/3c20c2720326d1927029789a82009be4462a4397.jpg\" alt=\"Take the stage\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Take the stage\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTake the stage\u003c/strong\u003e\u003cbr/\u003e\n    Validate a Track in Track Builder mode.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/4ba8ecf554b26afc8081cb6ab8aa05ef4d8b2150.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/4ba8ecf554b26afc8081cb6ab8aa05ef4d8b2150.jpg\" alt=\"Expert builder\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Expert builder\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert builder\u003c/strong\u003e\u003cbr/\u003e\n    Validate a total of 5 Tracks in Track Builder mode.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/5234473448406eaedd7f8a5e99e9cc6e5aad77c9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/5234473448406eaedd7f8a5e99e9cc6e5aad77c9.jpg\" alt=\"Can you keep a Secret?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Can you keep a Secret?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCan you keep a Secret?\u003c/strong\u003e\u003cbr/\u003e\n    Unlock a Secret Rarity vehicle.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/6d19e7f4784f33eb1d6f9b1e6758bd4655fdb246.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/6d19e7f4784f33eb1d6f9b1e6758bd4655fdb246.jpg\" alt=\"I want \u0026#39;em all\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: I want \u0026#39;em all\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI want \u0026#39;em all\u003c/strong\u003e\u003cbr/\u003e\n    Unlock all Secret Rarity vehicles.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/2974e51edb96c05c14ba028235b9c578c68d95b1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/2974e51edb96c05c14ba028235b9c578c68d95b1.jpg\" alt=\"Now try online\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Now try online\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNow try online\u003c/strong\u003e\u003cbr/\u003e\n    Win a Quick Race with AI Difficulty set to Hard (not unlockable in Split Screen mode).\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/d00d8e72e4b39b68f71f766ad2a4c8f9f35df95c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/d00d8e72e4b39b68f71f766ad2a4c8f9f35df95c.jpg\" alt=\"Not kidding!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Not kidding!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNot kidding!\u003c/strong\u003e\u003cbr/\u003e\n    Reach the podium in a total of 30 Quick Races (not unlockable in Split Screen mode).\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/a579649bf37bf5ade3f02822e279697e696e4a91.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/a579649bf37bf5ade3f02822e279697e696e4a91.jpg\" alt=\"The most feared\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The most feared\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe most feared\u003c/strong\u003e\u003cbr/\u003e\n    Reach the podium in a total of 50 Quick Races (not unlockable in Split Screen mode).\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/9680883763cf588ca35284a5026c9f3b87622960.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/9680883763cf588ca35284a5026c9f3b87622960.jpg\" alt=\"Terror of the road\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Terror of the road\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTerror of the road\u003c/strong\u003e\u003cbr/\u003e\n    Reach the podium in a total of 100 Quick Races (not unlockable in Split Screen mode).\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/1eaf3dfa8bd5aa2b03c130a0fc5e802c2a12262a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/1eaf3dfa8bd5aa2b03c130a0fc5e802c2a12262a.jpg\" alt=\"Like lightning\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Like lightning\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLike lightning\u003c/strong\u003e\u003cbr/\u003e\n    Use the Boost for a total of 30 minutes.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/caa8c8854e5d59a8259588cf25287ddee7e7bf9d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/caa8c8854e5d59a8259588cf25287ddee7e7bf9d.jpg\" alt=\"Faster than light\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Faster than light\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFaster than light\u003c/strong\u003e\u003cbr/\u003e\n    Use the Boost for a total of 60 minutes.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/7e36d1f00740c431c5786c54346fde77b5f3cdc7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/7e36d1f00740c431c5786c54346fde77b5f3cdc7.jpg\" alt=\"Unstoppable\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Unstoppable\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUnstoppable\u003c/strong\u003e\u003cbr/\u003e\n    Win a total of 5 Quick Races in Multiplayer mode.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/779fb05f0b9089f31913ab06b3979f3237f31051.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/779fb05f0b9089f31913ab06b3979f3237f31051.jpg\" alt=\"Master of drift\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Master of drift\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaster of drift\u003c/strong\u003e\u003cbr/\u003e\n    Drift for a total of 500,000 centimetres (196,850 inches).\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/ccbca3625007d9b10f68b29725a659ad497e0b44.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/ccbca3625007d9b10f68b29725a659ad497e0b44.jpg\" alt=\"Get him!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Get him!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGet him!\u003c/strong\u003e\u003cbr/\u003e\n    Win a Quick Race on a track in the Batcave (not unlockable in Split Screen).\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/644cbd8edc9e4dfcf4f0c040f0c3e0dbc6086d5b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/644cbd8edc9e4dfcf4f0c040f0c3e0dbc6086d5b.jpg\" alt=\"Research and Development\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Research and Development\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eResearch and Development\u003c/strong\u003e\u003cbr/\u003e\n    Upgrade the Rarity of one common vehicle of the HOT WHEELS™ - Batman Expansion.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/221e4d6a7dbae7ec17700da3993ee976c86ae664.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/221e4d6a7dbae7ec17700da3993ee976c86ae664.jpg\" alt=\"First night on the streets\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: First night on the streets\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFirst night on the streets\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Unleashed Goal of one Event of the HOT WHEELS™ - Batman Expansion.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/bdc8d3d349dd962fc54be39e5126631a32ee825b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/bdc8d3d349dd962fc54be39e5126631a32ee825b.jpg\" alt=\"Lights, camera, action!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Lights, camera, action!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLights, camera, action!\u003c/strong\u003e\u003cbr/\u003e\n    Win a Quick Race on a track in the Stop Motion Studio (not unlockable in Split Screen).\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/2e90560c925d285110388fddd0276697ad802a8a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/2e90560c925d285110388fddd0276697ad802a8a.jpg\" alt=\"A real giant\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A real giant\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA real giant\u003c/strong\u003e\u003cbr/\u003e\n    Upgrade the Rarity of a common vehicle of the HOT WHEELS™ - Monster Trucks Expansion.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/9e7b3c544dd608112e3babb0522634f909b1f06e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/9e7b3c544dd608112e3babb0522634f909b1f06e.jpg\" alt=\"GO BIG\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: GO BIG\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGO BIG\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Unleashed Goal of an Event of the HOT WHEELS™ - Monster Trucks Expansion.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/04eb393582d7142599bb3581c646f9e7970ab18a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/04eb393582d7142599bb3581c646f9e7970ab18a.jpg\" alt=\"One ticket, please\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: One ticket, please\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOne ticket, please\u003c/strong\u003e\u003cbr/\u003e\n    Win a Quick Race on a track in the Looney Tunes Adventure Park (not unlockable in Split Screen).\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/dbe3b45fe6b19727403b740394addcb5601371a8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/dbe3b45fe6b19727403b740394addcb5601371a8.jpg\" alt=\"ACME guaranteed\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: ACME guaranteed\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eACME guaranteed\u003c/strong\u003e\u003cbr/\u003e\n    Upgrade the Rarity of a common vehicle of the HOT WHEELS™ - Looney Tunes Expansion.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/e9ab7256d825bff17ed2a15d60fc679c80b23020.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/e9ab7256d825bff17ed2a15d60fc679c80b23020.jpg\" alt=\"Beep Beep\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Beep Beep\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeep Beep\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Unleashed Goal of an Event of the HOT WHEELS™ - Looney Tunes Expansion.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/1271700/library_600x900.jpg\" alt=\"HOT WHEELS UNLEASHED™ box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/1271700/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eHOT WHEELS UNLEASHED™\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 32.08%\"\u003e\n        32.08%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e17/53 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e28.3h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2025-01-06\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (17)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/c16ea21b866aeb501a3a3804000ddc6579b03761.jpg\" alt=\"First is free\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFirst is free\u003c/strong\u003e\u003cbr\u003e\n    Open your first Blind Box.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 01, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/47fcb51d1e03a561b24f229219ad531cc3f8b919.jpg\" alt=\"Try your luck\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTry your luck\u003c/strong\u003e\u003cbr\u003e\n    Open a total of 10 Blind Boxes.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 06, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/2ca32c78fa8b2d28eb2021e7b9c91c86fba2f420.jpg\" alt=\"First-timer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFirst-timer\u003c/strong\u003e\u003cbr\u003e\n    Complete the tutorial.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 01, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/43b8a8a847e864e94dd2cc56b0d6f07b97420330.jpg\" alt=\"Tiny hoard\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTiny hoard\u003c/strong\u003e\u003cbr\u003e\n    Get a total of 10,000 Coins.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 12, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/0d2e5833b0403a46b341b22c483579b382b9f985.jpg\" alt=\"Friends no more\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFriends no more\u003c/strong\u003e\u003cbr\u003e\n    Complete a race in Split Screen mode.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 01, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/6e1f1f3f221c5851df0f7b071a87337d6bbdac14.jpg\" alt=\"Spendthrift\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpendthrift\u003c/strong\u003e\u003cbr\u003e\n    Make a purchase in the Shop.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 04, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/2d2dfaa00b7c12c79ee5c2ff547d4c1889a0c0fa.jpg\" alt=\"A good start…\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA good start…\u003c/strong\u003e\u003cbr\u003e\n    Complete the Unleashed Goal of one Race Pad.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 01, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/19aa36cddca480b5f917415852c2e8decb848671.jpg\" alt=\"Top place taken\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTop place taken\u003c/strong\u003e\u003cbr\u003e\n    Win a Boss Race.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 06, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/9a5c3211508fbc21d93501270b2a876d8c30f498.jpg\" alt=\"You're good!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou're good!\u003c/strong\u003e\u003cbr\u003e\n    Reach the podium in a total of 10 Quick Races (not unlockable in Split Screen mode).\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 03, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/26a9763fcdaf88572c6591ffc50997603909b791.jpg\" alt=\"Welcome to the Basement\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWelcome to the Basement\u003c/strong\u003e\u003cbr\u003e\n    Win a Quick Race on any track in the Basement (not unlockable in Split Screen mode).\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 01, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/047efbd43ba9bf1de14d7b9376c1703a6fc4f4b3.jpg\" alt=\"Will you park it for me?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWill you park it for me?\u003c/strong\u003e\u003cbr\u003e\n    Win a Quick Race on any track in the Garage (not unlockable in Split Screen mode).\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 02, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/5b0ba41de6864418d931a2105d46684d6e7dff65.jpg\" alt=\"What time is the test?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhat time is the test?\u003c/strong\u003e\u003cbr\u003e\n    Win a Quick Race on any track in the College Campus (not unlockable in Split Screen mode).\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 02, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/699776381a639c96e89179764cfa0712f67c52e6.jpg\" alt=\"Awesome view!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAwesome view!\u003c/strong\u003e\u003cbr\u003e\n    Win a Quick Race on any track in the Skyscraper (not unlockable in Split Screen mode).\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 06, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/3cfb6fbd0ea2eda6886b63c43a9ff87a6388ace3.jpg\" alt=\"Go beyond limits\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGo beyond limits\u003c/strong\u003e\u003cbr\u003e\n    Win  a Quick Race on any track in the Skatepark (not unlockable in Split Screen mode).\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 02, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/1047e81b1e5cc9606be0f441115a6edd3d89f4da.jpg\" alt=\"Full speed\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFull speed\u003c/strong\u003e\u003cbr\u003e\n    Use the Boost for a total of 10 minutes.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 01, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/852ba9b984534c59a6992b45872352883974116a.jpg\" alt=\"One against all\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOne against all\u003c/strong\u003e\u003cbr\u003e\n    Complete a Quick Race in Multiplayer mode.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 03, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/c187746ea3506eca485270aaff7c663d7a1c9c86.jpg\" alt=\"You have what it takes\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou have what it takes\u003c/strong\u003e\u003cbr\u003e\n    Reach the podium in a total of 3 Quick Races in Multiplayer mode.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 03, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (36)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/65eb06c8b1c0e014658b7a7855247cf61b84ed48.jpg\" alt=\"Wild unpacker\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWild unpacker\u003c/strong\u003e\u003cbr\u003e\n    Open a total of 50 Blind Boxes.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/70d18841a142dc3d8c17b92b795760201eef176c.jpg\" alt=\"Box collector\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBox collector\u003c/strong\u003e\u003cbr\u003e\n    Open a total of 100 Blind Boxes.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/8548cd4525620779a47466495da6849b213a13bf.jpg\" alt=\"Just starting\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJust starting\u003c/strong\u003e\u003cbr\u003e\n    Upgrade the Rarity of one Common vehicle.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/ea7c948bd3c156c89bdbeb36ec3240ed3a2aad55.jpg\" alt=\"Well advanced\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWell advanced\u003c/strong\u003e\u003cbr\u003e\n    Upgrade the Rarity of 10 Common vehicles.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/e486a40e5be04ef026da6bd83c2ea2dcdf87649b.jpg\" alt=\"Fine work\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFine work\u003c/strong\u003e\u003cbr\u003e\n    Upgrade the Rarity of one Rare vehicle.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/29fa69849c3ff29d9fa031838d6d4cb557c75352.jpg\" alt=\"It’s over 9000\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt’s over 9000\u003c/strong\u003e\u003cbr\u003e\n    Upgrade the Rarity of 15 Rare vehicles.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/cb25569088943dc3ef727446807001ee648f5221.jpg\" alt=\"Growing profit\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGrowing profit\u003c/strong\u003e\u003cbr\u003e\n    Get a total of 50,000 Coins.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/cc19dc64fc311615e26681faa67c1a7234f8840f.jpg\" alt=\"Unbridled luxury\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUnbridled luxury\u003c/strong\u003e\u003cbr\u003e\n    Get a total of 100,000 Coins.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/669d36777f4bfbe2ee3f4f074af07dbb7eb36557.jpg\" alt=\"I need more!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI need more!\u003c/strong\u003e\u003cbr\u003e\n    Get a total of 2,500 Gears.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/837b8c7e08f0222b0e297318d9e83222f4f763bb.jpg\" alt=\"Not enough!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNot enough!\u003c/strong\u003e\u003cbr\u003e\n    Get a total of 10,000 Gears.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/a8a303e26955ebfe1433e0b8acbc394d1f984e3f.jpg\" alt=\"What do I do with so many?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhat do I do with so many?\u003c/strong\u003e\u003cbr\u003e\n    Get a total of 25,000 Gears.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/a87c03f67720c2eda85c611a1031cf6d45586265.jpg\" alt=\"Tell no one\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTell no one\u003c/strong\u003e\u003cbr\u003e\n    Meet the requirements of a Secret Race Pad.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/819d2f8e63eb51f529d6f21dd08c4f3c392e4957.jpg\" alt=\"Keeper of Secrets\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKeeper of Secrets\u003c/strong\u003e\u003cbr\u003e\n    Meet the requirements of all the Secret Race Pads.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/34f626b68fa60cba0368d1d20134580d0120d099.jpg\" alt=\"King of the city\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of the city\u003c/strong\u003e\u003cbr\u003e\n    Complete the Unleashed Goal of all the Race Pads.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/85d89f4b4e859538223a39f913df8dbcd48fc651.jpg\" alt=\"No more rivals left\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNo more rivals left\u003c/strong\u003e\u003cbr\u003e\n    Win all the Boss Races.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/3c20c2720326d1927029789a82009be4462a4397.jpg\" alt=\"Take the stage\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTake the stage\u003c/strong\u003e\u003cbr\u003e\n    Validate a Track in Track Builder mode.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/4ba8ecf554b26afc8081cb6ab8aa05ef4d8b2150.jpg\" alt=\"Expert builder\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert builder\u003c/strong\u003e\u003cbr\u003e\n    Validate a total of 5 Tracks in Track Builder mode.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/5234473448406eaedd7f8a5e99e9cc6e5aad77c9.jpg\" alt=\"Can you keep a Secret?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCan you keep a Secret?\u003c/strong\u003e\u003cbr\u003e\n    Unlock a Secret Rarity vehicle.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/6d19e7f4784f33eb1d6f9b1e6758bd4655fdb246.jpg\" alt=\"I want 'em all\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI want 'em all\u003c/strong\u003e\u003cbr\u003e\n    Unlock all Secret Rarity vehicles.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/2974e51edb96c05c14ba028235b9c578c68d95b1.jpg\" alt=\"Now try online\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNow try online\u003c/strong\u003e\u003cbr\u003e\n    Win a Quick Race with AI Difficulty set to Hard (not unlockable in Split Screen mode).\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/d00d8e72e4b39b68f71f766ad2a4c8f9f35df95c.jpg\" alt=\"Not kidding!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNot kidding!\u003c/strong\u003e\u003cbr\u003e\n    Reach the podium in a total of 30 Quick Races (not unlockable in Split Screen mode).\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/a579649bf37bf5ade3f02822e279697e696e4a91.jpg\" alt=\"The most feared\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe most feared\u003c/strong\u003e\u003cbr\u003e\n    Reach the podium in a total of 50 Quick Races (not unlockable in Split Screen mode).\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/9680883763cf588ca35284a5026c9f3b87622960.jpg\" alt=\"Terror of the road\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTerror of the road\u003c/strong\u003e\u003cbr\u003e\n    Reach the podium in a total of 100 Quick Races (not unlockable in Split Screen mode).\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/1eaf3dfa8bd5aa2b03c130a0fc5e802c2a12262a.jpg\" alt=\"Like lightning\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLike lightning\u003c/strong\u003e\u003cbr\u003e\n    Use the Boost for a total of 30 minutes.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/caa8c8854e5d59a8259588cf25287ddee7e7bf9d.jpg\" alt=\"Faster than light\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFaster than light\u003c/strong\u003e\u003cbr\u003e\n    Use the Boost for a total of 60 minutes.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/7e36d1f00740c431c5786c54346fde77b5f3cdc7.jpg\" alt=\"Unstoppable\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUnstoppable\u003c/strong\u003e\u003cbr\u003e\n    Win a total of 5 Quick Races in Multiplayer mode.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/779fb05f0b9089f31913ab06b3979f3237f31051.jpg\" alt=\"Master of drift\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaster of drift\u003c/strong\u003e\u003cbr\u003e\n    Drift for a total of 500,000 centimetres (196,850 inches).\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/ccbca3625007d9b10f68b29725a659ad497e0b44.jpg\" alt=\"Get him!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGet him!\u003c/strong\u003e\u003cbr\u003e\n    Win a Quick Race on a track in the Batcave (not unlockable in Split Screen).\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/644cbd8edc9e4dfcf4f0c040f0c3e0dbc6086d5b.jpg\" alt=\"Research and Development\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eResearch and Development\u003c/strong\u003e\u003cbr\u003e\n    Upgrade the Rarity of one common vehicle of the HOT WHEELS™ - Batman Expansion.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/221e4d6a7dbae7ec17700da3993ee976c86ae664.jpg\" alt=\"First night on the streets\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFirst night on the streets\u003c/strong\u003e\u003cbr\u003e\n    Complete the Unleashed Goal of one Event of the HOT WHEELS™ - Batman Expansion.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/bdc8d3d349dd962fc54be39e5126631a32ee825b.jpg\" alt=\"Lights, camera, action!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLights, camera, action!\u003c/strong\u003e\u003cbr\u003e\n    Win a Quick Race on a track in the Stop Motion Studio (not unlockable in Split Screen).\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/2e90560c925d285110388fddd0276697ad802a8a.jpg\" alt=\"A real giant\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA real giant\u003c/strong\u003e\u003cbr\u003e\n    Upgrade the Rarity of a common vehicle of the HOT WHEELS™ - Monster Trucks Expansion.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/9e7b3c544dd608112e3babb0522634f909b1f06e.jpg\" alt=\"GO BIG\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGO BIG\u003c/strong\u003e\u003cbr\u003e\n    Complete the Unleashed Goal of an Event of the HOT WHEELS™ - Monster Trucks Expansion.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/04eb393582d7142599bb3581c646f9e7970ab18a.jpg\" alt=\"One ticket, please\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOne ticket, please\u003c/strong\u003e\u003cbr\u003e\n    Win a Quick Race on a track in the Looney Tunes Adventure Park (not unlockable in Split Screen).\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/dbe3b45fe6b19727403b740394addcb5601371a8.jpg\" alt=\"ACME guaranteed\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eACME guaranteed\u003c/strong\u003e\u003cbr\u003e\n    Upgrade the Rarity of a common vehicle of the HOT WHEELS™ - Looney Tunes Expansion.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1271700/e9ab7256d825bff17ed2a15d60fc679c80b23020.jpg\" alt=\"Beep Beep\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeep Beep\u003c/strong\u003e\u003cbr\u003e\n    Complete the Unleashed Goal of an Event of the HOT WHEELS™ - Looney Tunes Expansion.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for HOT WHEELS UNLEASHED™ - 32.08% complete with 17/53 achievements unlocked.",
      "date_published": "2025-01-06T00:00:00Z",
      "date_modified": "2025-01-06T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "hot-wheels-unleashed"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/phx/",
      "url": "https://go.waylonwalker.com/steam/phx/",
      "title": "PHX",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/990080/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/990080/library_600x900.jpg\" alt=\"PHX box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/990080/header.jpg\u0026#39;\"/ data-glightbox=\"description: PHX box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003ePHX\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 68.89%\"\u003e\n        68.89%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e31/45 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e156.0h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2024-10-12\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (31)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/f0abf5a97d54b4206b2162f3bac502db8af8df55.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/f0abf5a97d54b4206b2162f3bac502db8af8df55.jpg\" alt=\"The Sort Who Makes an Entrance\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Sort Who Makes an Entrance\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Sort Who Makes an Entrance\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: February 08, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/7984463bf6739db83e7df933a923eb07833b5c5f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/7984463bf6739db83e7df933a923eb07833b5c5f.jpg\" alt=\"The Wise Owl\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Wise Owl\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Wise Owl\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: February 14, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/00ed9983fddb95930e090930c9e324089f189fc6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/00ed9983fddb95930e090930c9e324089f189fc6.jpg\" alt=\"First Class Student\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: First Class Student\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFirst Class Student\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: February 08, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/5c9e26c4941ae4fc98c6eaf3c023e3a18dc2df51.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/5c9e26c4941ae4fc98c6eaf3c023e3a18dc2df51.jpg\" alt=\"Troll with the Punches\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Troll with the Punches\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTroll with the Punches\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: February 09, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/862757b287f9430989c4c5f27e71b0053966f3b3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/862757b287f9430989c4c5f27e71b0053966f3b3.jpg\" alt=\"That\u0026#39;s a Keeper\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: That\u0026#39;s a Keeper\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThat\u0026#39;s a Keeper\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: February 19, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/4f38837452e869bb533ab89385b934ebef36438c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/4f38837452e869bb533ab89385b934ebef36438c.jpg\" alt=\"Rising From the Ashes\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Rising From the Ashes\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRising From the Ashes\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 29, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/9a1b2adf2df9962839e38a20223b12762d5382eb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/9a1b2adf2df9962839e38a20223b12762d5382eb.jpg\" alt=\"Grappling with a Graphorn\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Grappling with a Graphorn\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGrappling with a Graphorn\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 18, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/7be13db16e78295760f0cbfaae7371b3dbb7b1bf.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/7be13db16e78295760f0cbfaae7371b3dbb7b1bf.jpg\" alt=\"The One Who Mastered Memories\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The One Who Mastered Memories\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe One Who Mastered Memories\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 18, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/0ec46a7165d686e77aded42ed7f674b99a303e4a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/0ec46a7165d686e77aded42ed7f674b99a303e4a.jpg\" alt=\"The Hallowed Hero\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Hallowed Hero\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Hallowed Hero\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 03, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/04b644cf02f1b46cdf1e6b4aa4a6191583e3b22f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/04b644cf02f1b46cdf1e6b4aa4a6191583e3b22f.jpg\" alt=\"The Hero of Hogwarts\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Hero of Hogwarts\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Hero of Hogwarts\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 18, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/a2b7d3e686071f87bf5ed5dad766a202cafbd7a4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/a2b7d3e686071f87bf5ed5dad766a202cafbd7a4.jpg\" alt=\"The Seeker of Knowledge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Seeker of Knowledge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Seeker of Knowledge\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 30, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/6fbe088b231a915637d409d41b61d2dcba3be885.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/6fbe088b231a915637d409d41b61d2dcba3be885.jpg\" alt=\"The Avenging Gazelle\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Avenging Gazelle\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Avenging Gazelle\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 30, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/f61b89ae8fe133a925d319112fae20077fa0dd81.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/f61b89ae8fe133a925d319112fae20077fa0dd81.jpg\" alt=\"The Defender of Dragons\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Defender of Dragons\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Defender of Dragons\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 12, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/8fdc2878e6f704b3fe816d6d395232ef3a03d305.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/8fdc2878e6f704b3fe816d6d395232ef3a03d305.jpg\" alt=\"Beast Friends\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Beast Friends\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeast Friends\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 28, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/85d39453201b471b83f75990922cf6b27f3288f2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/85d39453201b471b83f75990922cf6b27f3288f2.jpg\" alt=\"A Sallow Grave\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Sallow Grave\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Sallow Grave\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 19, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/550b9a1b2d2d70e154452a8d2ee1f4d2f9b81b85.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/550b9a1b2d2d70e154452a8d2ee1f4d2f9b81b85.jpg\" alt=\"Flight the Good Flight\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Flight the Good Flight\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFlight the Good Flight\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 18, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/ed7b5ee36cf2e68864ada25dcfa3ab0f3038ae03.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/ed7b5ee36cf2e68864ada25dcfa3ab0f3038ae03.jpg\" alt=\"Challenge Accepted\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Challenge Accepted\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChallenge Accepted\u003c/strong\u003e\u003cbr/\u003e\n    Complete all tiers of a challenge\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 23, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/c54dcf12698edd975e71c525185854c635f60941.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/c54dcf12698edd975e71c525185854c635f60941.jpg\" alt=\"A Keen Sense of Spell\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Keen Sense of Spell\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Keen Sense of Spell\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: February 11, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/04816bf65c1156d9477f5e777b91c1bf55468493.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/04816bf65c1156d9477f5e777b91c1bf55468493.jpg\" alt=\"Loom for Improvement\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Loom for Improvement\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLoom for Improvement\u003c/strong\u003e\u003cbr/\u003e\n    Upgrade a piece of gear\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 04, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/63c8237eef023c8927927260edde6d20fd62d903.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/63c8237eef023c8927927260edde6d20fd62d903.jpg\" alt=\"The Root of the Problem\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Root of the Problem\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Root of the Problem\u003c/strong\u003e\u003cbr/\u003e\n    Stun 10 different enemies using a Mandrake\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 24, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/8cbf670b9a9a58b940321d5928596812dbec454f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/8cbf670b9a9a58b940321d5928596812dbec454f.jpg\" alt=\"Going Through the Potions\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Going Through the Potions\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGoing Through the Potions\u003c/strong\u003e\u003cbr/\u003e\n    Brew every type of potion\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 11, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/0d94a64704b8d8ee821d123962718ae13b4d3963.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/0d94a64704b8d8ee821d123962718ae13b4d3963.jpg\" alt=\"Third Time\u0026#39;s a Charm\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Third Time\u0026#39;s a Charm\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThird Time\u0026#39;s a Charm\u003c/strong\u003e\u003cbr/\u003e\n    Upgrade a piece of gear 3 times\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 24, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/175cc1a73ae03d7bb6d5153467d8012eabaac2aa.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/175cc1a73ae03d7bb6d5153467d8012eabaac2aa.jpg\" alt=\"A Talent for Spending\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Talent for Spending\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Talent for Spending\u003c/strong\u003e\u003cbr/\u003e\n    Spend 5 Talent Points\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: February 14, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/ce4c3eff3b9c4c396b8fb39522fb88ab25b9a73a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/ce4c3eff3b9c4c396b8fb39522fb88ab25b9a73a.jpg\" alt=\"Spilled Milk\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Spilled Milk\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpilled Milk\u003c/strong\u003e\u003cbr/\u003e\n    Use Flipendo ten times – to tip one cow or several\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 17, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/6afeef8290b9e50e645200e690f0eea514b2ce4d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/6afeef8290b9e50e645200e690f0eea514b2ce4d.jpg\" alt=\"Floo Around the World\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Floo Around the World\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFloo Around the World\u003c/strong\u003e\u003cbr/\u003e\n    Unlock all Floo Flames\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 11, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/7c843a190fcde960f01f411423468e3ab88944f5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/7c843a190fcde960f01f411423468e3ab88944f5.jpg\" alt=\"Followed the Butterflies\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Followed the Butterflies\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFollowed the Butterflies\u003c/strong\u003e\u003cbr/\u003e\n    Follow butterflies to a treasure\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: February 14, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/8fd77a4e5c0ebcc9ecca260aee56122eedc9f7ca.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/8fd77a4e5c0ebcc9ecca260aee56122eedc9f7ca.jpg\" alt=\"The Intrepid Explorer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Intrepid Explorer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Intrepid Explorer\u003c/strong\u003e\u003cbr/\u003e\n    Discover all cairn dungeons\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 04, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/a5ded477f34d9d3df22224e988fc388552f8faa8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/a5ded477f34d9d3df22224e988fc388552f8faa8.jpg\" alt=\"Coasting Along\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Coasting Along\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCoasting Along\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 07, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/6b3a40f0b85656377d661cb7cd54cad9e8ed44d3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/6b3a40f0b85656377d661cb7cd54cad9e8ed44d3.jpg\" alt=\"The Ends Petrify the Means\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Ends Petrify the Means\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Ends Petrify the Means\u003c/strong\u003e\u003cbr/\u003e\n    Defeat a total of fifty enemies using Petrificus Totalus\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 09, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/02a9f3eeba17ae2ab4e42682167ad90160b7dd88.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/02a9f3eeba17ae2ab4e42682167ad90160b7dd88.jpg\" alt=\"Raising Expectations\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Raising Expectations\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRaising Expectations\u003c/strong\u003e\u003cbr/\u003e\n    Reach a combo of 100\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 23, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/8513ce755ef9da6ba06ed241dad7b4faf5def123.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/8513ce755ef9da6ba06ed241dad7b4faf5def123.jpg\" alt=\"The Spell Master\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Spell Master\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Spell Master\u003c/strong\u003e\u003cbr/\u003e\n    Learn all spells\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 23, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (14)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/bb97a32ca4e1cbcbd07298fc6cf590ee537cb3f6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/bb97a32ca4e1cbcbd07298fc6cf590ee537cb3f6.jpg\" alt=\"The Toast of the Town\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Toast of the Town\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Toast of the Town\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/996278f7c3712c1f18efd791438aad166d5cceb0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/996278f7c3712c1f18efd791438aad166d5cceb0.jpg\" alt=\"The Auror\u0026#39;s Apprentice\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Auror\u0026#39;s Apprentice\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Auror\u0026#39;s Apprentice\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/093c6bdc6a16e489e1d5a95737583d018337443d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/093c6bdc6a16e489e1d5a95737583d018337443d.jpg\" alt=\"The Gryffindor in the Graveyard\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Gryffindor in the Graveyard\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Gryffindor in the Graveyard\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/c12dced04e9f3a63054b7fb8dbcaf1330ef5c8df.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/c12dced04e9f3a63054b7fb8dbcaf1330ef5c8df.jpg\" alt=\"The Good Samaritan\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Good Samaritan\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Good Samaritan\u003c/strong\u003e\u003cbr/\u003e\n    Complete all side quests\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/0aef905d5ec8747411a60c067889a3bf7e7fb4e4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/0aef905d5ec8747411a60c067889a3bf7e7fb4e4.jpg\" alt=\"Collector\u0026#39;s Edition\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Collector\u0026#39;s Edition\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCollector\u0026#39;s Edition\u003c/strong\u003e\u003cbr/\u003e\n    Complete all collections\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/c5bf1b58a51af945e78369ac7bba31db34f7a069.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/c5bf1b58a51af945e78369ac7bba31db34f7a069.jpg\" alt=\"The Nature of the Beast\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Nature of the Beast\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Nature of the Beast\u003c/strong\u003e\u003cbr/\u003e\n    Breed every type of beast\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/d99243e711db381e6d32a8a2826831b703205e89.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/d99243e711db381e6d32a8a2826831b703205e89.jpg\" alt=\"Put Down Roots\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Put Down Roots\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePut Down Roots\u003c/strong\u003e\u003cbr/\u003e\n    Grow every type of plant\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/e35fd6673f681e364123fa4abed61758a9dd4b10.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/e35fd6673f681e364123fa4abed61758a9dd4b10.jpg\" alt=\"Savvy Spender\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Savvy Spender\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSavvy Spender\u003c/strong\u003e\u003cbr/\u003e\n    Spend all Talent Points\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/9ec1680a9f088cc1abc909b94ced35699a9aa1b3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/9ec1680a9f088cc1abc909b94ced35699a9aa1b3.jpg\" alt=\"Room with a View\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Room with a View\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRoom with a View\u003c/strong\u003e\u003cbr/\u003e\n    Reach the highest point in the castle, the Headmaster\u0026#39;s upper study\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/69c9877ddcce2de47b0210d36d3ca05a765e7c86.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/69c9877ddcce2de47b0210d36d3ca05a765e7c86.jpg\" alt=\"Rise to the Challenges\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Rise to the Challenges\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRise to the Challenges\u003c/strong\u003e\u003cbr/\u003e\n    Defeat enemies in all battle arenas\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/ff9a9dc74765c54f0d6b0763b425204ead97d9a0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/ff9a9dc74765c54f0d6b0763b425204ead97d9a0.jpg\" alt=\"Merlin\u0026#39;s Beard!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Merlin\u0026#39;s Beard!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMerlin\u0026#39;s Beard!\u003c/strong\u003e\u003cbr/\u003e\n    Complete all Merlin Trials\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/8fb128916a1d43f4a96b91bd9d76de4b861d2f12.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/8fb128916a1d43f4a96b91bd9d76de4b861d2f12.jpg\" alt=\"Demiguise Dread\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Demiguise Dread\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDemiguise Dread\u003c/strong\u003e\u003cbr/\u003e\n    Find all Demiguise statues\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/2d2d2aa89f987dcd8e7e1fe3c69bc2375abc7f75.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/2d2d2aa89f987dcd8e7e1fe3c69bc2375abc7f75.jpg\" alt=\"Finishing Touches\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Finishing Touches\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFinishing Touches\u003c/strong\u003e\u003cbr/\u003e\n    Use Ancient Magic on every enemy in the game\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/c52f0bb4243967c409d8125e788483c3eb76b816.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/c52f0bb4243967c409d8125e788483c3eb76b816.jpg\" alt=\"A Forte for Achievement\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Forte for Achievement\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Forte for Achievement\u003c/strong\u003e\u003cbr/\u003e\n    Reach Level 40\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/990080/library_600x900.jpg\" alt=\"PHX box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/990080/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003ePHX\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 68.89%\"\u003e\n        68.89%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e31/45 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e156.0h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2024-10-12\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (31)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/f0abf5a97d54b4206b2162f3bac502db8af8df55.jpg\" alt=\"The Sort Who Makes an Entrance\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Sort Who Makes an Entrance\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: February 08, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/7984463bf6739db83e7df933a923eb07833b5c5f.jpg\" alt=\"The Wise Owl\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Wise Owl\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: February 14, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/00ed9983fddb95930e090930c9e324089f189fc6.jpg\" alt=\"First Class Student\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFirst Class Student\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: February 08, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/5c9e26c4941ae4fc98c6eaf3c023e3a18dc2df51.jpg\" alt=\"Troll with the Punches\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTroll with the Punches\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: February 09, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/862757b287f9430989c4c5f27e71b0053966f3b3.jpg\" alt=\"That's a Keeper\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThat's a Keeper\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: February 19, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/4f38837452e869bb533ab89385b934ebef36438c.jpg\" alt=\"Rising From the Ashes\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRising From the Ashes\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 29, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/9a1b2adf2df9962839e38a20223b12762d5382eb.jpg\" alt=\"Grappling with a Graphorn\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGrappling with a Graphorn\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 18, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/7be13db16e78295760f0cbfaae7371b3dbb7b1bf.jpg\" alt=\"The One Who Mastered Memories\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe One Who Mastered Memories\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 18, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/0ec46a7165d686e77aded42ed7f674b99a303e4a.jpg\" alt=\"The Hallowed Hero\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Hallowed Hero\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 03, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/04b644cf02f1b46cdf1e6b4aa4a6191583e3b22f.jpg\" alt=\"The Hero of Hogwarts\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Hero of Hogwarts\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 18, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/a2b7d3e686071f87bf5ed5dad766a202cafbd7a4.jpg\" alt=\"The Seeker of Knowledge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Seeker of Knowledge\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 30, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/6fbe088b231a915637d409d41b61d2dcba3be885.jpg\" alt=\"The Avenging Gazelle\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Avenging Gazelle\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 30, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/f61b89ae8fe133a925d319112fae20077fa0dd81.jpg\" alt=\"The Defender of Dragons\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Defender of Dragons\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 12, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/8fdc2878e6f704b3fe816d6d395232ef3a03d305.jpg\" alt=\"Beast Friends\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeast Friends\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 28, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/85d39453201b471b83f75990922cf6b27f3288f2.jpg\" alt=\"A Sallow Grave\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Sallow Grave\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 19, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/550b9a1b2d2d70e154452a8d2ee1f4d2f9b81b85.jpg\" alt=\"Flight the Good Flight\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFlight the Good Flight\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 18, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/ed7b5ee36cf2e68864ada25dcfa3ab0f3038ae03.jpg\" alt=\"Challenge Accepted\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChallenge Accepted\u003c/strong\u003e\u003cbr\u003e\n    Complete all tiers of a challenge\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 23, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/c54dcf12698edd975e71c525185854c635f60941.jpg\" alt=\"A Keen Sense of Spell\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Keen Sense of Spell\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: February 11, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/04816bf65c1156d9477f5e777b91c1bf55468493.jpg\" alt=\"Loom for Improvement\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLoom for Improvement\u003c/strong\u003e\u003cbr\u003e\n    Upgrade a piece of gear\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 04, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/63c8237eef023c8927927260edde6d20fd62d903.jpg\" alt=\"The Root of the Problem\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Root of the Problem\u003c/strong\u003e\u003cbr\u003e\n    Stun 10 different enemies using a Mandrake\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 24, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/8cbf670b9a9a58b940321d5928596812dbec454f.jpg\" alt=\"Going Through the Potions\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGoing Through the Potions\u003c/strong\u003e\u003cbr\u003e\n    Brew every type of potion\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 11, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/0d94a64704b8d8ee821d123962718ae13b4d3963.jpg\" alt=\"Third Time's a Charm\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThird Time's a Charm\u003c/strong\u003e\u003cbr\u003e\n    Upgrade a piece of gear 3 times\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 24, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/175cc1a73ae03d7bb6d5153467d8012eabaac2aa.jpg\" alt=\"A Talent for Spending\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Talent for Spending\u003c/strong\u003e\u003cbr\u003e\n    Spend 5 Talent Points\u003cbr\u003e\n    \u003csmall\u003eUnlocked: February 14, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/ce4c3eff3b9c4c396b8fb39522fb88ab25b9a73a.jpg\" alt=\"Spilled Milk\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpilled Milk\u003c/strong\u003e\u003cbr\u003e\n    Use Flipendo ten times – to tip one cow or several\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 17, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/6afeef8290b9e50e645200e690f0eea514b2ce4d.jpg\" alt=\"Floo Around the World\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFloo Around the World\u003c/strong\u003e\u003cbr\u003e\n    Unlock all Floo Flames\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 11, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/7c843a190fcde960f01f411423468e3ab88944f5.jpg\" alt=\"Followed the Butterflies\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFollowed the Butterflies\u003c/strong\u003e\u003cbr\u003e\n    Follow butterflies to a treasure\u003cbr\u003e\n    \u003csmall\u003eUnlocked: February 14, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/8fd77a4e5c0ebcc9ecca260aee56122eedc9f7ca.jpg\" alt=\"The Intrepid Explorer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Intrepid Explorer\u003c/strong\u003e\u003cbr\u003e\n    Discover all cairn dungeons\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 04, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/a5ded477f34d9d3df22224e988fc388552f8faa8.jpg\" alt=\"Coasting Along\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCoasting Along\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 07, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/6b3a40f0b85656377d661cb7cd54cad9e8ed44d3.jpg\" alt=\"The Ends Petrify the Means\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Ends Petrify the Means\u003c/strong\u003e\u003cbr\u003e\n    Defeat a total of fifty enemies using Petrificus Totalus\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 09, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/02a9f3eeba17ae2ab4e42682167ad90160b7dd88.jpg\" alt=\"Raising Expectations\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRaising Expectations\u003c/strong\u003e\u003cbr\u003e\n    Reach a combo of 100\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 23, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/8513ce755ef9da6ba06ed241dad7b4faf5def123.jpg\" alt=\"The Spell Master\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Spell Master\u003c/strong\u003e\u003cbr\u003e\n    Learn all spells\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 23, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (14)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/bb97a32ca4e1cbcbd07298fc6cf590ee537cb3f6.jpg\" alt=\"The Toast of the Town\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Toast of the Town\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/996278f7c3712c1f18efd791438aad166d5cceb0.jpg\" alt=\"The Auror's Apprentice\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Auror's Apprentice\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/093c6bdc6a16e489e1d5a95737583d018337443d.jpg\" alt=\"The Gryffindor in the Graveyard\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Gryffindor in the Graveyard\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/c12dced04e9f3a63054b7fb8dbcaf1330ef5c8df.jpg\" alt=\"The Good Samaritan\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Good Samaritan\u003c/strong\u003e\u003cbr\u003e\n    Complete all side quests\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/0aef905d5ec8747411a60c067889a3bf7e7fb4e4.jpg\" alt=\"Collector's Edition\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCollector's Edition\u003c/strong\u003e\u003cbr\u003e\n    Complete all collections\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/c5bf1b58a51af945e78369ac7bba31db34f7a069.jpg\" alt=\"The Nature of the Beast\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Nature of the Beast\u003c/strong\u003e\u003cbr\u003e\n    Breed every type of beast\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/d99243e711db381e6d32a8a2826831b703205e89.jpg\" alt=\"Put Down Roots\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePut Down Roots\u003c/strong\u003e\u003cbr\u003e\n    Grow every type of plant\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/e35fd6673f681e364123fa4abed61758a9dd4b10.jpg\" alt=\"Savvy Spender\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSavvy Spender\u003c/strong\u003e\u003cbr\u003e\n    Spend all Talent Points\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/9ec1680a9f088cc1abc909b94ced35699a9aa1b3.jpg\" alt=\"Room with a View\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRoom with a View\u003c/strong\u003e\u003cbr\u003e\n    Reach the highest point in the castle, the Headmaster's upper study\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/69c9877ddcce2de47b0210d36d3ca05a765e7c86.jpg\" alt=\"Rise to the Challenges\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRise to the Challenges\u003c/strong\u003e\u003cbr\u003e\n    Defeat enemies in all battle arenas\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/ff9a9dc74765c54f0d6b0763b425204ead97d9a0.jpg\" alt=\"Merlin's Beard!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMerlin's Beard!\u003c/strong\u003e\u003cbr\u003e\n    Complete all Merlin Trials\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/8fb128916a1d43f4a96b91bd9d76de4b861d2f12.jpg\" alt=\"Demiguise Dread\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDemiguise Dread\u003c/strong\u003e\u003cbr\u003e\n    Find all Demiguise statues\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/2d2d2aa89f987dcd8e7e1fe3c69bc2375abc7f75.jpg\" alt=\"Finishing Touches\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFinishing Touches\u003c/strong\u003e\u003cbr\u003e\n    Use Ancient Magic on every enemy in the game\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/990080/c52f0bb4243967c409d8125e788483c3eb76b816.jpg\" alt=\"A Forte for Achievement\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Forte for Achievement\u003c/strong\u003e\u003cbr\u003e\n    Reach Level 40\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for PHX - 68.89% complete with 31/45 achievements unlocked.",
      "date_published": "2024-10-12T00:00:00Z",
      "date_modified": "2024-10-12T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "phx"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/star-wars-jedi-fallen-order/",
      "url": "https://go.waylonwalker.com/steam/star-wars-jedi-fallen-order/",
      "title": "STAR WARS Jedi: Fallen Order™ ",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/1172380/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/1172380/library_600x900.jpg\" alt=\"STAR WARS Jedi: Fallen Order™  box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/1172380/header.jpg\u0026#39;\"/ data-glightbox=\"description: STAR WARS Jedi: Fallen Order™  box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eSTAR WARS Jedi: Fallen Order™ \u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 5.13%\"\u003e\n        5.13%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e2/39 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e30.2h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2024-10-01\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (2)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/589a62798471033a1815d22d7e0986837b5e11d0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/589a62798471033a1815d22d7e0986837b5e11d0.jpg\" alt=\"The Mantis\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Mantis\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Mantis\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 08, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/965ec4411a476492fa47a02319ab8b867da81b51.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/965ec4411a476492fa47a02319ab8b867da81b51.jpg\" alt=\"A Long Time Ago\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Long Time Ago\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Long Time Ago\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 09, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (37)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/459730dff70c0731f8d96a6d60617c3f0616ba8f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/459730dff70c0731f8d96a6d60617c3f0616ba8f.jpg\" alt=\"Kicking Back\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Kicking Back\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKicking Back\u003c/strong\u003e\u003cbr/\u003e\n    Kick a phillak that has kicked you\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/4dd8fcae732b884533f786a356a4cecd53640523.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/4dd8fcae732b884533f786a356a4cecd53640523.jpg\" alt=\"Collector\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Collector\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCollector\u003c/strong\u003e\u003cbr/\u003e\n    Collect all chests and secrets\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/43a11d7468040675b6eddfcd6ad1a60ed8d5431f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/43a11d7468040675b6eddfcd6ad1a60ed8d5431f.jpg\" alt=\"Legendary Beasts\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Legendary Beasts\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLegendary Beasts\u003c/strong\u003e\u003cbr/\u003e\n    Defeat four mysterious creatures\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/3bbe50f613a413d5eae408fc3e639f2edb6a9e70.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/3bbe50f613a413d5eae408fc3e639f2edb6a9e70.jpg\" alt=\"Feel the Force\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Feel the Force\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFeel the Force\u003c/strong\u003e\u003cbr/\u003e\n    Unlock all Jedi skills\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/8d8ab4df7d63a9f40377e9b608cde4300d61def5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/8d8ab4df7d63a9f40377e9b608cde4300d61def5.jpg\" alt=\"A Galaxy Far, Far Away\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Galaxy Far, Far Away\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Galaxy Far, Far Away\u003c/strong\u003e\u003cbr/\u003e\n    Complete all of BD-1\u0026#39;s holomaps\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/894cd70cb828f9de6a2b8670eb4fe827eaf2ebf9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/894cd70cb828f9de6a2b8670eb4fe827eaf2ebf9.jpg\" alt=\"Trust Only In The Force\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Trust Only In The Force\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTrust Only In The Force\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/49d598e1f1f3173354131cba9b8e8c936e86a4d7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/49d598e1f1f3173354131cba9b8e8c936e86a4d7.jpg\" alt=\"The Obstacle is the Way\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Obstacle is the Way\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Obstacle is the Way\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/d38797c9dd8cc2a88ed1cb295f66db28f35cd2d9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/d38797c9dd8cc2a88ed1cb295f66db28f35cd2d9.jpg\" alt=\"Everything is Connected\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Everything is Connected\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEverything is Connected\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/a1d59f75abaf10787a9f75e2db5b0073aae7932c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/a1d59f75abaf10787a9f75e2db5b0073aae7932c.jpg\" alt=\"The Holocron Awaits\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Holocron Awaits\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Holocron Awaits\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/421a77c93086e6f06da1db1ffecf3c7a7d27a9c3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/421a77c93086e6f06da1db1ffecf3c7a7d27a9c3.jpg\" alt=\"Happy Go Wookiee\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Happy Go Wookiee\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHappy Go Wookiee\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/b60b7a5f7ac4d01b42131e54b3b084cf3ac3f125.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/b60b7a5f7ac4d01b42131e54b3b084cf3ac3f125.jpg\" alt=\"Her Name Was Masana Tide\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Her Name Was Masana Tide\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHer Name Was Masana Tide\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/b8f097beac258d1ce01945e8b00c151579aa807b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/b8f097beac258d1ce01945e8b00c151579aa807b.jpg\" alt=\"Visiting Alderaan Places\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Visiting Alderaan Places\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVisiting Alderaan Places\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/aa45e6a725b6d467b813578017b5b1cfd75710ff.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/aa45e6a725b6d467b813578017b5b1cfd75710ff.jpg\" alt=\"Gorgara Falls\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Gorgara Falls\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGorgara Falls\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/501ec61e22d739df4d11335a11053eb505cc6d57.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/501ec61e22d739df4d11335a11053eb505cc6d57.jpg\" alt=\"For A More Civilized Age\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: For A More Civilized Age\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFor A More Civilized Age\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/176ad657df8824890e44a48fbca92786d972953b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/176ad657df8824890e44a48fbca92786d972953b.jpg\" alt=\"I Knew He Was No Good\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: I Knew He Was No Good\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI Knew He Was No Good\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/8c3bc797fdf1b358f981377c63a5739df4e8ed5d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/8c3bc797fdf1b358f981377c63a5739df4e8ed5d.jpg\" alt=\"Back At You\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Back At You\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBack At You\u003c/strong\u003e\u003cbr/\u003e\n    Defeat 50 enemies with reflected blaster bolts\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/c2def905a9935b3cd5e8802fd5cd61aec5781792.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/c2def905a9935b3cd5e8802fd5cd61aec5781792.jpg\" alt=\"Perfect Timing\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Perfect Timing\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePerfect Timing\u003c/strong\u003e\u003cbr/\u003e\n    Parry 100 enemies\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/8d2d0db624671ca29870ecf369dee44a850749e5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/8d2d0db624671ca29870ecf369dee44a850749e5.jpg\" alt=\"Kickoff\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Kickoff\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKickoff\u003c/strong\u003e\u003cbr/\u003e\n    Defeat an enemy using only kicks\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/624c37952ce64fdb75b642ecb844f02f205dc724.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/624c37952ce64fdb75b642ecb844f02f205dc724.jpg\" alt=\"Triple Take\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Triple Take\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTriple Take\u003c/strong\u003e\u003cbr/\u003e\n    Defeat 3 enemies using a single lightsaber throw\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/cab1cefce57913f71b561bbac037e1cd301fda98.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/cab1cefce57913f71b561bbac037e1cd301fda98.jpg\" alt=\"What Goes Around...\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: What Goes Around...\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhat Goes Around...\u003c/strong\u003e\u003cbr/\u003e\n    Defeat an enemy with their own Slowed blaster bolt\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/055bc8ba2a278bb084721cb77757f0e9dc66db49.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/055bc8ba2a278bb084721cb77757f0e9dc66db49.jpg\" alt=\"Big Bang\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Big Bang\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBig Bang\u003c/strong\u003e\u003cbr/\u003e\n    Defeat 20 enemies with explosives\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/fec7f17f17c3f8bdf21fbfc434af78515dbec608.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/fec7f17f17c3f8bdf21fbfc434af78515dbec608.jpg\" alt=\"Don\u0026#39;t Mess with BD-1\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Don\u0026#39;t Mess with BD-1\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDon\u0026#39;t Mess with BD-1\u003c/strong\u003e\u003cbr/\u003e\n    Defeat an enemy with a hacked droid\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/1cd2f37c2713809527925975198f3507a03ec313.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/1cd2f37c2713809527925975198f3507a03ec313.jpg\" alt=\"Can\u0026#39;t Touch This\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Can\u0026#39;t Touch This\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCan\u0026#39;t Touch This\u003c/strong\u003e\u003cbr/\u003e\n    Precision Evade 100 attacks\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/548c5c6f31fd1f859506b72ceecbcf9e944c4363.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/548c5c6f31fd1f859506b72ceecbcf9e944c4363.jpg\" alt=\"Look Out Below\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Look Out Below\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLook Out Below\u003c/strong\u003e\u003cbr/\u003e\n    Send 25 enemies over the edge\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/9699dcb686c8e98f319ec4741429bbad85f863fa.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/9699dcb686c8e98f319ec4741429bbad85f863fa.jpg\" alt=\"Not So Fast\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Not So Fast\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNot So Fast\u003c/strong\u003e\u003cbr/\u003e\n    Defeat 25 enemies while they are under the effect of Empowered Slow\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/33a3953f59a5c5994d2643f33650e82d327e5038.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/33a3953f59a5c5994d2643f33650e82d327e5038.jpg\" alt=\"Bank Shot\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bank Shot\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBank Shot\u003c/strong\u003e\u003cbr/\u003e\n    Defeat an enemy by colliding them with another enemy\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/5923e62f42a99475615847d6fbc98712413eb3d2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/5923e62f42a99475615847d6fbc98712413eb3d2.jpg\" alt=\"Blade Master\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Blade Master\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlade Master\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/44cecfa7b86992c7754e28abe2b3081e4a45a241.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/44cecfa7b86992c7754e28abe2b3081e4a45a241.jpg\" alt=\"Cal Got Your Tongue?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cal Got Your Tongue?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCal Got Your Tongue?\u003c/strong\u003e\u003cbr/\u003e\n    Slice an oggdo\u0026#39;s tongue\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/4e7f2b2e3f1a4eba8361748e19f678b40e77e99d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/4e7f2b2e3f1a4eba8361748e19f678b40e77e99d.jpg\" alt=\"Medical Droid\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Medical Droid\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMedical Droid\u003c/strong\u003e\u003cbr/\u003e\n    Find all of BD-1\u0026#39;s stim canisters\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/8676d681b392cac08bea39444c568bb6310d2141.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/8676d681b392cac08bea39444c568bb6310d2141.jpg\" alt=\"Green Thumb\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Green Thumb\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGreen Thumb\u003c/strong\u003e\u003cbr/\u003e\n    Have a fully grown terrarium\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/173df9d377a6dc906ab625c916ec1c631e7aaccb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/173df9d377a6dc906ab625c916ec1c631e7aaccb.jpg\" alt=\"Full House\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Full House\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFull House\u003c/strong\u003e\u003cbr/\u003e\n    Recruit all possible crew members for the Mantis\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/e3b143c8da841f2020dce3dce17fc18b6045ffe8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/e3b143c8da841f2020dce3dce17fc18b6045ffe8.jpg\" alt=\"Data Disk\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Data Disk\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eData Disk\u003c/strong\u003e\u003cbr/\u003e\n    Find all of BD-1\u0026#39;s encrypted logs\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/3bd3dc98fd1e0ae83914a721e857791491ecadf5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/3bd3dc98fd1e0ae83914a721e857791491ecadf5.jpg\" alt=\"Sabersmith\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sabersmith\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSabersmith\u003c/strong\u003e\u003cbr/\u003e\n    Fully customize your lightsaber\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/7f42c5b849c247bcbd91c22e3fcdfc3cc1fc1cef.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/7f42c5b849c247bcbd91c22e3fcdfc3cc1fc1cef.jpg\" alt=\"The Full Glow-Up\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Full Glow-Up\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Full Glow-Up\u003c/strong\u003e\u003cbr/\u003e\n    Customize the look of Cal, BD-1, and the Mantis\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/61018e63e4c35f893d4eacd863ce8f13f2082066.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/61018e63e4c35f893d4eacd863ce8f13f2082066.jpg\" alt=\"Data Collector\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Data Collector\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eData Collector\u003c/strong\u003e\u003cbr/\u003e\n    Scan all enemy types\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/d065cd309ea42d008649fade61b5275acf1ee947.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/d065cd309ea42d008649fade61b5275acf1ee947.jpg\" alt=\"Scum and Villainy\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Scum and Villainy\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eScum and Villainy\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/dd5d2438d89ec010ebc10a434ab010a83d154dd8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/dd5d2438d89ec010ebc10a434ab010a83d154dd8.jpg\" alt=\"Echo Location\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Echo Location\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEcho Location\u003c/strong\u003e\u003cbr/\u003e\n    Discover 75 Force Echoes\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/1172380/library_600x900.jpg\" alt=\"STAR WARS Jedi: Fallen Order™  box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/1172380/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eSTAR WARS Jedi: Fallen Order™ \u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 5.13%\"\u003e\n        5.13%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e2/39 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e30.2h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2024-10-01\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (2)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/589a62798471033a1815d22d7e0986837b5e11d0.jpg\" alt=\"The Mantis\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Mantis\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 08, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/965ec4411a476492fa47a02319ab8b867da81b51.jpg\" alt=\"A Long Time Ago\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Long Time Ago\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 09, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (37)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/459730dff70c0731f8d96a6d60617c3f0616ba8f.jpg\" alt=\"Kicking Back\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKicking Back\u003c/strong\u003e\u003cbr\u003e\n    Kick a phillak that has kicked you\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/4dd8fcae732b884533f786a356a4cecd53640523.jpg\" alt=\"Collector\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCollector\u003c/strong\u003e\u003cbr\u003e\n    Collect all chests and secrets\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/43a11d7468040675b6eddfcd6ad1a60ed8d5431f.jpg\" alt=\"Legendary Beasts\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLegendary Beasts\u003c/strong\u003e\u003cbr\u003e\n    Defeat four mysterious creatures\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/3bbe50f613a413d5eae408fc3e639f2edb6a9e70.jpg\" alt=\"Feel the Force\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFeel the Force\u003c/strong\u003e\u003cbr\u003e\n    Unlock all Jedi skills\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/8d8ab4df7d63a9f40377e9b608cde4300d61def5.jpg\" alt=\"A Galaxy Far, Far Away\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Galaxy Far, Far Away\u003c/strong\u003e\u003cbr\u003e\n    Complete all of BD-1's holomaps\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/894cd70cb828f9de6a2b8670eb4fe827eaf2ebf9.jpg\" alt=\"Trust Only In The Force\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTrust Only In The Force\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/49d598e1f1f3173354131cba9b8e8c936e86a4d7.jpg\" alt=\"The Obstacle is the Way\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Obstacle is the Way\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/d38797c9dd8cc2a88ed1cb295f66db28f35cd2d9.jpg\" alt=\"Everything is Connected\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEverything is Connected\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/a1d59f75abaf10787a9f75e2db5b0073aae7932c.jpg\" alt=\"The Holocron Awaits\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Holocron Awaits\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/421a77c93086e6f06da1db1ffecf3c7a7d27a9c3.jpg\" alt=\"Happy Go Wookiee\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHappy Go Wookiee\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/b60b7a5f7ac4d01b42131e54b3b084cf3ac3f125.jpg\" alt=\"Her Name Was Masana Tide\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHer Name Was Masana Tide\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/b8f097beac258d1ce01945e8b00c151579aa807b.jpg\" alt=\"Visiting Alderaan Places\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVisiting Alderaan Places\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/aa45e6a725b6d467b813578017b5b1cfd75710ff.jpg\" alt=\"Gorgara Falls\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGorgara Falls\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/501ec61e22d739df4d11335a11053eb505cc6d57.jpg\" alt=\"For A More Civilized Age\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFor A More Civilized Age\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/176ad657df8824890e44a48fbca92786d972953b.jpg\" alt=\"I Knew He Was No Good\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI Knew He Was No Good\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/8c3bc797fdf1b358f981377c63a5739df4e8ed5d.jpg\" alt=\"Back At You\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBack At You\u003c/strong\u003e\u003cbr\u003e\n    Defeat 50 enemies with reflected blaster bolts\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/c2def905a9935b3cd5e8802fd5cd61aec5781792.jpg\" alt=\"Perfect Timing\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePerfect Timing\u003c/strong\u003e\u003cbr\u003e\n    Parry 100 enemies\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/8d2d0db624671ca29870ecf369dee44a850749e5.jpg\" alt=\"Kickoff\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKickoff\u003c/strong\u003e\u003cbr\u003e\n    Defeat an enemy using only kicks\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/624c37952ce64fdb75b642ecb844f02f205dc724.jpg\" alt=\"Triple Take\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTriple Take\u003c/strong\u003e\u003cbr\u003e\n    Defeat 3 enemies using a single lightsaber throw\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/cab1cefce57913f71b561bbac037e1cd301fda98.jpg\" alt=\"What Goes Around...\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhat Goes Around...\u003c/strong\u003e\u003cbr\u003e\n    Defeat an enemy with their own Slowed blaster bolt\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/055bc8ba2a278bb084721cb77757f0e9dc66db49.jpg\" alt=\"Big Bang\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBig Bang\u003c/strong\u003e\u003cbr\u003e\n    Defeat 20 enemies with explosives\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/fec7f17f17c3f8bdf21fbfc434af78515dbec608.jpg\" alt=\"Don't Mess with BD-1\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDon't Mess with BD-1\u003c/strong\u003e\u003cbr\u003e\n    Defeat an enemy with a hacked droid\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/1cd2f37c2713809527925975198f3507a03ec313.jpg\" alt=\"Can't Touch This\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCan't Touch This\u003c/strong\u003e\u003cbr\u003e\n    Precision Evade 100 attacks\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/548c5c6f31fd1f859506b72ceecbcf9e944c4363.jpg\" alt=\"Look Out Below\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLook Out Below\u003c/strong\u003e\u003cbr\u003e\n    Send 25 enemies over the edge\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/9699dcb686c8e98f319ec4741429bbad85f863fa.jpg\" alt=\"Not So Fast\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNot So Fast\u003c/strong\u003e\u003cbr\u003e\n    Defeat 25 enemies while they are under the effect of Empowered Slow\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/33a3953f59a5c5994d2643f33650e82d327e5038.jpg\" alt=\"Bank Shot\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBank Shot\u003c/strong\u003e\u003cbr\u003e\n    Defeat an enemy by colliding them with another enemy\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/5923e62f42a99475615847d6fbc98712413eb3d2.jpg\" alt=\"Blade Master\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlade Master\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/44cecfa7b86992c7754e28abe2b3081e4a45a241.jpg\" alt=\"Cal Got Your Tongue?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCal Got Your Tongue?\u003c/strong\u003e\u003cbr\u003e\n    Slice an oggdo's tongue\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/4e7f2b2e3f1a4eba8361748e19f678b40e77e99d.jpg\" alt=\"Medical Droid\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMedical Droid\u003c/strong\u003e\u003cbr\u003e\n    Find all of BD-1's stim canisters\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/8676d681b392cac08bea39444c568bb6310d2141.jpg\" alt=\"Green Thumb\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGreen Thumb\u003c/strong\u003e\u003cbr\u003e\n    Have a fully grown terrarium\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/173df9d377a6dc906ab625c916ec1c631e7aaccb.jpg\" alt=\"Full House\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFull House\u003c/strong\u003e\u003cbr\u003e\n    Recruit all possible crew members for the Mantis\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/e3b143c8da841f2020dce3dce17fc18b6045ffe8.jpg\" alt=\"Data Disk\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eData Disk\u003c/strong\u003e\u003cbr\u003e\n    Find all of BD-1's encrypted logs\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/3bd3dc98fd1e0ae83914a721e857791491ecadf5.jpg\" alt=\"Sabersmith\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSabersmith\u003c/strong\u003e\u003cbr\u003e\n    Fully customize your lightsaber\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/7f42c5b849c247bcbd91c22e3fcdfc3cc1fc1cef.jpg\" alt=\"The Full Glow-Up\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Full Glow-Up\u003c/strong\u003e\u003cbr\u003e\n    Customize the look of Cal, BD-1, and the Mantis\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/61018e63e4c35f893d4eacd863ce8f13f2082066.jpg\" alt=\"Data Collector\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eData Collector\u003c/strong\u003e\u003cbr\u003e\n    Scan all enemy types\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/d065cd309ea42d008649fade61b5275acf1ee947.jpg\" alt=\"Scum and Villainy\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eScum and Villainy\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1172380/dd5d2438d89ec010ebc10a434ab010a83d154dd8.jpg\" alt=\"Echo Location\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEcho Location\u003c/strong\u003e\u003cbr\u003e\n    Discover 75 Force Echoes\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for STAR WARS Jedi: Fallen Order™ - 5.13% complete with 2/39 achievements unlocked.",
      "date_published": "2024-10-01T00:00:00Z",
      "date_modified": "2024-10-01T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "star-wars-jedi-fallen-order"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/harry-potter-quidditch-champions/",
      "url": "https://go.waylonwalker.com/steam/harry-potter-quidditch-champions/",
      "title": "Harry Potter: Quidditch Champions",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/2878600/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/2878600/library_600x900.jpg\" alt=\"Harry Potter: Quidditch Champions box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/2878600/header.jpg\u0026#39;\"/ data-glightbox=\"description: Harry Potter: Quidditch Champions box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eHarry Potter: Quidditch Champions\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 74.19%\"\u003e\n        74.19%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e23/31 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e38.0h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2024-10-01\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (23)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/e843f6042b7986a8adf4eb9582ceeb0d71505a52.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/e843f6042b7986a8adf4eb9582ceeb0d71505a52.jpg\" alt=\"It\u0026#39;s Not Much, but it\u0026#39;s Home!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: It\u0026#39;s Not Much, but it\u0026#39;s Home!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt\u0026#39;s Not Much, but it\u0026#39;s Home!\u003c/strong\u003e\u003cbr/\u003e\n    Complete The Weasley Burrow Garden Cup\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 07, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/c14731ee7fbe298567dae4e4b6cef2c1f425e2e9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/c14731ee7fbe298567dae4e4b6cef2c1f425e2e9.jpg\" alt=\"Everyone Starts at the Beginning at Hogwarts\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Everyone Starts at the Beginning at Hogwarts\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEveryone Starts at the Beginning at Hogwarts\u003c/strong\u003e\u003cbr/\u003e\n    Win your first game\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 07, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/f049d59260d81316e7a8a823527e544a24214d45.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/f049d59260d81316e7a8a823527e544a24214d45.jpg\" alt=\"Mischief Managed\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mischief Managed\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMischief Managed\u003c/strong\u003e\u003cbr/\u003e\n    Stun a Player while they are highlighted for a score event\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 21, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/ec1c6d0faa018f218aa950520c066f013cffad0c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/ec1c6d0faa018f218aa950520c066f013cffad0c.jpg\" alt=\"Hogwarts Hero\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hogwarts Hero\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHogwarts Hero\u003c/strong\u003e\u003cbr/\u003e\n    Win the Hogwarts Quidditch House Cup for the first time\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 08, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/6108a34f7e63a0029f6d3cb370569de4c472244a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/6108a34f7e63a0029f6d3cb370569de4c472244a.jpg\" alt=\"Rough Game, Quidditch. Brutal!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Rough Game, Quidditch. Brutal!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRough Game, Quidditch. Brutal!\u003c/strong\u003e\u003cbr/\u003e\n    Win a game of Quidditch without conceding any points\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 19, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/897af559490e3afa54b1f6a9cf0be26fd7456a2e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/897af559490e3afa54b1f6a9cf0be26fd7456a2e.jpg\" alt=\"Tutshill Tornado\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tutshill Tornado\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTutshill Tornado\u003c/strong\u003e\u003cbr/\u003e\n    Win 25 games of Quidditch\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 26, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/3dd0c064c85c4ad0c8bc4bb85fb0fadd52083dca.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/3dd0c064c85c4ad0c8bc4bb85fb0fadd52083dca.jpg\" alt=\"Look! Mum Made You a Sweater!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Look! Mum Made You a Sweater!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLook! Mum Made You a Sweater!\u003c/strong\u003e\u003cbr/\u003e\n    Customize a character in your roster\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 04, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/0cfc40e93d978fe5cbc5ab6aa67b8dcb26d05ec7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/0cfc40e93d978fe5cbc5ab6aa67b8dcb26d05ec7.jpg\" alt=\"Triwizard Titan\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Triwizard Titan\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTriwizard Titan\u003c/strong\u003e\u003cbr/\u003e\n    Win the Triwizard Quidditch Cup for the first time\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 19, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/38091b645220c64afc262e1c17b4f9e221744f71.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/38091b645220c64afc262e1c17b4f9e221744f71.jpg\" alt=\"World Cup Wonder\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: World Cup Wonder\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWorld Cup Wonder\u003c/strong\u003e\u003cbr/\u003e\n    Win the World Cup for the first time\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 27, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/061d88d314e343fd7d635bc046a50272835853ba.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/061d88d314e343fd7d635bc046a50272835853ba.jpg\" alt=\"I Want a Nice, Clean Game\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: I Want a Nice, Clean Game\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI Want a Nice, Clean Game\u003c/strong\u003e\u003cbr/\u003e\n    Play 5 PVP Matches\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 22, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/819e56f5c2ed454df4518f6f6a7472822021400d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/819e56f5c2ed454df4518f6f6a7472822021400d.jpg\" alt=\"Bottle Fame\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bottle Fame\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBottle Fame\u003c/strong\u003e\u003cbr/\u003e\n    Complete a Career Challenge\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 04, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/ee876457e6b72c0c7563be7bb038e7bee21fc215.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/ee876457e6b72c0c7563be7bb038e7bee21fc215.jpg\" alt=\"Brew Glory\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Brew Glory\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBrew Glory\u003c/strong\u003e\u003cbr/\u003e\n    Complete a Mastery Challenge for each role\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 29, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/56d68b9f3ffc38511f55f57af4ce2b3bddff8967.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/56d68b9f3ffc38511f55f57af4ce2b3bddff8967.jpg\" alt=\"I\u0026#39;ve Always Wanted to Use That Spell\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: I\u0026#39;ve Always Wanted to Use That Spell\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI\u0026#39;ve Always Wanted to Use That Spell\u003c/strong\u003e\u003cbr/\u003e\n    Max out skill points in a single role\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 23, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/a13f9196dee6cc8a6d8a931946a75d0ae7e7b780.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/a13f9196dee6cc8a6d8a931946a75d0ae7e7b780.jpg\" alt=\"It\u0026#39;s Not Any Broomstick, it\u0026#39;s a Nimbus 2000\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: It\u0026#39;s Not Any Broomstick, it\u0026#39;s a Nimbus 2000\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt\u0026#39;s Not Any Broomstick, it\u0026#39;s a Nimbus 2000\u003c/strong\u003e\u003cbr/\u003e\n    Upgrade a broom to max level\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 21, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/457f477bfa09ef6b61b79e52f8372d5d38229cad.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/457f477bfa09ef6b61b79e52f8372d5d38229cad.jpg\" alt=\"Up!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Up!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUp!\u003c/strong\u003e\u003cbr/\u003e\n    Complete Chaser Training\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 04, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/a7dd471be9852e2669d9ed01862bf7f62b5c1629.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/a7dd471be9852e2669d9ed01862bf7f62b5c1629.jpg\" alt=\"The Porskoff Ploy\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Porskoff Ploy\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Porskoff Ploy\u003c/strong\u003e\u003cbr/\u003e\n    Assist a goal by shovel-passing to a teammate shortly before they score\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 19, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/302855af44a3bc843a44d911a3099f1920b3c7a7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/302855af44a3bc843a44d911a3099f1920b3c7a7.jpg\" alt=\"You\u0026#39;d Make a Fair Beater\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: You\u0026#39;d Make a Fair Beater\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou\u0026#39;d Make a Fair Beater\u003c/strong\u003e\u003cbr/\u003e\n    Complete Beater Training\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 04, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/aa1ae35c89bf986968b11d1c13e8eb40a4b4cac3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/aa1ae35c89bf986968b11d1c13e8eb40a4b4cac3.jpg\" alt=\"Brilliant, but Scary\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Brilliant, but Scary\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBrilliant, but Scary\u003c/strong\u003e\u003cbr/\u003e\n    Eliminate the opposing Beater without getting hit by a Bludger\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 21, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/d793fcfe43174da0e7573afa58648f3ed94052b4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/d793fcfe43174da0e7573afa58648f3ed94052b4.jpg\" alt=\"Knock on Wood\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Knock on Wood\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKnock on Wood\u003c/strong\u003e\u003cbr/\u003e\n    Get an assist by stunning the enemy Keeper shortly before a goal\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 23, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/5a34e0506a11095363a20ce845b245c8a7f1135b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/5a34e0506a11095363a20ce845b245c8a7f1135b.jpg\" alt=\"The Keeper, That\u0026#39;s Me...\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Keeper, That\u0026#39;s Me...\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Keeper, That\u0026#39;s Me...\u003c/strong\u003e\u003cbr/\u003e\n    Complete Keeper Training\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 04, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/b8a51399ac7569d3b7ba33e6be7344a86eefcd19.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/b8a51399ac7569d3b7ba33e6be7344a86eefcd19.jpg\" alt=\"The Youngest Seeker in a Century\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Youngest Seeker in a Century\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Youngest Seeker in a Century\u003c/strong\u003e\u003cbr/\u003e\n    Complete Seeker Training\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 07, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/930e1cfb6d1613f69e6c46ebf99d256109a6194a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/930e1cfb6d1613f69e6c46ebf99d256109a6194a.jpg\" alt=\"Roderick Plumpton’s Protégé\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Roderick Plumpton’s Protégé\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRoderick Plumpton’s Protégé\u003c/strong\u003e\u003cbr/\u003e\n    Catch a Snitch in less than 120 seconds\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 07, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/f3a4341ef8dcc171538a172f7dfa72cd199d49a7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/f3a4341ef8dcc171538a172f7dfa72cd199d49a7.jpg\" alt=\"Constant Vigilance!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Constant Vigilance!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eConstant Vigilance!\u003c/strong\u003e\u003cbr/\u003e\n    Catch a Snitch without getting hit by a Bludger\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 08, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (8)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/cf816a22766edb4ff0ee4a51ef0cc1414f01aac7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/cf816a22766edb4ff0ee4a51ef0cc1414f01aac7.jpg\" alt=\"Quidditch Champion\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Quidditch Champion\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eQuidditch Champion\u003c/strong\u003e\u003cbr/\u003e\n    Win 100 Games of Quidditch\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/d789e88eacdc08b87d6b56978c9210c73c06cbf3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/d789e88eacdc08b87d6b56978c9210c73c06cbf3.jpg\" alt=\"Role-Star\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Role-Star\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRole-Star\u003c/strong\u003e\u003cbr/\u003e\n    Earn a Platinum medal for each role\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/99c45e6a16a224b4fa0b14747859bfd480cbefb4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/99c45e6a16a224b4fa0b14747859bfd480cbefb4.jpg\" alt=\"Quidditch is Easy Enough to Understand\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Quidditch is Easy Enough to Understand\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eQuidditch is Easy Enough to Understand\u003c/strong\u003e\u003cbr/\u003e\n    Win any Cup on Champion difficulty\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/99a1ec888b07431e3497c361006856a9e42e687c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/99a1ec888b07431e3497c361006856a9e42e687c.jpg\" alt=\"“E” for Exceeds Expectations\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: “E” for Exceeds Expectations\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e“E” for Exceeds Expectations\u003c/strong\u003e\u003cbr/\u003e\n    Reach level 45 in your Career\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/e189280c51071742b3991570984162753cefa7a7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/e189280c51071742b3991570984162753cefa7a7.jpg\" alt=\"Don’t Go Making Friends with the Wrong Sort…\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Don’t Go Making Friends with the Wrong Sort…\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDon’t Go Making Friends with the Wrong Sort…\u003c/strong\u003e\u003cbr/\u003e\n    Win 5 Games of Quidditch While in a Party\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/3cbf968393ad9aeb55fa5a004450f348d982eaf8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/3cbf968393ad9aeb55fa5a004450f348d982eaf8.jpg\" alt=\"Chasers With Extra Responsibilities\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Chasers With Extra Responsibilities\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChasers With Extra Responsibilities\u003c/strong\u003e\u003cbr/\u003e\n    Intercept a shot on your goals\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/7300c7caded41f36da4f75abdbd2715412bbbeeb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/7300c7caded41f36da4f75abdbd2715412bbbeeb.jpg\" alt=\"A Superb Keeper!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Superb Keeper!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Superb Keeper!\u003c/strong\u003e\u003cbr/\u003e\n    Save a goal with your Power Save\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/0697985610e04e357bcf21d5ba972bedc216b6cd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/0697985610e04e357bcf21d5ba972bedc216b6cd.jpg\" alt=\"Playcaller\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Playcaller\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePlaycaller\u003c/strong\u003e\u003cbr/\u003e\n    Save a shot on goal from a Chaser you recently debuffed\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/2878600/library_600x900.jpg\" alt=\"Harry Potter: Quidditch Champions box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/2878600/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eHarry Potter: Quidditch Champions\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 74.19%\"\u003e\n        74.19%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e23/31 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e38.0h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2024-10-01\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (23)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/e843f6042b7986a8adf4eb9582ceeb0d71505a52.jpg\" alt=\"It's Not Much, but it's Home!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt's Not Much, but it's Home!\u003c/strong\u003e\u003cbr\u003e\n    Complete The Weasley Burrow Garden Cup\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 07, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/c14731ee7fbe298567dae4e4b6cef2c1f425e2e9.jpg\" alt=\"Everyone Starts at the Beginning at Hogwarts\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEveryone Starts at the Beginning at Hogwarts\u003c/strong\u003e\u003cbr\u003e\n    Win your first game\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 07, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/f049d59260d81316e7a8a823527e544a24214d45.jpg\" alt=\"Mischief Managed\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMischief Managed\u003c/strong\u003e\u003cbr\u003e\n    Stun a Player while they are highlighted for a score event\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 21, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/ec1c6d0faa018f218aa950520c066f013cffad0c.jpg\" alt=\"Hogwarts Hero\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHogwarts Hero\u003c/strong\u003e\u003cbr\u003e\n    Win the Hogwarts Quidditch House Cup for the first time\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 08, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/6108a34f7e63a0029f6d3cb370569de4c472244a.jpg\" alt=\"Rough Game, Quidditch. Brutal!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRough Game, Quidditch. Brutal!\u003c/strong\u003e\u003cbr\u003e\n    Win a game of Quidditch without conceding any points\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 19, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/897af559490e3afa54b1f6a9cf0be26fd7456a2e.jpg\" alt=\"Tutshill Tornado\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTutshill Tornado\u003c/strong\u003e\u003cbr\u003e\n    Win 25 games of Quidditch\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 26, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/3dd0c064c85c4ad0c8bc4bb85fb0fadd52083dca.jpg\" alt=\"Look! Mum Made You a Sweater!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLook! Mum Made You a Sweater!\u003c/strong\u003e\u003cbr\u003e\n    Customize a character in your roster\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 04, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/0cfc40e93d978fe5cbc5ab6aa67b8dcb26d05ec7.jpg\" alt=\"Triwizard Titan\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTriwizard Titan\u003c/strong\u003e\u003cbr\u003e\n    Win the Triwizard Quidditch Cup for the first time\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 19, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/38091b645220c64afc262e1c17b4f9e221744f71.jpg\" alt=\"World Cup Wonder\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWorld Cup Wonder\u003c/strong\u003e\u003cbr\u003e\n    Win the World Cup for the first time\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 27, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/061d88d314e343fd7d635bc046a50272835853ba.jpg\" alt=\"I Want a Nice, Clean Game\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI Want a Nice, Clean Game\u003c/strong\u003e\u003cbr\u003e\n    Play 5 PVP Matches\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 22, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/819e56f5c2ed454df4518f6f6a7472822021400d.jpg\" alt=\"Bottle Fame\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBottle Fame\u003c/strong\u003e\u003cbr\u003e\n    Complete a Career Challenge\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 04, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/ee876457e6b72c0c7563be7bb038e7bee21fc215.jpg\" alt=\"Brew Glory\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBrew Glory\u003c/strong\u003e\u003cbr\u003e\n    Complete a Mastery Challenge for each role\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 29, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/56d68b9f3ffc38511f55f57af4ce2b3bddff8967.jpg\" alt=\"I've Always Wanted to Use That Spell\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI've Always Wanted to Use That Spell\u003c/strong\u003e\u003cbr\u003e\n    Max out skill points in a single role\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 23, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/a13f9196dee6cc8a6d8a931946a75d0ae7e7b780.jpg\" alt=\"It's Not Any Broomstick, it's a Nimbus 2000\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt's Not Any Broomstick, it's a Nimbus 2000\u003c/strong\u003e\u003cbr\u003e\n    Upgrade a broom to max level\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 21, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/457f477bfa09ef6b61b79e52f8372d5d38229cad.jpg\" alt=\"Up!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUp!\u003c/strong\u003e\u003cbr\u003e\n    Complete Chaser Training\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 04, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/a7dd471be9852e2669d9ed01862bf7f62b5c1629.jpg\" alt=\"The Porskoff Ploy\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Porskoff Ploy\u003c/strong\u003e\u003cbr\u003e\n    Assist a goal by shovel-passing to a teammate shortly before they score\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 19, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/302855af44a3bc843a44d911a3099f1920b3c7a7.jpg\" alt=\"You'd Make a Fair Beater\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou'd Make a Fair Beater\u003c/strong\u003e\u003cbr\u003e\n    Complete Beater Training\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 04, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/aa1ae35c89bf986968b11d1c13e8eb40a4b4cac3.jpg\" alt=\"Brilliant, but Scary\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBrilliant, but Scary\u003c/strong\u003e\u003cbr\u003e\n    Eliminate the opposing Beater without getting hit by a Bludger\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 21, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/d793fcfe43174da0e7573afa58648f3ed94052b4.jpg\" alt=\"Knock on Wood\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKnock on Wood\u003c/strong\u003e\u003cbr\u003e\n    Get an assist by stunning the enemy Keeper shortly before a goal\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 23, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/5a34e0506a11095363a20ce845b245c8a7f1135b.jpg\" alt=\"The Keeper, That's Me...\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Keeper, That's Me...\u003c/strong\u003e\u003cbr\u003e\n    Complete Keeper Training\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 04, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/b8a51399ac7569d3b7ba33e6be7344a86eefcd19.jpg\" alt=\"The Youngest Seeker in a Century\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Youngest Seeker in a Century\u003c/strong\u003e\u003cbr\u003e\n    Complete Seeker Training\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 07, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/930e1cfb6d1613f69e6c46ebf99d256109a6194a.jpg\" alt=\"Roderick Plumpton’s Protégé\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRoderick Plumpton’s Protégé\u003c/strong\u003e\u003cbr\u003e\n    Catch a Snitch in less than 120 seconds\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 07, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/f3a4341ef8dcc171538a172f7dfa72cd199d49a7.jpg\" alt=\"Constant Vigilance!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eConstant Vigilance!\u003c/strong\u003e\u003cbr\u003e\n    Catch a Snitch without getting hit by a Bludger\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 08, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (8)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/cf816a22766edb4ff0ee4a51ef0cc1414f01aac7.jpg\" alt=\"Quidditch Champion\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eQuidditch Champion\u003c/strong\u003e\u003cbr\u003e\n    Win 100 Games of Quidditch\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/d789e88eacdc08b87d6b56978c9210c73c06cbf3.jpg\" alt=\"Role-Star\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRole-Star\u003c/strong\u003e\u003cbr\u003e\n    Earn a Platinum medal for each role\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/99c45e6a16a224b4fa0b14747859bfd480cbefb4.jpg\" alt=\"Quidditch is Easy Enough to Understand\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eQuidditch is Easy Enough to Understand\u003c/strong\u003e\u003cbr\u003e\n    Win any Cup on Champion difficulty\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/99a1ec888b07431e3497c361006856a9e42e687c.jpg\" alt=\"“E” for Exceeds Expectations\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e“E” for Exceeds Expectations\u003c/strong\u003e\u003cbr\u003e\n    Reach level 45 in your Career\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/e189280c51071742b3991570984162753cefa7a7.jpg\" alt=\"Don’t Go Making Friends with the Wrong Sort…\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDon’t Go Making Friends with the Wrong Sort…\u003c/strong\u003e\u003cbr\u003e\n    Win 5 Games of Quidditch While in a Party\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/3cbf968393ad9aeb55fa5a004450f348d982eaf8.jpg\" alt=\"Chasers With Extra Responsibilities\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChasers With Extra Responsibilities\u003c/strong\u003e\u003cbr\u003e\n    Intercept a shot on your goals\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/7300c7caded41f36da4f75abdbd2715412bbbeeb.jpg\" alt=\"A Superb Keeper!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Superb Keeper!\u003c/strong\u003e\u003cbr\u003e\n    Save a goal with your Power Save\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2878600/0697985610e04e357bcf21d5ba972bedc216b6cd.jpg\" alt=\"Playcaller\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePlaycaller\u003c/strong\u003e\u003cbr\u003e\n    Save a shot on goal from a Chaser you recently debuffed\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Harry Potter: Quidditch Champions - 74.19% complete with 23/31 achievements unlocked.",
      "date_published": "2024-10-01T00:00:00Z",
      "date_modified": "2024-10-01T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "harry-potter-quidditch-champions"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/human-fall-flat/",
      "url": "https://go.waylonwalker.com/steam/human-fall-flat/",
      "title": "Human: Fall Flat",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/477160/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/477160/library_600x900.jpg\" alt=\"Human: Fall Flat box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/477160/header.jpg\u0026#39;\"/ data-glightbox=\"description: Human: Fall Flat box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eHuman: Fall Flat\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 48.98%\"\u003e\n        48.98%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e72/147 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e1998.9h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2024-09-19\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (72)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/be2ca7728b348b6e3b8e7b6ef138b2ad17ab3f98.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/be2ca7728b348b6e3b8e7b6ef138b2ad17ab3f98.jpg\" alt=\"Leap of Fail\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Leap of Fail\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLeap of Fail\u003c/strong\u003e\u003cbr/\u003e\n    Complete \u0026#34;Mansion\u0026#34;\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 25, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/ff963655efb5b8000cea2bf314e141d82334ffce.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/ff963655efb5b8000cea2bf314e141d82334ffce.jpg\" alt=\"Choo Choo!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Choo Choo!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChoo Choo!\u003c/strong\u003e\u003cbr/\u003e\n    Complete \u0026#34;Train\u0026#34;\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 25, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/4d56eab4c42e270945e88e5d183d78186f843eac.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/4d56eab4c42e270945e88e5d183d78186f843eac.jpg\" alt=\"Don\u0026#39;t Get a Splinter!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Don\u0026#39;t Get a Splinter!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDon\u0026#39;t Get a Splinter!\u003c/strong\u003e\u003cbr/\u003e\n    Complete \u0026#34;Carry\u0026#34;\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 25, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/666538e0b81ddfa87b7a0aff7b3ecf43afe6a485.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/666538e0b81ddfa87b7a0aff7b3ecf43afe6a485.jpg\" alt=\"What Goes Up\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: What Goes Up\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhat Goes Up\u003c/strong\u003e\u003cbr/\u003e\n    Complete \u0026#34;Mountain\u0026#34;\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 26, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/c372d5468856b6ea830e886de68247cd3d6b8eb5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/c372d5468856b6ea830e886de68247cd3d6b8eb5.jpg\" alt=\"Brute Force\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Brute Force\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBrute Force\u003c/strong\u003e\u003cbr/\u003e\n    Complete \u0026#34;Demolition\u0026#34;\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 26, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/0951829565b4129746b0ceee20f3a3f20d33ccd4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/0951829565b4129746b0ceee20f3a3f20d33ccd4.jpg\" alt=\"Storm the Gate!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Storm the Gate!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStorm the Gate!\u003c/strong\u003e\u003cbr/\u003e\n    Complete \u0026#34;Castle\u0026#34;\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 28, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/09ac323d713ae6c85ac82150b5b3b0ac6e74cd0d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/09ac323d713ae6c85ac82150b5b3b0ac6e74cd0d.jpg\" alt=\"Feet First\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Feet First\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFeet First\u003c/strong\u003e\u003cbr/\u003e\n    Complete \u0026#34;Water\u0026#34; diving feet-first\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 18, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/5b72990149cc53e20f7f69cb1af027ab9a5f0ccb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/5b72990149cc53e20f7f69cb1af027ab9a5f0ccb.jpg\" alt=\"Head First\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Head First\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHead First\u003c/strong\u003e\u003cbr/\u003e\n    Complete \u0026#34;Water\u0026#34; diving head-first\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 20, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/2e6709365917cd09b327a98c6a9707de3935f07c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/2e6709365917cd09b327a98c6a9707de3935f07c.jpg\" alt=\"The End?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The End?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe End?\u003c/strong\u003e\u003cbr/\u003e\n    Complete \u0026#34;Power Plant\u0026#34;\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 30, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/41f97336c04175dca346f753b71af224bf365529.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/41f97336c04175dca346f753b71af224bf365529.jpg\" alt=\"No escape\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: No escape\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNo escape\u003c/strong\u003e\u003cbr/\u003e\n    Fall and respawn once\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 25, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/fd86c1a9e2487ab8b07a6e2df33e8d8b6aeac1c6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/fd86c1a9e2487ab8b07a6e2df33e8d8b6aeac1c6.jpg\" alt=\"Pigeon Simulator\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Pigeon Simulator\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePigeon Simulator\u003c/strong\u003e\u003cbr/\u003e\n    Stand on the head of the statue in the intro\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: February 10, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/531c3214dcd6dce107b4a410fb20f6b3c678311f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/531c3214dcd6dce107b4a410fb20f6b3c678311f.jpg\" alt=\"Mind the gap!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mind the gap!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMind the gap!\u003c/strong\u003e\u003cbr/\u003e\n    Take a big shortcut in the level \u0026#34;Mansion\u0026#34;\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 07, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/c2a1ab1c9240e3448ad01ee4809ce77189e456bf.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/c2a1ab1c9240e3448ad01ee4809ce77189e456bf.jpg\" alt=\"Public service\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Public service\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePublic service\u003c/strong\u003e\u003cbr/\u003e\n    Place 5 pieces of debris in a dumpster\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 07, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/2e5b595c457b457f8bd8b4095d0a3ddb41a5df09.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/2e5b595c457b457f8bd8b4095d0a3ddb41a5df09.jpg\" alt=\"Perfectionist\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Perfectionist\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePerfectionist\u003c/strong\u003e\u003cbr/\u003e\n    Align a flipped bench with a wall\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 07, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/22000f86fb4bdf87f2068fcd799942df91a2cb79.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/22000f86fb4bdf87f2068fcd799942df91a2cb79.jpg\" alt=\"It\u0026#39;s stuck\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: It\u0026#39;s stuck\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt\u0026#39;s stuck\u003c/strong\u003e\u003cbr/\u003e\n    Jam a door and go through it in \u0026#34;Carry\u0026#34;\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 22, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/5781717188685084c75e12ad948e74a51dcb93ed.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/5781717188685084c75e12ad948e74a51dcb93ed.jpg\" alt=\"Tower\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tower\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTower\u003c/strong\u003e\u003cbr/\u003e\n    Stack all 4 boxes in the level \u0026#34;Carry\u0026#34;\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 22, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/832b10fa0d382288fced1301698eccaed050a9f7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/832b10fa0d382288fced1301698eccaed050a9f7.jpg\" alt=\"Silent hours (Noisy neighbours)\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Silent hours (Noisy neighbours)\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSilent hours (Noisy neighbours)\u003c/strong\u003e\u003cbr/\u003e\n    Get rid of the speaker set in \u0026#34;Mountain\u0026#34;\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 07, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/e3b2dd3ea1a23b5ef3c5635a1741e3a4db407007.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/e3b2dd3ea1a23b5ef3c5635a1741e3a4db407007.jpg\" alt=\"My treasure\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: My treasure\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMy treasure\u003c/strong\u003e\u003cbr/\u003e\n    Collect all gems into a pile in \u0026#34;Mountain\u0026#34;\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 26, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/dc264f45d561b2c2e2c8e8130b3a53f678ef6ea2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/dc264f45d561b2c2e2c8e8130b3a53f678ef6ea2.jpg\" alt=\"Wrong direction\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Wrong direction\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWrong direction\u003c/strong\u003e\u003cbr/\u003e\n    Use the window on your left instead of smashing the wall in \u0026#34;Demolition\u0026#34;\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: February 06, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/f0b0fcd1f809669c5031f2a84107e8b1970eb641.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/f0b0fcd1f809669c5031f2a84107e8b1970eb641.jpg\" alt=\"Surprise! (Avalanche!)\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Surprise! (Avalanche!)\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSurprise! (Avalanche!)\u003c/strong\u003e\u003cbr/\u003e\n    Unleash the boulder gate in \u0026#34;Demolition\u0026#34;\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 26, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/74e6a7f5bd801e223f68c058aae1bec103cb56ff.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/74e6a7f5bd801e223f68c058aae1bec103cb56ff.jpg\" alt=\"Primal\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Primal\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePrimal\u003c/strong\u003e\u003cbr/\u003e\n    Break 4 walls without using any gadgets in \u0026#34;Demolition\u0026#34;\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 06, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/dac11214fcfa9c9c60bc23a29bd08220d2753f3e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/dac11214fcfa9c9c60bc23a29bd08220d2753f3e.jpg\" alt=\"Improvised Ammo\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Improvised Ammo\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eImprovised Ammo\u003c/strong\u003e\u003cbr/\u003e\n    Launch yourself with the catapult in \u0026#34;Castle\u0026#34;\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 26, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/f795a247b93b22e0d392b65db100cc2ade789cd5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/f795a247b93b22e0d392b65db100cc2ade789cd5.jpg\" alt=\"For whom the bell tolls\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: For whom the bell tolls\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFor whom the bell tolls\u003c/strong\u003e\u003cbr/\u003e\n    Ring the castle bell in \u0026#34;Castle\u0026#34;\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 22, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/9c8e87cfd8b72effbaeb967d1265907a398a27e3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/9c8e87cfd8b72effbaeb967d1265907a398a27e3.jpg\" alt=\"Row, row, row your boat\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Row, row, row your boat\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRow, row, row your boat\u003c/strong\u003e\u003cbr/\u003e\n    Use the row boat to get to the cargo ship in \u0026#34;Water\u0026#34;\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 08, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/4f847b1f07a587375cfcb198c94fe8791def78f3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/4f847b1f07a587375cfcb198c94fe8791def78f3.jpg\" alt=\"Reverse gear\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Reverse gear\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eReverse gear\u003c/strong\u003e\u003cbr/\u003e\n    Enter the dock with the ship backwards in \u0026#34;Water\u0026#34;\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 09, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/d242336329c9ee04617259cdb6cf9e5a07d93d80.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/d242336329c9ee04617259cdb6cf9e5a07d93d80.jpg\" alt=\"Beacon\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Beacon\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeacon\u003c/strong\u003e\u003cbr/\u003e\n    Light up the lighthouse in \u0026#34;Water\u0026#34;\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 20, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/ede65412193b0ace68f2fd41b5ed95488e539424.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/ede65412193b0ace68f2fd41b5ed95488e539424.jpg\" alt=\"Breathing exercise\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Breathing exercise\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBreathing exercise\u003c/strong\u003e\u003cbr/\u003e\n    In \u0026#34;Water\u0026#34;, get out of the water in 100ms to avoid drowning\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 28, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/a736af95b7c032d8fe226af11d36907a2fa326b2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/a736af95b7c032d8fe226af11d36907a2fa326b2.jpg\" alt=\"Surfer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Surfer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSurfer\u003c/strong\u003e\u003cbr/\u003e\n    Don\u0026#39;t get wet while surfing down the mountain in \u0026#34;Water\u0026#34;\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 18, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/e510ce945d7740abfe04972353994b0779ebd184.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/e510ce945d7740abfe04972353994b0779ebd184.jpg\" alt=\"Electricity 101\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Electricity 101\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eElectricity 101\u003c/strong\u003e\u003cbr/\u003e\n    Short-circuit the wires in \u0026#34;Power Plant\u0026#34;\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 28, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/2abef9d88abc5839b7d21a523060b8426bfcc113.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/2abef9d88abc5839b7d21a523060b8426bfcc113.jpg\" alt=\"Delivery boy\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Delivery boy\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDelivery boy\u003c/strong\u003e\u003cbr/\u003e\n    Deliver 10 pieces of coal to the main island in \u0026#34;Power Plant\u0026#34;\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 30, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/2f487e974b4c81f6dd0257893d2d7d4bfb353bf3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/2f487e974b4c81f6dd0257893d2d7d4bfb353bf3.jpg\" alt=\"Thief\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Thief\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThief\u003c/strong\u003e\u003cbr/\u003e\n    Steal the battery from the statue in \u0026#34;Power Plant\u0026#34;\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 21, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/c5256fc3c8d743d8c99e55f98a76a545ff9f3e3f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/c5256fc3c8d743d8c99e55f98a76a545ff9f3e3f.jpg\" alt=\"Tourist\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tourist\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTourist\u003c/strong\u003e\u003cbr/\u003e\n    Travel 1km\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 25, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/35376cbf4e82e5ca54f1fe82a2e6aeb38dbe0f63.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/35376cbf4e82e5ca54f1fe82a2e6aeb38dbe0f63.jpg\" alt=\"Traveler\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Traveler\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTraveler\u003c/strong\u003e\u003cbr/\u003e\n    Travel 10km\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 26, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/96b2bb79c77f05fe528d5051266bafc76b95df0f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/96b2bb79c77f05fe528d5051266bafc76b95df0f.jpg\" alt=\"Adventurer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Adventurer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAdventurer\u003c/strong\u003e\u003cbr/\u003e\n    Travel 25km\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 29, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/38260dc21d5cc82e60a35379720f6e99e56f78ca.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/38260dc21d5cc82e60a35379720f6e99e56f78ca.jpg\" alt=\"Let it rain\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Let it rain\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLet it rain\u003c/strong\u003e\u003cbr/\u003e\n    Respawn 100 times\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 26, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/3bdb40f9799cdc69c8ce5c0c698f128139dae602.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/3bdb40f9799cdc69c8ce5c0c698f128139dae602.jpg\" alt=\"Trampoline\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Trampoline\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTrampoline\u003c/strong\u003e\u003cbr/\u003e\n    Jump 1000 times\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 26, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/960a1d4d39f3b4c6abecad1ac0f21dc783570b48.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/960a1d4d39f3b4c6abecad1ac0f21dc783570b48.jpg\" alt=\"Climber\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Climber\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eClimber\u003c/strong\u003e\u003cbr/\u003e\n    Climb 100m\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 26, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/57efe2db3f7597e04c6bce1da8dee1a0a669e154.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/57efe2db3f7597e04c6bce1da8dee1a0a669e154.jpg\" alt=\"Heavy lifting\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Heavy lifting\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHeavy lifting\u003c/strong\u003e\u003cbr/\u003e\n    Carry objects for a total of 1000m\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 26, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/e8a28ef30a67ed324a4be620c0895de3c7a22a41.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/e8a28ef30a67ed324a4be620c0895de3c7a22a41.jpg\" alt=\"Learn to swim\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Learn to swim\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLearn to swim\u003c/strong\u003e\u003cbr/\u003e\n    Drown 10 times\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 26, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/18a689ac397d16f9552faf9204b305a2e0ca656c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/18a689ac397d16f9552faf9204b305a2e0ca656c.jpg\" alt=\"Sail away!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sail away!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSail away!\u003c/strong\u003e\u003cbr/\u003e\n    Use any of the boats to travel 1km\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 28, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/2e1bd187e99d26847f0958e65c58b56c88dd395c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/2e1bd187e99d26847f0958e65c58b56c88dd395c.jpg\" alt=\"Petrolhead\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Petrolhead\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePetrolhead\u003c/strong\u003e\u003cbr/\u003e\n    Use any of the ground vehicles to travel 1km\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 30, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/c277797f590eca16811f242b89471b377dfc3a66.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/c277797f590eca16811f242b89471b377dfc3a66.jpg\" alt=\"The End\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The End\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe End\u003c/strong\u003e\u003cbr/\u003e\n    Complete \u0026#34;Aztec\u0026#34;\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: February 01, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/9c23007555357b3867674adf3958d8405e105641.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/9c23007555357b3867674adf3958d8405e105641.jpg\" alt=\"It\u0026#39;s Alive!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: It\u0026#39;s Alive!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt\u0026#39;s Alive!\u003c/strong\u003e\u003cbr/\u003e\n    Complete \u0026#34;Dark\u0026#34;\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: February 02, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/e4ffe0b6e0baa071f5386544fd9d05d2926734ad.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/e4ffe0b6e0baa071f5386544fd9d05d2926734ad.jpg\" alt=\"Fry Me to the Moon\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fry Me to the Moon\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFry Me to the Moon\u003c/strong\u003e\u003cbr/\u003e\n    Hold on to the EXIT lid after you flick the switch in \u0026#34;Dark\u0026#34;\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 04, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/2f1bd1c30ab4c6d92665892b15e6e11c1e4e04f3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/2f1bd1c30ab4c6d92665892b15e6e11c1e4e04f3.jpg\" alt=\"Under Pressure\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Under Pressure\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUnder Pressure\u003c/strong\u003e\u003cbr/\u003e\n    Complete \u0026#34;Steam\u0026#34;\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: February 02, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/1f856187dd602483c9583f056b7ff34430bc9658.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/1f856187dd602483c9583f056b7ff34430bc9658.jpg\" alt=\"Walk the Plank\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Walk the Plank\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWalk the Plank\u003c/strong\u003e\u003cbr/\u003e\n    Reach the big wheel in \u0026#34;Steam\u0026#34; without using the crane controls\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 03, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/d621a3009368fdd76a1489f517bfa0e4ab7d43fb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/d621a3009368fdd76a1489f517bfa0e4ab7d43fb.jpg\" alt=\"Get Dizzy\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Get Dizzy\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGet Dizzy\u003c/strong\u003e\u003cbr/\u003e\n    Ride 3 complete revolutions of the big wheel in \u0026#34;Steam\u0026#34;\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 16, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/19727978d6b02c26ea9e8bee9677a438f8d2fa01.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/19727978d6b02c26ea9e8bee9677a438f8d2fa01.jpg\" alt=\"Whoops!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Whoops!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhoops!\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: February 02, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/b13e2bbf196345c7923651c97ad445d65b233294.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/b13e2bbf196345c7923651c97ad445d65b233294.jpg\" alt=\"Avalanche\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Avalanche\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAvalanche\u003c/strong\u003e\u003cbr/\u003e\n    Complete \u0026#34;Ice\u0026#34;\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: February 05, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/93aef7f6d605da32f6bc09cdc039056af7b52db5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/93aef7f6d605da32f6bc09cdc039056af7b52db5.jpg\" alt=\"Tricky\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tricky\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTricky\u003c/strong\u003e\u003cbr/\u003e\n    Complete the slope jump in \u0026#34;Ice\u0026#34; with 2 snowboards strapped to your feet\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: February 04, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/317224b7e99398a6f5dcf261f6947c8ad9cad212.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/317224b7e99398a6f5dcf261f6947c8ad9cad212.jpg\" alt=\"No Ice Ice Baby\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: No Ice Ice Baby\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNo Ice Ice Baby\u003c/strong\u003e\u003cbr/\u003e\n    Complete the seesaw puzzle in \u0026#34;Ice\u0026#34; without using an ice cube\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: February 04, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/f48efb72948cd286ca81a78af93072520d9a6af2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/f48efb72948cd286ca81a78af93072520d9a6af2.jpg\" alt=\"Candy Rush\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Candy Rush\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCandy Rush\u003c/strong\u003e\u003cbr/\u003e\n    Zip line down from the mountain in \u0026#34;Christmas\u0026#34; using a candy cane\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 26, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/ded27b48f2c2abe7d05a0fec532970b0df396e1c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/ded27b48f2c2abe7d05a0fec532970b0df396e1c.jpg\" alt=\"Bah, Humbug!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bah, Humbug!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBah, Humbug!\u003c/strong\u003e\u003cbr/\u003e\n    Shoot the Christmas angel off the tree top in \u0026#34;Christmas\u0026#34;\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 12, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/7255f3b2066f46f7a1451d88285081a241ba6c8e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/7255f3b2066f46f7a1451d88285081a241ba6c8e.jpg\" alt=\"Wrapped Up\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Wrapped Up\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWrapped Up\u003c/strong\u003e\u003cbr/\u003e\n    Complete \u0026#34;Thermal\u0026#34;\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 03, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/fd2a6dbff3bce53ba45841f8c2d5c30f2f0bf3a9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/fd2a6dbff3bce53ba45841f8c2d5c30f2f0bf3a9.jpg\" alt=\"Hook, Line and Jumper\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hook, Line and Jumper\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHook, Line and Jumper\u003c/strong\u003e\u003cbr/\u003e\n    Enter the compound in \u0026#34;Thermal\u0026#34; without passing through the main gate\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 03, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/5f63e52a6a51babe5ba79380e70599b5aa7f32c4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/5f63e52a6a51babe5ba79380e70599b5aa7f32c4.jpg\" alt=\"Amped!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Amped!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAmped!\u003c/strong\u003e\u003cbr/\u003e\n    Attach all electrical cables in 35 seconds or less in \u0026#34;Thermal\u0026#34;\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 19, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/d56aa96ac8cc2c3b6d6b39afddf0b78238330a24.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/d56aa96ac8cc2c3b6d6b39afddf0b78238330a24.jpg\" alt=\"The Foreman\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Foreman\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Foreman\u003c/strong\u003e\u003cbr/\u003e\n    Complete \u0026#34;Factory\u0026#34;\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 22, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/37df58da989bddbbcbcbd429be2bbda642a537a7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/37df58da989bddbbcbcbd429be2bbda642a537a7.jpg\" alt=\"Radio Silence\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Radio Silence\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRadio Silence\u003c/strong\u003e\u003cbr/\u003e\n    Throw all four radios off the level in “Factory”\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 23, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/4f76811938943ebd9bfc8156602b91c67e74bc62.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/4f76811938943ebd9bfc8156602b91c67e74bc62.jpg\" alt=\"After Hours\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: After Hours\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAfter Hours\u003c/strong\u003e\u003cbr/\u003e\n    Complete the first half of “Factory” without turning any lights on\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 23, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/ea337db0cbe77bad2935611fb3cea3228f8a6197.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/ea337db0cbe77bad2935611fb3cea3228f8a6197.jpg\" alt=\"How to get Fired!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: How to get Fired!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHow to get Fired!\u003c/strong\u003e\u003cbr/\u003e\n    Throw one of each item in the final room into the fire in “Factory”\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 23, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/ccfc9a8e5266861d0be60d2d225eca7204ebb334.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/ccfc9a8e5266861d0be60d2d225eca7204ebb334.jpg\" alt=\"Hole in One\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hole in One\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHole in One\u003c/strong\u003e\u003cbr/\u003e\n    Complete \u0026#34;Golf\u0026#34;\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 19, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/fbae0b7f3eefb0b1e3d8d04c50ce7a8312bab8e6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/fbae0b7f3eefb0b1e3d8d04c50ce7a8312bab8e6.jpg\" alt=\"Birdie\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Birdie\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBirdie\u003c/strong\u003e\u003cbr/\u003e\n    Using ONLY the golf club, putt the ball in 3 strokes or less\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 27, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/184d8265ba4a289e7d5b1a3e0d00a06b6508b62d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/184d8265ba4a289e7d5b1a3e0d00a06b6508b62d.jpg\" alt=\"Bogey (1 Over Par)\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bogey (1 Over Par)\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBogey (1 Over Par)\u003c/strong\u003e\u003cbr/\u003e\n    Take the alternate route above the cave\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 27, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/6c56506570fc712c36c4b2e8d0b92db88b1ecd35.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/6c56506570fc712c36c4b2e8d0b92db88b1ecd35.jpg\" alt=\"Mulligan\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mulligan\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMulligan\u003c/strong\u003e\u003cbr/\u003e\n    Drive the golf cart off the edge of the level\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 19, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/09a9425531ae83353c60c9a7642a98568ce2feb4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/09a9425531ae83353c60c9a7642a98568ce2feb4.jpg\" alt=\"Sports Fan\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sports Fan\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSports Fan\u003c/strong\u003e\u003cbr/\u003e\n    Complete \u0026#34;City\u0026#34; level\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 23, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/aaeca1c1e8e13035ee9b1261bdfcf4ab9801e26b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/aaeca1c1e8e13035ee9b1261bdfcf4ab9801e26b.jpg\" alt=\"Tip-Top Ten Pin\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tip-Top Ten Pin\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTip-Top Ten Pin\u003c/strong\u003e\u003cbr/\u003e\n    Complete all 4 bowling lanes\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 23, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/c0396237bfe59108efcd15aa7ab163eacde10487.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/c0396237bfe59108efcd15aa7ab163eacde10487.jpg\" alt=\"Fortune Tree\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fortune Tree\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFortune Tree\u003c/strong\u003e\u003cbr/\u003e\n    Collect the Golden Sycees from the fortune tree\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 17, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/d496f513f3c9232d8e315e92a448bf07935805d4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/d496f513f3c9232d8e315e92a448bf07935805d4.jpg\" alt=\"Wrecking Crew\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Wrecking Crew\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWrecking Crew\u003c/strong\u003e\u003cbr/\u003e\n    Destroy the statue\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 24, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/bf51ca58b3c628c76756fb60ab894f5b90f9badc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/bf51ca58b3c628c76756fb60ab894f5b90f9badc.jpg\" alt=\"Toasty\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Toasty\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eToasty\u003c/strong\u003e\u003cbr/\u003e\n    Light the marshmallows over the bonfire\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 26, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/5307c3e4643552ed23ab5fde536db1536a28cc32.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/5307c3e4643552ed23ab5fde536db1536a28cc32.jpg\" alt=\"On Thin Ice\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: On Thin Ice\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOn Thin Ice\u003c/strong\u003e\u003cbr/\u003e\n    Don\u0026#39;t let the ice block melt\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 26, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/f4f4f2ebba8fad6ca25e87f6a3c0988dba7277ad.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/f4f4f2ebba8fad6ca25e87f6a3c0988dba7277ad.jpg\" alt=\"Wrong Turn\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Wrong Turn\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWrong Turn\u003c/strong\u003e\u003cbr/\u003e\n    Complete \u0026#34;Forest\u0026#34;\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 26, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/8fbeacfc97471fcd811334e0cf611cff403e0c7f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/8fbeacfc97471fcd811334e0cf611cff403e0c7f.jpg\" alt=\"KABOOM!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: KABOOM!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKABOOM!\u003c/strong\u003e\u003cbr/\u003e\n    Complete “Laboratory”\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 29, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (75)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/c3bc8f811796fdafe26eba3d979c2d3ff78aa070.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/c3bc8f811796fdafe26eba3d979c2d3ff78aa070.jpg\" alt=\"Speedrun \" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Speedrun\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpeedrun \u003c/strong\u003e\u003cbr/\u003e\n    Complete the game start-to-end in one run\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/5b191992c3b38ff03afdb628cd08977a6dad1c62.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/5b191992c3b38ff03afdb628cd08977a6dad1c62.jpg\" alt=\"AH, EO, EO, EO, EO, OOOOO!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: AH, EO, EO, EO, EO, OOOOO!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAH, EO, EO, EO, EO, OOOOO!\u003c/strong\u003e\u003cbr/\u003e\n    Use the rope to go above the abyss in the level \u0026#34;Mountain\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/d1460625b8e696a17b1ed1db22e93c21e912ccef.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/d1460625b8e696a17b1ed1db22e93c21e912ccef.jpg\" alt=\"Zipline\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Zipline\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eZipline\u003c/strong\u003e\u003cbr/\u003e\n    Zipline from the church tower in \u0026#34;Castle\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/220c62307919928001e4b5a96bffc0a328e8c8e3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/220c62307919928001e4b5a96bffc0a328e8c8e3.jpg\" alt=\"Smooth moves\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Smooth moves\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSmooth moves\u003c/strong\u003e\u003cbr/\u003e\n    Parkour fluidly from the alley to the blacksmith in \u0026#34;Castle\u0026#34; without touching the ground.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/8d5d0eb96d8f631aadb8ae458f45dddc9c944fde.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/8d5d0eb96d8f631aadb8ae458f45dddc9c944fde.jpg\" alt=\"Will it fry?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Will it fry?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWill it fry?\u003c/strong\u003e\u003cbr/\u003e\n    Feed an appliance with power from 3 batteries in \u0026#34;Power Plant\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/9f4c48ebab75c5da5ea2cdac477a6dc01e28c7b3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/9f4c48ebab75c5da5ea2cdac477a6dc01e28c7b3.jpg\" alt=\"Convertible ride\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Convertible ride\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eConvertible ride\u003c/strong\u003e\u003cbr/\u003e\n    Ride 50m in a dumpster\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/e6dddaa727b6076fd56bbe7cad2933bf060ff0c3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/e6dddaa727b6076fd56bbe7cad2933bf060ff0c3.jpg\" alt=\"Bird\u0026#39;s eye view\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bird\u0026#39;s eye view\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBird\u0026#39;s eye view\u003c/strong\u003e\u003cbr/\u003e\n    Climb to the top of the tree with the birds nest in “Aztec”\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/13487216ac07739c172e0f83792b95a2d95213a4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/13487216ac07739c172e0f83792b95a2d95213a4.jpg\" alt=\"Rollin\u0026#39;\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Rollin\u0026#39;\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRollin\u0026#39;\u003c/strong\u003e\u003cbr/\u003e\n    Walk on the rolling ball to bypass a puzzle in “Aztec”\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/7063d095ef895d21a90de7870c6cf1610d0cff4e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/7063d095ef895d21a90de7870c6cf1610d0cff4e.jpg\" alt=\"Clockwork\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Clockwork\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eClockwork\u003c/strong\u003e\u003cbr/\u003e\n    Pass the pendulum obstacle course in 60 seconds in “Aztec”\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/d3c69670cdc6a8a6b50b765eba7f1240a9bb8394.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/d3c69670cdc6a8a6b50b765eba7f1240a9bb8394.jpg\" alt=\"Tick Tock\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tick Tock\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTick Tock\u003c/strong\u003e\u003cbr/\u003e\n    Climb the Clock Tower in 40 seconds in \u0026#34;Dark\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/08bbbc5a30499e4f606d0cb64843db434441d35c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/08bbbc5a30499e4f606d0cb64843db434441d35c.jpg\" alt=\"Planks? No Thanks!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Planks? No Thanks!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePlanks? No Thanks!\u003c/strong\u003e\u003cbr/\u003e\n    Complete \u0026#34;Dark\u0026#34; without moving any planks that are barring doors\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/329e2ca6947cebbd03783db21b7fa3c1ade3141d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/329e2ca6947cebbd03783db21b7fa3c1ade3141d.jpg\" alt=\"Taking the Piste\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Taking the Piste\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTaking the Piste\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/f3d57ee2dfc85ce104a4c19d664a446ca205fd81.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/f3d57ee2dfc85ce104a4c19d664a446ca205fd81.jpg\" alt=\"Deck the Halls\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Deck the Halls\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDeck the Halls\u003c/strong\u003e\u003cbr/\u003e\n    Land in the snow fort in \u0026#34;Christmas\u0026#34; on a snowboard\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/339b5683dda0e159201ded0321c930352b1d9acb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/339b5683dda0e159201ded0321c930352b1d9acb.jpg\" alt=\"Top the Hat\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Top the Hat\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTop the Hat\u003c/strong\u003e\u003cbr/\u003e\n    Stand atop the large snowman\u0026#39;s hat in \u0026#34;Christmas\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/a5e3c18b34bb61328404a6f9dc3a0041d0172803.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/a5e3c18b34bb61328404a6f9dc3a0041d0172803.jpg\" alt=\"Pay Day\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Pay Day\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePay Day\u003c/strong\u003e\u003cbr/\u003e\n    Complete \u0026#34;Thermal\u0026#34; while holding a gold bar\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/f54259166d326b1a05840c69b22aa0586a8768cc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/f54259166d326b1a05840c69b22aa0586a8768cc.jpg\" alt=\"Hitchhiker\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hitchhiker\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHitchhiker\u003c/strong\u003e\u003cbr/\u003e\n    Ride one of the vehicles for 10 seconds\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/1f3fb71eb0f4ce3696a7222d222981583cdb8b66.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/1f3fb71eb0f4ce3696a7222d222981583cdb8b66.jpg\" alt=\"Temper Tantrum\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Temper Tantrum\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTemper Tantrum\u003c/strong\u003e\u003cbr/\u003e\n    Knock all 3 rag dolls off the level\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/93b20325e41736fcfce32e273287979b5e4a4a25.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/93b20325e41736fcfce32e273287979b5e4a4a25.jpg\" alt=\"Lucky Carp\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Lucky Carp\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLucky Carp\u003c/strong\u003e\u003cbr/\u003e\n    Walk through the gates of the heavenly palace\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/32fdbc4332e1dc1b907cdf9819b27726e35d8cf1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/32fdbc4332e1dc1b907cdf9819b27726e35d8cf1.jpg\" alt=\"Zodiac\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Zodiac\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eZodiac\u003c/strong\u003e\u003cbr/\u003e\n    Unite all 12 Zodiac heads\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/4f6f296988a28515d9243dce8c39e16858afb898.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/4f6f296988a28515d9243dce8c39e16858afb898.jpg\" alt=\"Laojun’s Furnace\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Laojun’s Furnace\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLaojun’s Furnace\u003c/strong\u003e\u003cbr/\u003e\n    Craft 3 different magical item in the golden furnace\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/714092488cfbacb9c9616b9c91cac5ce03fbe2f7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/714092488cfbacb9c9616b9c91cac5ce03fbe2f7.jpg\" alt=\"Bullseye\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bullseye\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBullseye\u003c/strong\u003e\u003cbr/\u003e\n    Hit all targets without missing a single shot\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/6b1300749ad4bfc380ec66524ac6ecb0d16d9ac7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/6b1300749ad4bfc380ec66524ac6ecb0d16d9ac7.jpg\" alt=\"Cast it into the fire\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cast it into the fire\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCast it into the fire\u003c/strong\u003e\u003cbr/\u003e\n    Throw an orb into the lava\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/2097d0d024a48e09b269d31565b2014e7755af56.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/2097d0d024a48e09b269d31565b2014e7755af56.jpg\" alt=\"Overachiever\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Overachiever\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOverachiever\u003c/strong\u003e\u003cbr/\u003e\n    Reach the exit door whilst holding an orb in the launch pad room\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/6971b429e0a8ff98ff08a6744b1e3cb598f6e51f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/6971b429e0a8ff98ff08a6744b1e3cb598f6e51f.jpg\" alt=\"The Great Outdoors\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Great Outdoors\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Great Outdoors\u003c/strong\u003e\u003cbr/\u003e\n    Complete Lumber\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/71ec2c70f0da254ce89c1b972caa0a68cad7a300.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/71ec2c70f0da254ce89c1b972caa0a68cad7a300.jpg\" alt=\"Safety first\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Safety first\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSafety first\u003c/strong\u003e\u003cbr/\u003e\n    Use two hooks when crossing the chasm in Lumber\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/d440c29421e5d773de5540d827b64c719b0dec56.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/d440c29421e5d773de5540d827b64c719b0dec56.jpg\" alt=\"Bedwetter\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bedwetter\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBedwetter\u003c/strong\u003e\u003cbr/\u003e\n    Wet the bed in Lumber\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/c7c0dbab8236f995c67e79af12fb4bdd6e87437f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/c7c0dbab8236f995c67e79af12fb4bdd6e87437f.jpg\" alt=\"Lights out\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Lights out\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLights out\u003c/strong\u003e\u003cbr/\u003e\n    Throw the lanterns off the map\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/6935d1e14dd881ff46853fd393dd4a6885150a6f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/6935d1e14dd881ff46853fd393dd4a6885150a6f.jpg\" alt=\"Don’t blame it on the sunshine\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Don’t blame it on the sunshine\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDon’t blame it on the sunshine\u003c/strong\u003e\u003cbr/\u003e\n    Turn on the jukebox in \u0026#34;Red Rock\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/56fd8eb97db57c8b18ff86a1b2f133c037b607b8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/56fd8eb97db57c8b18ff86a1b2f133c037b607b8.jpg\" alt=\"Pipe dream\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Pipe dream\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePipe dream\u003c/strong\u003e\u003cbr/\u003e\n    Use the sewer to escape the junkyard on \u0026#34;Redrock\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/d963e9a1cb28234ab0e88bf896500f3f220223c5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/d963e9a1cb28234ab0e88bf896500f3f220223c5.jpg\" alt=\"Pretty fly for a cacti\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Pretty fly for a cacti\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePretty fly for a cacti\u003c/strong\u003e\u003cbr/\u003e\n    Place the hat on the cactus in \u0026#34;Red Rock\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/0ca9b3aaebf18804eaeab037c209ee4fa46d90d4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/0ca9b3aaebf18804eaeab037c209ee4fa46d90d4.jpg\" alt=\"Currently Attractive\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Currently Attractive\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCurrently Attractive\u003c/strong\u003e\u003cbr/\u003e\n    Complete \u0026#34;Red Rock\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/89e273f4bc8e66abe360627ab91acb7e53a23d5c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/89e273f4bc8e66abe360627ab91acb7e53a23d5c.jpg\" alt=\"Out of the orbinary\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Out of the orbinary\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOut of the orbinary\u003c/strong\u003e\u003cbr/\u003e\n    Go fishing in \u0026#34;Tower\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/061bb58405ad9b1b1d645a39b82924a30f2e293c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/061bb58405ad9b1b1d645a39b82924a30f2e293c.jpg\" alt=\"Time saver\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Time saver\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTime saver\u003c/strong\u003e\u003cbr/\u003e\n    Use the pipe to cross the lava in \u0026#34;Tower\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/bce4c651fcf2e3fc2eda9405be76da5908afe040.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/bce4c651fcf2e3fc2eda9405be76da5908afe040.jpg\" alt=\"Foot in the door\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Foot in the door\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFoot in the door\u003c/strong\u003e\u003cbr/\u003e\n    Find a shorter route for moving the batteries in \u0026#34;Tower\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/e4c05965620acc22e86d56e3b8b426233b95f7fa.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/e4c05965620acc22e86d56e3b8b426233b95f7fa.jpg\" alt=\"Just walked in\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Just walked in\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJust walked in\u003c/strong\u003e\u003cbr/\u003e\n    Complete \u0026#34;Tower\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/cc5682d431c38b3301e7feee39446c1d6e2069bb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/cc5682d431c38b3301e7feee39446c1d6e2069bb.jpg\" alt=\"Small fish, big pond\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Small fish, big pond\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSmall fish, big pond\u003c/strong\u003e\u003cbr/\u003e\n    Complete \u0026#34;Miniature\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/d320855917bbe16315e0942706f81cdf9acaf521.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/d320855917bbe16315e0942706f81cdf9acaf521.jpg\" alt=\"Top Shelf\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Top Shelf\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTop Shelf\u003c/strong\u003e\u003cbr/\u003e\n    Reach the highest platform above the power drill in \u0026#34;Miniature\u0026#34; \n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/305b1e2827fd464405e66b1bad85dbcca3237712.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/305b1e2827fd464405e66b1bad85dbcca3237712.jpg\" alt=\"Spotless clean\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Spotless clean\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpotless clean\u003c/strong\u003e\u003cbr/\u003e\n    Get rid of the ash in \u0026#34;Miniature\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/b4e97bacd8497c5d7515263a07d780a2251f8c6e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/b4e97bacd8497c5d7515263a07d780a2251f8c6e.jpg\" alt=\"The floor is lava\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The floor is lava\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe floor is lava\u003c/strong\u003e\u003cbr/\u003e\n    Starting from the bag of soil, reach the top of the crate without touching the red tiles in \u0026#34;Miniature\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/61a71584e82ed669464be87c7350086bf2ddd178.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/61a71584e82ed669464be87c7350086bf2ddd178.jpg\" alt=\"Square peg in a round hole\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Square peg in a round hole\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSquare peg in a round hole\u003c/strong\u003e\u003cbr/\u003e\n    Attempt to use an improvised battery in \u0026#34;Copper World\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/48ccf5a4ebd0aa334f81a9982fcf447e94406550.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/48ccf5a4ebd0aa334f81a9982fcf447e94406550.jpg\" alt=\"Unlimited Power!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Unlimited Power!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUnlimited Power!\u003c/strong\u003e\u003cbr/\u003e\n    Form an independent laser loop in \u0026#34;Copper World\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/8aea3cbfcfc78b3c3d695f256b9a5307c19c94c0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/8aea3cbfcfc78b3c3d695f256b9a5307c19c94c0.jpg\" alt=\"Loose change\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Loose change\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLoose change\u003c/strong\u003e\u003cbr/\u003e\n    Throw all four hidden coins off the level in \u0026#34;Copper World\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/229e1027bc6ccc5affc4501e8e3d4d3e1af4b2d4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/229e1027bc6ccc5affc4501e8e3d4d3e1af4b2d4.jpg\" alt=\"Cu later\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cu later\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCu later\u003c/strong\u003e\u003cbr/\u003e\n    Complete \u0026#34;Copper World\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/46f51630254d7ccbbaf2f4acc8e23f993a72c943.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/46f51630254d7ccbbaf2f4acc8e23f993a72c943.jpg\" alt=\"Barrel of laughs\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Barrel of laughs\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBarrel of laughs\u003c/strong\u003e\u003cbr/\u003e\n    Complete \u0026#34;Port\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/73ba319fd937e6722c30dcf3fb404d0123eac386.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/73ba319fd937e6722c30dcf3fb404d0123eac386.jpg\" alt=\"A call for aid\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A call for aid\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA call for aid\u003c/strong\u003e\u003cbr/\u003e\n    Light the beacons in \u0026#34;Port\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/6ac632c164581c83d4e2b1212fc3a28d30cadd7f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/6ac632c164581c83d4e2b1212fc3a28d30cadd7f.jpg\" alt=\"Spring cleaning\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Spring cleaning\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpring cleaning\u003c/strong\u003e\u003cbr/\u003e\n    Clear out the room directly after the zipline in \u0026#34;Port\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/330fc7e7633a9702cd083240409cadf68d93821b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/330fc7e7633a9702cd083240409cadf68d93821b.jpg\" alt=\"To beach their own\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: To beach their own\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTo beach their own\u003c/strong\u003e\u003cbr/\u003e\n    Reach the hidden island in \u0026#34;Port\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/94d973b0b4cab3f5d3e4753dee36fe9b7e568530.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/94d973b0b4cab3f5d3e4753dee36fe9b7e568530.jpg\" alt=\"Explorer of the Deep\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Explorer of the Deep\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExplorer of the Deep\u003c/strong\u003e\u003cbr/\u003e\n    Complete \u0026#34;Underwater\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/6c61b5bcde670025446c38a196936d129ac7ac93.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/6c61b5bcde670025446c38a196936d129ac7ac93.jpg\" alt=\"Improvised Exploration Device\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Improvised Exploration Device\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eImprovised Exploration Device\u003c/strong\u003e\u003cbr/\u003e\n    Use the spring boards to get across the chasm in \u0026#34;Underwater\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/c7b56e8dba6cb4ab35cb290af493cc3bcf0a0940.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/c7b56e8dba6cb4ab35cb290af493cc3bcf0a0940.jpg\" alt=\"Subpar parking job\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Subpar parking job\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSubpar parking job\u003c/strong\u003e\u003cbr/\u003e\n    Find the speed boat in \u0026#34;Underwater\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/ce2c8ac20ef0f3ce061b7e7a9fc8b8c9dfb9aec7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/ce2c8ac20ef0f3ce061b7e7a9fc8b8c9dfb9aec7.jpg\" alt=\"Cove-r up!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cove-r up!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCove-r up!\u003c/strong\u003e\u003cbr/\u003e\n    Go above the cave in \u0026#34;Underwater\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/d0d6f326331627a98fc2afc70ca850253be0ae86.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/d0d6f326331627a98fc2afc70ca850253be0ae86.jpg\" alt=\"Ship it\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ship it\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShip it\u003c/strong\u003e\u003cbr/\u003e\n    Complete \u0026#34;Dockyard\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/e9efa3a8c74dc0b18efae3264742cd53da599ad7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/e9efa3a8c74dc0b18efae3264742cd53da599ad7.jpg\" alt=\"Olympic Grandeur\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Olympic Grandeur\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOlympic Grandeur\u003c/strong\u003e\u003cbr/\u003e\n    In \u0026#34;Dockyard\u0026#34;, use the chains to swing directly to the window\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/1236d2c9540026019e0c669989aa12f55af42a14.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/1236d2c9540026019e0c669989aa12f55af42a14.jpg\" alt=\"Shattered Dreams\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Shattered Dreams\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShattered Dreams\u003c/strong\u003e\u003cbr/\u003e\n    Smash all the glass in \u0026#34;Dockyard\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/ac4a4ad1be95b21b2b9ea71c72b00fc3c908584a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/ac4a4ad1be95b21b2b9ea71c72b00fc3c908584a.jpg\" alt=\"Seas the day\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Seas the day\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSeas the day\u003c/strong\u003e\u003cbr/\u003e\n    Reach the hidden boat in \u0026#34;Dockyard\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/37e48f6281a965c32e3da437fa561dc43a6d57de.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/37e48f6281a965c32e3da437fa561dc43a6d57de.jpg\" alt=\"Exclusive Tour\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Exclusive Tour\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExclusive Tour\u003c/strong\u003e\u003cbr/\u003e\n    Complete \u0026#34;Museum\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/d7b26b98047d5c5e202fdb75134f12f25a9301bb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/d7b26b98047d5c5e202fdb75134f12f25a9301bb.jpg\" alt=\"Buckshot\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Buckshot\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBuckshot\u003c/strong\u003e\u003cbr/\u003e\n    Destroy the wall by firing all 5 cannon balls at once in \u0026#34;Museum\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/0e8cc3fee33f958413789bb8df1ae4a8a628a33e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/0e8cc3fee33f958413789bb8df1ae4a8a628a33e.jpg\" alt=\"Laser Accurate\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Laser Accurate\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLaser Accurate\u003c/strong\u003e\u003cbr/\u003e\n    Avoid all security lasers in \u0026#34;Museum\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/8a176d55dc030ed77824fb20aa3c90ae8aa4fc81.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/8a176d55dc030ed77824fb20aa3c90ae8aa4fc81.jpg\" alt=\"Eye Spy\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Eye Spy\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEye Spy\u003c/strong\u003e\u003cbr/\u003e\n    Find the three hidden eye symbols in \u0026#34;Museum\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/48af0cd35b4b7a932687cec0b373eba1b23197d9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/48af0cd35b4b7a932687cec0b373eba1b23197d9.jpg\" alt=\"A Leisurely Stroll\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Leisurely Stroll\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Leisurely Stroll\u003c/strong\u003e\u003cbr/\u003e\n    Complete \u0026#34;Hike\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/489578c677be6d1a67f027184bc5abab2176873d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/489578c677be6d1a67f027184bc5abab2176873d.jpg\" alt=\"Human Thawed Flat\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Human Thawed Flat\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHuman Thawed Flat\u003c/strong\u003e\u003cbr/\u003e\n    Free the cardboard cutout in \u0026#34;Hike\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/dc803ac8b601b60ffe2803f88aa1743de6a93b9d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/dc803ac8b601b60ffe2803f88aa1743de6a93b9d.jpg\" alt=\"Speed Skating\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Speed Skating\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpeed Skating\u003c/strong\u003e\u003cbr/\u003e\n    Complete three laps around the glacier in 60 seconds in \u0026#34;Hike\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/24d3f5f2f92137b9c6270cd6397e8dbd8beec49e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/24d3f5f2f92137b9c6270cd6397e8dbd8beec49e.jpg\" alt=\"Prepared for winter\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Prepared for winter\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePrepared for winter\u003c/strong\u003e\u003cbr/\u003e\n    Roll the barrel inside the cellar in \u0026#34;Hike\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/c953ec760b87e24e30eb62387a49be0e59ac89bb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/c953ec760b87e24e30eb62387a49be0e59ac89bb.jpg\" alt=\"Sweet Dreams\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sweet Dreams\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSweet Dreams\u003c/strong\u003e\u003cbr/\u003e\n    Complete \u0026#34;Candyland\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/0edb8efd3f59e956378e3a710f5c388fad9f6032.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/0edb8efd3f59e956378e3a710f5c388fad9f6032.jpg\" alt=\"Stay Puft\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Stay Puft\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStay Puft\u003c/strong\u003e\u003cbr/\u003e\n    Get a marshmallow from the tree in \u0026#34;Candyland\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/7a95fa2a77874d166f713bcc7cb09c95080df3c3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/7a95fa2a77874d166f713bcc7cb09c95080df3c3.jpg\" alt=\"Route Canal\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Route Canal\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRoute Canal\u003c/strong\u003e\u003cbr/\u003e\n    Avoid hitting any donuts in chocolate river in \u0026#34;Candyland\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/3efc5df58c52ece34457125552fd90718842f1d8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/3efc5df58c52ece34457125552fd90718842f1d8.jpg\" alt=\"Dodgeball\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Dodgeball\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDodgeball\u003c/strong\u003e\u003cbr/\u003e\n    Avoid all of the rolling balls in \u0026#34;Candyland\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/bdccff9f9ce776a9eedba449c211f9d9b6a2dca2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/bdccff9f9ce776a9eedba449c211f9d9b6a2dca2.jpg\" alt=\"Test Complete\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Test Complete\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTest Complete\u003c/strong\u003e\u003cbr/\u003e\n    Complete \u0026#34;Test Chamber\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/c3cafaa03e3fabe298fe508a637a409b03dd78ec.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/c3cafaa03e3fabe298fe508a637a409b03dd78ec.jpg\" alt=\"Half-baked puzzle\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Half-baked puzzle\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHalf-baked puzzle\u003c/strong\u003e\u003cbr/\u003e\n    Find the cake in \u0026#34;Test Chamber\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/5eef155d18ac844cdef1771c973a0ca6e17d3e5c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/5eef155d18ac844cdef1771c973a0ca6e17d3e5c.jpg\" alt=\"Need to vent\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Need to vent\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNeed to vent\u003c/strong\u003e\u003cbr/\u003e\n    Go through all the ventilation shafts in \u0026#34;Test Chamber\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/60754b17f6d140eb96589590646ce7ff03bcad47.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/60754b17f6d140eb96589590646ce7ff03bcad47.jpg\" alt=\"Hope that wasn\u0026#39;t important\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hope that wasn\u0026#39;t important\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHope that wasn\u0026#39;t important\u003c/strong\u003e\u003cbr/\u003e\n    Recycle the cube blueprints in \u0026#34;Test Chamber\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/1798b45a2390e333faa72f2feadea528f95d0f2d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/1798b45a2390e333faa72f2feadea528f95d0f2d.jpg\" alt=\"Full steam ahead\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Full steam ahead\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFull steam ahead\u003c/strong\u003e\u003cbr/\u003e\n    Complete \u0026#34;Steampunk Party\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/972ab64b0609eb40b3402df32419f13030ee5d0b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/972ab64b0609eb40b3402df32419f13030ee5d0b.jpg\" alt=\"Party Animal\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Party Animal\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eParty Animal\u003c/strong\u003e\u003cbr/\u003e\n    Start the party in \u0026#34;Steampunk Party\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/e62450ad04cd1f9edbf55f1bad0a25a679464fb2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/e62450ad04cd1f9edbf55f1bad0a25a679464fb2.jpg\" alt=\"Let off some steam\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Let off some steam\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLet off some steam\u003c/strong\u003e\u003cbr/\u003e\n    Find and turn the hidden valves in \u0026#34;Steampunk Party\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/ca10c32e813864f9f15ef2427d58c76179a9834f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/ca10c32e813864f9f15ef2427d58c76179a9834f.jpg\" alt=\"Bellhop\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bellhop\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBellhop\u003c/strong\u003e\u003cbr/\u003e\n    Ring the bell in \u0026#34;Steampunk Party\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/477160/library_600x900.jpg\" alt=\"Human: Fall Flat box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/477160/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eHuman: Fall Flat\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 48.98%\"\u003e\n        48.98%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e72/147 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e1998.9h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2024-09-19\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (72)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/be2ca7728b348b6e3b8e7b6ef138b2ad17ab3f98.jpg\" alt=\"Leap of Fail\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLeap of Fail\u003c/strong\u003e\u003cbr\u003e\n    Complete \"Mansion\"\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 25, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/ff963655efb5b8000cea2bf314e141d82334ffce.jpg\" alt=\"Choo Choo!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChoo Choo!\u003c/strong\u003e\u003cbr\u003e\n    Complete \"Train\"\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 25, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/4d56eab4c42e270945e88e5d183d78186f843eac.jpg\" alt=\"Don't Get a Splinter!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDon't Get a Splinter!\u003c/strong\u003e\u003cbr\u003e\n    Complete \"Carry\"\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 25, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/666538e0b81ddfa87b7a0aff7b3ecf43afe6a485.jpg\" alt=\"What Goes Up\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhat Goes Up\u003c/strong\u003e\u003cbr\u003e\n    Complete \"Mountain\"\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 26, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/c372d5468856b6ea830e886de68247cd3d6b8eb5.jpg\" alt=\"Brute Force\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBrute Force\u003c/strong\u003e\u003cbr\u003e\n    Complete \"Demolition\"\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 26, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/0951829565b4129746b0ceee20f3a3f20d33ccd4.jpg\" alt=\"Storm the Gate!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStorm the Gate!\u003c/strong\u003e\u003cbr\u003e\n    Complete \"Castle\"\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 28, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/09ac323d713ae6c85ac82150b5b3b0ac6e74cd0d.jpg\" alt=\"Feet First\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFeet First\u003c/strong\u003e\u003cbr\u003e\n    Complete \"Water\" diving feet-first\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 18, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/5b72990149cc53e20f7f69cb1af027ab9a5f0ccb.jpg\" alt=\"Head First\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHead First\u003c/strong\u003e\u003cbr\u003e\n    Complete \"Water\" diving head-first\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 20, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/2e6709365917cd09b327a98c6a9707de3935f07c.jpg\" alt=\"The End?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe End?\u003c/strong\u003e\u003cbr\u003e\n    Complete \"Power Plant\"\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 30, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/41f97336c04175dca346f753b71af224bf365529.jpg\" alt=\"No escape\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNo escape\u003c/strong\u003e\u003cbr\u003e\n    Fall and respawn once\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 25, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/fd86c1a9e2487ab8b07a6e2df33e8d8b6aeac1c6.jpg\" alt=\"Pigeon Simulator\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePigeon Simulator\u003c/strong\u003e\u003cbr\u003e\n    Stand on the head of the statue in the intro\u003cbr\u003e\n    \u003csmall\u003eUnlocked: February 10, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/531c3214dcd6dce107b4a410fb20f6b3c678311f.jpg\" alt=\"Mind the gap!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMind the gap!\u003c/strong\u003e\u003cbr\u003e\n    Take a big shortcut in the level \"Mansion\"\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 07, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/c2a1ab1c9240e3448ad01ee4809ce77189e456bf.jpg\" alt=\"Public service\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePublic service\u003c/strong\u003e\u003cbr\u003e\n    Place 5 pieces of debris in a dumpster\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 07, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/2e5b595c457b457f8bd8b4095d0a3ddb41a5df09.jpg\" alt=\"Perfectionist\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePerfectionist\u003c/strong\u003e\u003cbr\u003e\n    Align a flipped bench with a wall\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 07, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/22000f86fb4bdf87f2068fcd799942df91a2cb79.jpg\" alt=\"It's stuck\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt's stuck\u003c/strong\u003e\u003cbr\u003e\n    Jam a door and go through it in \"Carry\"\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 22, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/5781717188685084c75e12ad948e74a51dcb93ed.jpg\" alt=\"Tower\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTower\u003c/strong\u003e\u003cbr\u003e\n    Stack all 4 boxes in the level \"Carry\"\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 22, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/832b10fa0d382288fced1301698eccaed050a9f7.jpg\" alt=\"Silent hours (Noisy neighbours)\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSilent hours (Noisy neighbours)\u003c/strong\u003e\u003cbr\u003e\n    Get rid of the speaker set in \"Mountain\"\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 07, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/e3b2dd3ea1a23b5ef3c5635a1741e3a4db407007.jpg\" alt=\"My treasure\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMy treasure\u003c/strong\u003e\u003cbr\u003e\n    Collect all gems into a pile in \"Mountain\"\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 26, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/dc264f45d561b2c2e2c8e8130b3a53f678ef6ea2.jpg\" alt=\"Wrong direction\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWrong direction\u003c/strong\u003e\u003cbr\u003e\n    Use the window on your left instead of smashing the wall in \"Demolition\"\u003cbr\u003e\n    \u003csmall\u003eUnlocked: February 06, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/f0b0fcd1f809669c5031f2a84107e8b1970eb641.jpg\" alt=\"Surprise! (Avalanche!)\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSurprise! (Avalanche!)\u003c/strong\u003e\u003cbr\u003e\n    Unleash the boulder gate in \"Demolition\"\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 26, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/74e6a7f5bd801e223f68c058aae1bec103cb56ff.jpg\" alt=\"Primal\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePrimal\u003c/strong\u003e\u003cbr\u003e\n    Break 4 walls without using any gadgets in \"Demolition\"\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 06, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/dac11214fcfa9c9c60bc23a29bd08220d2753f3e.jpg\" alt=\"Improvised Ammo\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eImprovised Ammo\u003c/strong\u003e\u003cbr\u003e\n    Launch yourself with the catapult in \"Castle\"\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 26, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/f795a247b93b22e0d392b65db100cc2ade789cd5.jpg\" alt=\"For whom the bell tolls\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFor whom the bell tolls\u003c/strong\u003e\u003cbr\u003e\n    Ring the castle bell in \"Castle\"\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 22, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/9c8e87cfd8b72effbaeb967d1265907a398a27e3.jpg\" alt=\"Row, row, row your boat\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRow, row, row your boat\u003c/strong\u003e\u003cbr\u003e\n    Use the row boat to get to the cargo ship in \"Water\"\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 08, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/4f847b1f07a587375cfcb198c94fe8791def78f3.jpg\" alt=\"Reverse gear\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eReverse gear\u003c/strong\u003e\u003cbr\u003e\n    Enter the dock with the ship backwards in \"Water\"\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 09, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/d242336329c9ee04617259cdb6cf9e5a07d93d80.jpg\" alt=\"Beacon\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeacon\u003c/strong\u003e\u003cbr\u003e\n    Light up the lighthouse in \"Water\"\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 20, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/ede65412193b0ace68f2fd41b5ed95488e539424.jpg\" alt=\"Breathing exercise\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBreathing exercise\u003c/strong\u003e\u003cbr\u003e\n    In \"Water\", get out of the water in 100ms to avoid drowning\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 28, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/a736af95b7c032d8fe226af11d36907a2fa326b2.jpg\" alt=\"Surfer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSurfer\u003c/strong\u003e\u003cbr\u003e\n    Don't get wet while surfing down the mountain in \"Water\"\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 18, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/e510ce945d7740abfe04972353994b0779ebd184.jpg\" alt=\"Electricity 101\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eElectricity 101\u003c/strong\u003e\u003cbr\u003e\n    Short-circuit the wires in \"Power Plant\"\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 28, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/2abef9d88abc5839b7d21a523060b8426bfcc113.jpg\" alt=\"Delivery boy\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDelivery boy\u003c/strong\u003e\u003cbr\u003e\n    Deliver 10 pieces of coal to the main island in \"Power Plant\"\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 30, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/2f487e974b4c81f6dd0257893d2d7d4bfb353bf3.jpg\" alt=\"Thief\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThief\u003c/strong\u003e\u003cbr\u003e\n    Steal the battery from the statue in \"Power Plant\"\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 21, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/c5256fc3c8d743d8c99e55f98a76a545ff9f3e3f.jpg\" alt=\"Tourist\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTourist\u003c/strong\u003e\u003cbr\u003e\n    Travel 1km\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 25, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/35376cbf4e82e5ca54f1fe82a2e6aeb38dbe0f63.jpg\" alt=\"Traveler\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTraveler\u003c/strong\u003e\u003cbr\u003e\n    Travel 10km\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 26, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/96b2bb79c77f05fe528d5051266bafc76b95df0f.jpg\" alt=\"Adventurer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAdventurer\u003c/strong\u003e\u003cbr\u003e\n    Travel 25km\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 29, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/38260dc21d5cc82e60a35379720f6e99e56f78ca.jpg\" alt=\"Let it rain\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLet it rain\u003c/strong\u003e\u003cbr\u003e\n    Respawn 100 times\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 26, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/3bdb40f9799cdc69c8ce5c0c698f128139dae602.jpg\" alt=\"Trampoline\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTrampoline\u003c/strong\u003e\u003cbr\u003e\n    Jump 1000 times\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 26, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/960a1d4d39f3b4c6abecad1ac0f21dc783570b48.jpg\" alt=\"Climber\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eClimber\u003c/strong\u003e\u003cbr\u003e\n    Climb 100m\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 26, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/57efe2db3f7597e04c6bce1da8dee1a0a669e154.jpg\" alt=\"Heavy lifting\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHeavy lifting\u003c/strong\u003e\u003cbr\u003e\n    Carry objects for a total of 1000m\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 26, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/e8a28ef30a67ed324a4be620c0895de3c7a22a41.jpg\" alt=\"Learn to swim\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLearn to swim\u003c/strong\u003e\u003cbr\u003e\n    Drown 10 times\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 26, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/18a689ac397d16f9552faf9204b305a2e0ca656c.jpg\" alt=\"Sail away!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSail away!\u003c/strong\u003e\u003cbr\u003e\n    Use any of the boats to travel 1km\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 28, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/2e1bd187e99d26847f0958e65c58b56c88dd395c.jpg\" alt=\"Petrolhead\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePetrolhead\u003c/strong\u003e\u003cbr\u003e\n    Use any of the ground vehicles to travel 1km\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 30, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/c277797f590eca16811f242b89471b377dfc3a66.jpg\" alt=\"The End\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe End\u003c/strong\u003e\u003cbr\u003e\n    Complete \"Aztec\"\u003cbr\u003e\n    \u003csmall\u003eUnlocked: February 01, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/9c23007555357b3867674adf3958d8405e105641.jpg\" alt=\"It's Alive!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt's Alive!\u003c/strong\u003e\u003cbr\u003e\n    Complete \"Dark\"\u003cbr\u003e\n    \u003csmall\u003eUnlocked: February 02, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/e4ffe0b6e0baa071f5386544fd9d05d2926734ad.jpg\" alt=\"Fry Me to the Moon\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFry Me to the Moon\u003c/strong\u003e\u003cbr\u003e\n    Hold on to the EXIT lid after you flick the switch in \"Dark\"\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 04, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/2f1bd1c30ab4c6d92665892b15e6e11c1e4e04f3.jpg\" alt=\"Under Pressure\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUnder Pressure\u003c/strong\u003e\u003cbr\u003e\n    Complete \"Steam\"\u003cbr\u003e\n    \u003csmall\u003eUnlocked: February 02, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/1f856187dd602483c9583f056b7ff34430bc9658.jpg\" alt=\"Walk the Plank\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWalk the Plank\u003c/strong\u003e\u003cbr\u003e\n    Reach the big wheel in \"Steam\" without using the crane controls\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 03, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/d621a3009368fdd76a1489f517bfa0e4ab7d43fb.jpg\" alt=\"Get Dizzy\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGet Dizzy\u003c/strong\u003e\u003cbr\u003e\n    Ride 3 complete revolutions of the big wheel in \"Steam\"\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 16, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/19727978d6b02c26ea9e8bee9677a438f8d2fa01.jpg\" alt=\"Whoops!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhoops!\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: February 02, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/b13e2bbf196345c7923651c97ad445d65b233294.jpg\" alt=\"Avalanche\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAvalanche\u003c/strong\u003e\u003cbr\u003e\n    Complete \"Ice\"\u003cbr\u003e\n    \u003csmall\u003eUnlocked: February 05, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/93aef7f6d605da32f6bc09cdc039056af7b52db5.jpg\" alt=\"Tricky\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTricky\u003c/strong\u003e\u003cbr\u003e\n    Complete the slope jump in \"Ice\" with 2 snowboards strapped to your feet\u003cbr\u003e\n    \u003csmall\u003eUnlocked: February 04, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/317224b7e99398a6f5dcf261f6947c8ad9cad212.jpg\" alt=\"No Ice Ice Baby\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNo Ice Ice Baby\u003c/strong\u003e\u003cbr\u003e\n    Complete the seesaw puzzle in \"Ice\" without using an ice cube\u003cbr\u003e\n    \u003csmall\u003eUnlocked: February 04, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/f48efb72948cd286ca81a78af93072520d9a6af2.jpg\" alt=\"Candy Rush\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCandy Rush\u003c/strong\u003e\u003cbr\u003e\n    Zip line down from the mountain in \"Christmas\" using a candy cane\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 26, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/ded27b48f2c2abe7d05a0fec532970b0df396e1c.jpg\" alt=\"Bah, Humbug!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBah, Humbug!\u003c/strong\u003e\u003cbr\u003e\n    Shoot the Christmas angel off the tree top in \"Christmas\"\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 12, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/7255f3b2066f46f7a1451d88285081a241ba6c8e.jpg\" alt=\"Wrapped Up\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWrapped Up\u003c/strong\u003e\u003cbr\u003e\n    Complete \"Thermal\"\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 03, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/fd2a6dbff3bce53ba45841f8c2d5c30f2f0bf3a9.jpg\" alt=\"Hook, Line and Jumper\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHook, Line and Jumper\u003c/strong\u003e\u003cbr\u003e\n    Enter the compound in \"Thermal\" without passing through the main gate\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 03, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/5f63e52a6a51babe5ba79380e70599b5aa7f32c4.jpg\" alt=\"Amped!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAmped!\u003c/strong\u003e\u003cbr\u003e\n    Attach all electrical cables in 35 seconds or less in \"Thermal\"\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 19, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/d56aa96ac8cc2c3b6d6b39afddf0b78238330a24.jpg\" alt=\"The Foreman\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Foreman\u003c/strong\u003e\u003cbr\u003e\n    Complete \"Factory\"\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 22, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/37df58da989bddbbcbcbd429be2bbda642a537a7.jpg\" alt=\"Radio Silence\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRadio Silence\u003c/strong\u003e\u003cbr\u003e\n    Throw all four radios off the level in “Factory”\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 23, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/4f76811938943ebd9bfc8156602b91c67e74bc62.jpg\" alt=\"After Hours\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAfter Hours\u003c/strong\u003e\u003cbr\u003e\n    Complete the first half of “Factory” without turning any lights on\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 23, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/ea337db0cbe77bad2935611fb3cea3228f8a6197.jpg\" alt=\"How to get Fired!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHow to get Fired!\u003c/strong\u003e\u003cbr\u003e\n    Throw one of each item in the final room into the fire in “Factory”\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 23, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/ccfc9a8e5266861d0be60d2d225eca7204ebb334.jpg\" alt=\"Hole in One\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHole in One\u003c/strong\u003e\u003cbr\u003e\n    Complete \"Golf\"\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 19, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/fbae0b7f3eefb0b1e3d8d04c50ce7a8312bab8e6.jpg\" alt=\"Birdie\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBirdie\u003c/strong\u003e\u003cbr\u003e\n    Using ONLY the golf club, putt the ball in 3 strokes or less\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 27, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/184d8265ba4a289e7d5b1a3e0d00a06b6508b62d.jpg\" alt=\"Bogey (1 Over Par)\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBogey (1 Over Par)\u003c/strong\u003e\u003cbr\u003e\n    Take the alternate route above the cave\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 27, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/6c56506570fc712c36c4b2e8d0b92db88b1ecd35.jpg\" alt=\"Mulligan\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMulligan\u003c/strong\u003e\u003cbr\u003e\n    Drive the golf cart off the edge of the level\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 19, 2020\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/09a9425531ae83353c60c9a7642a98568ce2feb4.jpg\" alt=\"Sports Fan\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSports Fan\u003c/strong\u003e\u003cbr\u003e\n    Complete \"City\" level\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 23, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/aaeca1c1e8e13035ee9b1261bdfcf4ab9801e26b.jpg\" alt=\"Tip-Top Ten Pin\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTip-Top Ten Pin\u003c/strong\u003e\u003cbr\u003e\n    Complete all 4 bowling lanes\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 23, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/c0396237bfe59108efcd15aa7ab163eacde10487.jpg\" alt=\"Fortune Tree\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFortune Tree\u003c/strong\u003e\u003cbr\u003e\n    Collect the Golden Sycees from the fortune tree\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 17, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/d496f513f3c9232d8e315e92a448bf07935805d4.jpg\" alt=\"Wrecking Crew\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWrecking Crew\u003c/strong\u003e\u003cbr\u003e\n    Destroy the statue\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 24, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/bf51ca58b3c628c76756fb60ab894f5b90f9badc.jpg\" alt=\"Toasty\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eToasty\u003c/strong\u003e\u003cbr\u003e\n    Light the marshmallows over the bonfire\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 26, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/5307c3e4643552ed23ab5fde536db1536a28cc32.jpg\" alt=\"On Thin Ice\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOn Thin Ice\u003c/strong\u003e\u003cbr\u003e\n    Don't let the ice block melt\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 26, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/f4f4f2ebba8fad6ca25e87f6a3c0988dba7277ad.jpg\" alt=\"Wrong Turn\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWrong Turn\u003c/strong\u003e\u003cbr\u003e\n    Complete \"Forest\"\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 26, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/8fbeacfc97471fcd811334e0cf611cff403e0c7f.jpg\" alt=\"KABOOM!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKABOOM!\u003c/strong\u003e\u003cbr\u003e\n    Complete “Laboratory”\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 29, 2021\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (75)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/c3bc8f811796fdafe26eba3d979c2d3ff78aa070.jpg\" alt=\"Speedrun \" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpeedrun \u003c/strong\u003e\u003cbr\u003e\n    Complete the game start-to-end in one run\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/5b191992c3b38ff03afdb628cd08977a6dad1c62.jpg\" alt=\"AH, EO, EO, EO, EO, OOOOO!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAH, EO, EO, EO, EO, OOOOO!\u003c/strong\u003e\u003cbr\u003e\n    Use the rope to go above the abyss in the level \"Mountain\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/d1460625b8e696a17b1ed1db22e93c21e912ccef.jpg\" alt=\"Zipline\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eZipline\u003c/strong\u003e\u003cbr\u003e\n    Zipline from the church tower in \"Castle\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/220c62307919928001e4b5a96bffc0a328e8c8e3.jpg\" alt=\"Smooth moves\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSmooth moves\u003c/strong\u003e\u003cbr\u003e\n    Parkour fluidly from the alley to the blacksmith in \"Castle\" without touching the ground.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/8d5d0eb96d8f631aadb8ae458f45dddc9c944fde.jpg\" alt=\"Will it fry?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWill it fry?\u003c/strong\u003e\u003cbr\u003e\n    Feed an appliance with power from 3 batteries in \"Power Plant\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/9f4c48ebab75c5da5ea2cdac477a6dc01e28c7b3.jpg\" alt=\"Convertible ride\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eConvertible ride\u003c/strong\u003e\u003cbr\u003e\n    Ride 50m in a dumpster\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/e6dddaa727b6076fd56bbe7cad2933bf060ff0c3.jpg\" alt=\"Bird's eye view\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBird's eye view\u003c/strong\u003e\u003cbr\u003e\n    Climb to the top of the tree with the birds nest in “Aztec”\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/13487216ac07739c172e0f83792b95a2d95213a4.jpg\" alt=\"Rollin'\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRollin'\u003c/strong\u003e\u003cbr\u003e\n    Walk on the rolling ball to bypass a puzzle in “Aztec”\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/7063d095ef895d21a90de7870c6cf1610d0cff4e.jpg\" alt=\"Clockwork\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eClockwork\u003c/strong\u003e\u003cbr\u003e\n    Pass the pendulum obstacle course in 60 seconds in “Aztec”\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/d3c69670cdc6a8a6b50b765eba7f1240a9bb8394.jpg\" alt=\"Tick Tock\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTick Tock\u003c/strong\u003e\u003cbr\u003e\n    Climb the Clock Tower in 40 seconds in \"Dark\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/08bbbc5a30499e4f606d0cb64843db434441d35c.jpg\" alt=\"Planks? No Thanks!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePlanks? No Thanks!\u003c/strong\u003e\u003cbr\u003e\n    Complete \"Dark\" without moving any planks that are barring doors\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/329e2ca6947cebbd03783db21b7fa3c1ade3141d.jpg\" alt=\"Taking the Piste\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTaking the Piste\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/f3d57ee2dfc85ce104a4c19d664a446ca205fd81.jpg\" alt=\"Deck the Halls\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDeck the Halls\u003c/strong\u003e\u003cbr\u003e\n    Land in the snow fort in \"Christmas\" on a snowboard\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/339b5683dda0e159201ded0321c930352b1d9acb.jpg\" alt=\"Top the Hat\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTop the Hat\u003c/strong\u003e\u003cbr\u003e\n    Stand atop the large snowman's hat in \"Christmas\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/a5e3c18b34bb61328404a6f9dc3a0041d0172803.jpg\" alt=\"Pay Day\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePay Day\u003c/strong\u003e\u003cbr\u003e\n    Complete \"Thermal\" while holding a gold bar\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/f54259166d326b1a05840c69b22aa0586a8768cc.jpg\" alt=\"Hitchhiker\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHitchhiker\u003c/strong\u003e\u003cbr\u003e\n    Ride one of the vehicles for 10 seconds\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/1f3fb71eb0f4ce3696a7222d222981583cdb8b66.jpg\" alt=\"Temper Tantrum\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTemper Tantrum\u003c/strong\u003e\u003cbr\u003e\n    Knock all 3 rag dolls off the level\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/93b20325e41736fcfce32e273287979b5e4a4a25.jpg\" alt=\"Lucky Carp\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLucky Carp\u003c/strong\u003e\u003cbr\u003e\n    Walk through the gates of the heavenly palace\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/32fdbc4332e1dc1b907cdf9819b27726e35d8cf1.jpg\" alt=\"Zodiac\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eZodiac\u003c/strong\u003e\u003cbr\u003e\n    Unite all 12 Zodiac heads\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/4f6f296988a28515d9243dce8c39e16858afb898.jpg\" alt=\"Laojun’s Furnace\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLaojun’s Furnace\u003c/strong\u003e\u003cbr\u003e\n    Craft 3 different magical item in the golden furnace\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/714092488cfbacb9c9616b9c91cac5ce03fbe2f7.jpg\" alt=\"Bullseye\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBullseye\u003c/strong\u003e\u003cbr\u003e\n    Hit all targets without missing a single shot\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/6b1300749ad4bfc380ec66524ac6ecb0d16d9ac7.jpg\" alt=\"Cast it into the fire\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCast it into the fire\u003c/strong\u003e\u003cbr\u003e\n    Throw an orb into the lava\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/2097d0d024a48e09b269d31565b2014e7755af56.jpg\" alt=\"Overachiever\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOverachiever\u003c/strong\u003e\u003cbr\u003e\n    Reach the exit door whilst holding an orb in the launch pad room\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/6971b429e0a8ff98ff08a6744b1e3cb598f6e51f.jpg\" alt=\"The Great Outdoors\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Great Outdoors\u003c/strong\u003e\u003cbr\u003e\n    Complete Lumber\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/71ec2c70f0da254ce89c1b972caa0a68cad7a300.jpg\" alt=\"Safety first\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSafety first\u003c/strong\u003e\u003cbr\u003e\n    Use two hooks when crossing the chasm in Lumber\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/d440c29421e5d773de5540d827b64c719b0dec56.jpg\" alt=\"Bedwetter\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBedwetter\u003c/strong\u003e\u003cbr\u003e\n    Wet the bed in Lumber\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/c7c0dbab8236f995c67e79af12fb4bdd6e87437f.jpg\" alt=\"Lights out\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLights out\u003c/strong\u003e\u003cbr\u003e\n    Throw the lanterns off the map\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/6935d1e14dd881ff46853fd393dd4a6885150a6f.jpg\" alt=\"Don’t blame it on the sunshine\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDon’t blame it on the sunshine\u003c/strong\u003e\u003cbr\u003e\n    Turn on the jukebox in \"Red Rock\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/56fd8eb97db57c8b18ff86a1b2f133c037b607b8.jpg\" alt=\"Pipe dream\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePipe dream\u003c/strong\u003e\u003cbr\u003e\n    Use the sewer to escape the junkyard on \"Redrock\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/d963e9a1cb28234ab0e88bf896500f3f220223c5.jpg\" alt=\"Pretty fly for a cacti\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePretty fly for a cacti\u003c/strong\u003e\u003cbr\u003e\n    Place the hat on the cactus in \"Red Rock\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/0ca9b3aaebf18804eaeab037c209ee4fa46d90d4.jpg\" alt=\"Currently Attractive\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCurrently Attractive\u003c/strong\u003e\u003cbr\u003e\n    Complete \"Red Rock\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/89e273f4bc8e66abe360627ab91acb7e53a23d5c.jpg\" alt=\"Out of the orbinary\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOut of the orbinary\u003c/strong\u003e\u003cbr\u003e\n    Go fishing in \"Tower\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/061bb58405ad9b1b1d645a39b82924a30f2e293c.jpg\" alt=\"Time saver\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTime saver\u003c/strong\u003e\u003cbr\u003e\n    Use the pipe to cross the lava in \"Tower\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/bce4c651fcf2e3fc2eda9405be76da5908afe040.jpg\" alt=\"Foot in the door\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFoot in the door\u003c/strong\u003e\u003cbr\u003e\n    Find a shorter route for moving the batteries in \"Tower\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/e4c05965620acc22e86d56e3b8b426233b95f7fa.jpg\" alt=\"Just walked in\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJust walked in\u003c/strong\u003e\u003cbr\u003e\n    Complete \"Tower\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/cc5682d431c38b3301e7feee39446c1d6e2069bb.jpg\" alt=\"Small fish, big pond\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSmall fish, big pond\u003c/strong\u003e\u003cbr\u003e\n    Complete \"Miniature\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/d320855917bbe16315e0942706f81cdf9acaf521.jpg\" alt=\"Top Shelf\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTop Shelf\u003c/strong\u003e\u003cbr\u003e\n    Reach the highest platform above the power drill in \"Miniature\" \n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/305b1e2827fd464405e66b1bad85dbcca3237712.jpg\" alt=\"Spotless clean\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpotless clean\u003c/strong\u003e\u003cbr\u003e\n    Get rid of the ash in \"Miniature\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/b4e97bacd8497c5d7515263a07d780a2251f8c6e.jpg\" alt=\"The floor is lava\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe floor is lava\u003c/strong\u003e\u003cbr\u003e\n    Starting from the bag of soil, reach the top of the crate without touching the red tiles in \"Miniature\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/61a71584e82ed669464be87c7350086bf2ddd178.jpg\" alt=\"Square peg in a round hole\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSquare peg in a round hole\u003c/strong\u003e\u003cbr\u003e\n    Attempt to use an improvised battery in \"Copper World\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/48ccf5a4ebd0aa334f81a9982fcf447e94406550.jpg\" alt=\"Unlimited Power!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUnlimited Power!\u003c/strong\u003e\u003cbr\u003e\n    Form an independent laser loop in \"Copper World\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/8aea3cbfcfc78b3c3d695f256b9a5307c19c94c0.jpg\" alt=\"Loose change\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLoose change\u003c/strong\u003e\u003cbr\u003e\n    Throw all four hidden coins off the level in \"Copper World\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/229e1027bc6ccc5affc4501e8e3d4d3e1af4b2d4.jpg\" alt=\"Cu later\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCu later\u003c/strong\u003e\u003cbr\u003e\n    Complete \"Copper World\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/46f51630254d7ccbbaf2f4acc8e23f993a72c943.jpg\" alt=\"Barrel of laughs\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBarrel of laughs\u003c/strong\u003e\u003cbr\u003e\n    Complete \"Port\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/73ba319fd937e6722c30dcf3fb404d0123eac386.jpg\" alt=\"A call for aid\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA call for aid\u003c/strong\u003e\u003cbr\u003e\n    Light the beacons in \"Port\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/6ac632c164581c83d4e2b1212fc3a28d30cadd7f.jpg\" alt=\"Spring cleaning\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpring cleaning\u003c/strong\u003e\u003cbr\u003e\n    Clear out the room directly after the zipline in \"Port\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/330fc7e7633a9702cd083240409cadf68d93821b.jpg\" alt=\"To beach their own\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTo beach their own\u003c/strong\u003e\u003cbr\u003e\n    Reach the hidden island in \"Port\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/94d973b0b4cab3f5d3e4753dee36fe9b7e568530.jpg\" alt=\"Explorer of the Deep\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExplorer of the Deep\u003c/strong\u003e\u003cbr\u003e\n    Complete \"Underwater\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/6c61b5bcde670025446c38a196936d129ac7ac93.jpg\" alt=\"Improvised Exploration Device\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eImprovised Exploration Device\u003c/strong\u003e\u003cbr\u003e\n    Use the spring boards to get across the chasm in \"Underwater\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/c7b56e8dba6cb4ab35cb290af493cc3bcf0a0940.jpg\" alt=\"Subpar parking job\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSubpar parking job\u003c/strong\u003e\u003cbr\u003e\n    Find the speed boat in \"Underwater\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/ce2c8ac20ef0f3ce061b7e7a9fc8b8c9dfb9aec7.jpg\" alt=\"Cove-r up!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCove-r up!\u003c/strong\u003e\u003cbr\u003e\n    Go above the cave in \"Underwater\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/d0d6f326331627a98fc2afc70ca850253be0ae86.jpg\" alt=\"Ship it\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShip it\u003c/strong\u003e\u003cbr\u003e\n    Complete \"Dockyard\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/e9efa3a8c74dc0b18efae3264742cd53da599ad7.jpg\" alt=\"Olympic Grandeur\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOlympic Grandeur\u003c/strong\u003e\u003cbr\u003e\n    In \"Dockyard\", use the chains to swing directly to the window\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/1236d2c9540026019e0c669989aa12f55af42a14.jpg\" alt=\"Shattered Dreams\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShattered Dreams\u003c/strong\u003e\u003cbr\u003e\n    Smash all the glass in \"Dockyard\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/ac4a4ad1be95b21b2b9ea71c72b00fc3c908584a.jpg\" alt=\"Seas the day\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSeas the day\u003c/strong\u003e\u003cbr\u003e\n    Reach the hidden boat in \"Dockyard\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/37e48f6281a965c32e3da437fa561dc43a6d57de.jpg\" alt=\"Exclusive Tour\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExclusive Tour\u003c/strong\u003e\u003cbr\u003e\n    Complete \"Museum\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/d7b26b98047d5c5e202fdb75134f12f25a9301bb.jpg\" alt=\"Buckshot\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBuckshot\u003c/strong\u003e\u003cbr\u003e\n    Destroy the wall by firing all 5 cannon balls at once in \"Museum\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/0e8cc3fee33f958413789bb8df1ae4a8a628a33e.jpg\" alt=\"Laser Accurate\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLaser Accurate\u003c/strong\u003e\u003cbr\u003e\n    Avoid all security lasers in \"Museum\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/8a176d55dc030ed77824fb20aa3c90ae8aa4fc81.jpg\" alt=\"Eye Spy\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEye Spy\u003c/strong\u003e\u003cbr\u003e\n    Find the three hidden eye symbols in \"Museum\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/48af0cd35b4b7a932687cec0b373eba1b23197d9.jpg\" alt=\"A Leisurely Stroll\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Leisurely Stroll\u003c/strong\u003e\u003cbr\u003e\n    Complete \"Hike\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/489578c677be6d1a67f027184bc5abab2176873d.jpg\" alt=\"Human Thawed Flat\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHuman Thawed Flat\u003c/strong\u003e\u003cbr\u003e\n    Free the cardboard cutout in \"Hike\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/dc803ac8b601b60ffe2803f88aa1743de6a93b9d.jpg\" alt=\"Speed Skating\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpeed Skating\u003c/strong\u003e\u003cbr\u003e\n    Complete three laps around the glacier in 60 seconds in \"Hike\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/24d3f5f2f92137b9c6270cd6397e8dbd8beec49e.jpg\" alt=\"Prepared for winter\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePrepared for winter\u003c/strong\u003e\u003cbr\u003e\n    Roll the barrel inside the cellar in \"Hike\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/c953ec760b87e24e30eb62387a49be0e59ac89bb.jpg\" alt=\"Sweet Dreams\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSweet Dreams\u003c/strong\u003e\u003cbr\u003e\n    Complete \"Candyland\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/0edb8efd3f59e956378e3a710f5c388fad9f6032.jpg\" alt=\"Stay Puft\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStay Puft\u003c/strong\u003e\u003cbr\u003e\n    Get a marshmallow from the tree in \"Candyland\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/7a95fa2a77874d166f713bcc7cb09c95080df3c3.jpg\" alt=\"Route Canal\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRoute Canal\u003c/strong\u003e\u003cbr\u003e\n    Avoid hitting any donuts in chocolate river in \"Candyland\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/3efc5df58c52ece34457125552fd90718842f1d8.jpg\" alt=\"Dodgeball\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDodgeball\u003c/strong\u003e\u003cbr\u003e\n    Avoid all of the rolling balls in \"Candyland\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/bdccff9f9ce776a9eedba449c211f9d9b6a2dca2.jpg\" alt=\"Test Complete\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTest Complete\u003c/strong\u003e\u003cbr\u003e\n    Complete \"Test Chamber\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/c3cafaa03e3fabe298fe508a637a409b03dd78ec.jpg\" alt=\"Half-baked puzzle\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHalf-baked puzzle\u003c/strong\u003e\u003cbr\u003e\n    Find the cake in \"Test Chamber\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/5eef155d18ac844cdef1771c973a0ca6e17d3e5c.jpg\" alt=\"Need to vent\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNeed to vent\u003c/strong\u003e\u003cbr\u003e\n    Go through all the ventilation shafts in \"Test Chamber\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/60754b17f6d140eb96589590646ce7ff03bcad47.jpg\" alt=\"Hope that wasn't important\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHope that wasn't important\u003c/strong\u003e\u003cbr\u003e\n    Recycle the cube blueprints in \"Test Chamber\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/1798b45a2390e333faa72f2feadea528f95d0f2d.jpg\" alt=\"Full steam ahead\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFull steam ahead\u003c/strong\u003e\u003cbr\u003e\n    Complete \"Steampunk Party\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/972ab64b0609eb40b3402df32419f13030ee5d0b.jpg\" alt=\"Party Animal\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eParty Animal\u003c/strong\u003e\u003cbr\u003e\n    Start the party in \"Steampunk Party\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/e62450ad04cd1f9edbf55f1bad0a25a679464fb2.jpg\" alt=\"Let off some steam\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLet off some steam\u003c/strong\u003e\u003cbr\u003e\n    Find and turn the hidden valves in \"Steampunk Party\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/477160/ca10c32e813864f9f15ef2427d58c76179a9834f.jpg\" alt=\"Bellhop\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBellhop\u003c/strong\u003e\u003cbr\u003e\n    Ring the bell in \"Steampunk Party\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Human: Fall Flat - 48.98% complete with 72/147 achievements unlocked.",
      "date_published": "2024-09-19T00:00:00Z",
      "date_modified": "2024-09-19T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "human-fall-flat"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/weeknote-0/",
      "url": "https://go.waylonwalker.com/weeknote-0/",
      "title": "Weeknote 0",
      "content_html": "\u003cp\u003eInspired by \u003ca href=\"https://simonwillison.net/tags/weeknotes/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/simonwillison.net.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/simonwillison.net.ico\" class=\"has-avatar  has-avatar-before\"\u003eSimon Willison\u003c/a\u003e  I’m\nstarting a weeknotes retrospective post to recap the week.  The theme this week\nhas been learning and setting up obsidian to work within my workflow.  I have\nsetup an image workflow, and edited a whole bunch of metadata for old posts.\u003c/p\u003e\n\u003ch2 id=\"posts\"\u003ePosts \u003ca href=\"#posts\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e2024-08-01 Gratitude 199 \u003ca href=\"/gratitude-199/\" class=\"wikilink\"\u003eGratitude 199\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e2024-07-31 Obsidian Using Templater Like Copier \u003ca href=\"/obsidian-using-templater-like-copier/\" class=\"wikilink\" data-title=\"Obsidian Using Templater Like Copier\" data-description=\"I\u0026#39;ve long used copier to create all of my posts for my blog, and it works really well for my workflow. I think of a title, call a template, and give it a...\" data-date=\"2024-07-31\" data-preview=\"I\u0026#39;ve long used copier to create all of my posts for my blog, and it works really well for my workflow. I think of a title, call a template, and give it a...\"\u003eObsidian Using Templater Like Copier\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e2024-07-31 Trying Obsidian \u003ca href=\"/trying-obsidian/\" class=\"wikilink\" data-title=\"Trying Obsidian\" data-description=\"I am giving obsidian a try, this is a test post to learn the flow. Something that has been really hard for me for a long time is images, I don\u0026#39;t include a...\" data-date=\"2024-07-31\" data-preview=\"I am giving obsidian a try, this is a test post to learn the flow. Something that has been really hard for me for a long time is images, I don\u0026#39;t include a...\"\u003eTrying Obsidian\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e2024-07-30 Obsidian Image Converter \u003ca href=\"/obsidian-image-converter/\" class=\"wikilink\" data-title=\"Obsidian Image Converter\" data-description=\"I\u0026#39;m giving obsidian a go as an editor for my blog and one of the main things I want to fix in my workflow is the ability to quickly drop in images. on first...\" data-date=\"2024-07-30\" data-preview=\"I\u0026#39;m giving obsidian a go as an editor for my blog and one of the main things I want to fix in my workflow is the ability to quickly drop in images. on first...\"\u003eObsidian Image Converter\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"thoughts\"\u003eThoughts \u003ca href=\"#thoughts\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003eThoughts\u003c/a\u003e are quick thoughts I leave that are generally tied to a link.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2024-08-02 💭 Make Your Own Luck (Do This To Stand Out In A Crowded Industry, Filmed At ‪@Renderatl‬) - Youtube [[thoughts-379]]\u003c/li\u003e\n\u003cli\u003e2024-08-01 💭 The Tank - Youtube [[thoughts-377]]\u003c/li\u003e\n\u003cli\u003e2024-08-01 💭 (8) I Invented Airless Cornhole Bags - Youtube [[thoughts-378]]\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\nInspired by [Simon Willison](https://simonwillison.net/tags/weeknotes/)  I'm\nstarting a weeknotes retrospective post to recap the week.  The theme this week\nhas been learning and setting up obsidian to work within my workflow.  I have\nsetup an image workflow, and edited a whole bunch of metadata for old posts.\n\n## Posts\n\n- 2024-08-01 Gratitude 199 \u003ca href=\"/gratitude-199/\" class=\"wikilink\"\u003eGratitude 199\u003c/a\u003e\n- 2024-07-31 Obsidian Using Templater Like Copier \u003ca href=\"/obsidian-using-templater-like-copier/\" class=\"wikilink\" data-title=\"Obsidian Using Templater Like Copier\" data-description=\"I\u0026#39;ve long used copier to create all of my posts for my blog, and it works really well for my workflow. I think of a title, call a template, and give it a...\" data-date=\"2024-07-31\"\u003eObsidian Using Templater Like Copier\u003c/a\u003e\n- 2024-07-31 Trying Obsidian \u003ca href=\"/trying-obsidian/\" class=\"wikilink\" data-title=\"Trying Obsidian\" data-description=\"I am giving obsidian a try, this is a test post to learn the flow. Something that has been really hard for me for a long time is images, I don\u0026#39;t include a...\" data-date=\"2024-07-31\"\u003eTrying Obsidian\u003c/a\u003e\n- 2024-07-30 Obsidian Image Converter \u003ca href=\"/obsidian-image-converter/\" class=\"wikilink\" data-title=\"Obsidian Image Converter\" data-description=\"I\u0026#39;m giving obsidian a go as an editor for my blog and one of the main things I want to fix in my workflow is the ability to quickly drop in images. on first...\" data-date=\"2024-07-30\"\u003eObsidian Image Converter\u003c/a\u003e\n\n## Thoughts\n\n\u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003eThoughts\u003c/a\u003e are quick thoughts I leave that are generally tied to a link.\n\n- 2024-08-02 💭 Make Your Own Luck (Do This To Stand Out In A Crowded Industry, Filmed At ‪@Renderatl‬) - Youtube [[thoughts-379]]\n- 2024-08-01 💭 The Tank - Youtube [[thoughts-377]]\n- 2024-08-01 💭 (8) I Invented Airless Cornhole Bags - Youtube [[thoughts-378]]\n",
      "summary": "Inspired by Simon Willison I'm starting a weeknotes retrospective post to recap the week. The theme this week has been learning and setting up obsidian to...",
      "date_published": "2024-08-04T00:00:00Z",
      "date_modified": "2024-08-04T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "weeknote"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/steamworld-newgame2017/",
      "url": "https://go.waylonwalker.com/steam/steamworld-newgame2017/",
      "title": "SteamWorld NewGame2017",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/571310/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/571310/library_600x900.jpg\" alt=\"SteamWorld NewGame2017 box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/571310/header.jpg\u0026#39;\"/ data-glightbox=\"description: SteamWorld NewGame2017 box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eSteamWorld NewGame2017\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 2.94%\"\u003e\n        2.94%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e1/34 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e3.9h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2024-08-04\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (1)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/a3dd449616e1555bc115f3859cad186836a8b3fa.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/a3dd449616e1555bc115f3859cad186836a8b3fa.jpg\" alt=\"The Guiding Light\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Guiding Light\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Guiding Light\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: February 26, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (33)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"A Mysterious Garden\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Mysterious Garden\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Mysterious Garden\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"A Shining City\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Shining City\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Shining City\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"The Enlightened\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Enlightened\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Enlightened\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Ghost of the Machine\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ghost of the Machine\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGhost of the Machine\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"A New Frontier\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A New Frontier\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA New Frontier\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Speedrunner\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Speedrunner\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpeedrunner\u003c/strong\u003e\u003cbr/\u003e\n    Finish the game with a gold star in the Time category. How fast is that, exactly? It’s up to you to find out!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Hardcore\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hardcore\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHardcore\u003c/strong\u003e\u003cbr/\u003e\n    Finish the game with a gold star in the Deaths category. You can’t even die once, buddy!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Gold Farmer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Gold Farmer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGold Farmer\u003c/strong\u003e\u003cbr/\u003e\n    Finish the game with a gold star in the Wealth category. Get filthy rich!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Explorer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Explorer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExplorer\u003c/strong\u003e\u003cbr/\u003e\n    Finish the game with a gold star in the Secrets category.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"The Impossible Dream\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Impossible Dream\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Impossible Dream\u003c/strong\u003e\u003cbr/\u003e\n    Finish the game with a gold star in every category.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Barnacle’s BFF\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Barnacle’s BFF\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBarnacle’s BFF\u003c/strong\u003e\u003cbr/\u003e\n    Sell $10,000 worth of resources.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"It Makes the World Go Round\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: It Makes the World Go Round\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt Makes the World Go Round\u003c/strong\u003e\u003cbr/\u003e\n    Sell $2,500 worth of resources.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Hobbyist Collector\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hobbyist Collector\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHobbyist Collector\u003c/strong\u003e\u003cbr/\u003e\n    Collect 10 artifacts.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Skilled Collector\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Skilled Collector\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSkilled Collector\u003c/strong\u003e\u003cbr/\u003e\n    Collect 25 artifacts.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Master Collector\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Master Collector\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaster Collector\u003c/strong\u003e\u003cbr/\u003e\n    Collect 42 artifacts.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"O Brother, Where Art Thou?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: O Brother, Where Art Thou?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eO Brother, Where Art Thou?\u003c/strong\u003e\u003cbr/\u003e\n    Find all missing Yonker brothers.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"My Very Own Sun\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: My Very Own Sun\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMy Very Own Sun\u003c/strong\u003e\u003cbr/\u003e\n    Upgrade your lamp to the highest level possible.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Solid Sneak\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Solid Sneak\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSolid Sneak\u003c/strong\u003e\u003cbr/\u003e\n    Do not trigger the alarm in Vectron more than twice.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Two Birds, One Stone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Two Birds, One Stone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTwo Birds, One Stone\u003c/strong\u003e\u003cbr/\u003e\n    Kill two enemies with one crushing rock.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Right Back At Ya!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Right Back At Ya!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRight Back At Ya!\u003c/strong\u003e\u003cbr/\u003e\n    Kill an enemy with its own projectile.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Lazy Person\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Lazy Person\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLazy Person\u003c/strong\u003e\u003cbr/\u003e\n    Travel a distance of 100 tiles horizontally without touching the controls.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"At Least It’s Shiny\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: At Least It’s Shiny\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAt Least It’s Shiny\u003c/strong\u003e\u003cbr/\u003e\n    Collect 10 Silver ore resources.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Is It Even a Pickaxe Anymore?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Is It Even a Pickaxe Anymore?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIs It Even a Pickaxe Anymore?\u003c/strong\u003e\u003cbr/\u003e\n    Upgrade your pickaxe to the highest level possible.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Hard Carry\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hard Carry\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHard Carry\u003c/strong\u003e\u003cbr/\u003e\n    Upgrade your backpack to the highest level possible.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"That’s Armor-e\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: That’s Armor-e\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThat’s Armor-e\u003c/strong\u003e\u003cbr/\u003e\n    Upgrade your armor to the highest level possible.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Maximum Potential\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Maximum Potential\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaximum Potential\u003c/strong\u003e\u003cbr/\u003e\n    Reach experience level 14.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Hook, Line and Sinker\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hook, Line and Sinker\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHook, Line and Sinker\u003c/strong\u003e\u003cbr/\u003e\n    Collect 15 resources with your Hook Shot.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Cave Diver\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cave Diver\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCave Diver\u003c/strong\u003e\u003cbr/\u003e\n    Complete 5 caves.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Splendiferous Spelunker\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Splendiferous Spelunker\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSplendiferous Spelunker\u003c/strong\u003e\u003cbr/\u003e\n    Complete 20 challenge caves.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Hopeless Gearhead\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hopeless Gearhead\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHopeless Gearhead\u003c/strong\u003e\u003cbr/\u003e\n    Buy all upgrades available at the workbench.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Friendly Neighborhood Spider-Bot\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Friendly Neighborhood Spider-Bot\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFriendly Neighborhood Spider-Bot\u003c/strong\u003e\u003cbr/\u003e\n    Hit 15 flyers with your Hook Shot.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Sequence Breaker\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sequence Breaker\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSequence Breaker\u003c/strong\u003e\u003cbr/\u003e\n    Destroy all devices without entering Vectron.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/5f25550c4fed5aad69bf256dd1adc4b02d28d3a6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/5f25550c4fed5aad69bf256dd1adc4b02d28d3a6.jpg\" alt=\"To Hell and Back\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: To Hell and Back\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTo Hell and Back\u003c/strong\u003e\u003cbr/\u003e\n    Survive the Ultimate Trial.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/571310/library_600x900.jpg\" alt=\"SteamWorld NewGame2017 box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/571310/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eSteamWorld NewGame2017\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 2.94%\"\u003e\n        2.94%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e1/34 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e3.9h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2024-08-04\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (1)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/a3dd449616e1555bc115f3859cad186836a8b3fa.jpg\" alt=\"The Guiding Light\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Guiding Light\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: February 26, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (33)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"A Mysterious Garden\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Mysterious Garden\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"A Shining City\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Shining City\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"The Enlightened\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Enlightened\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Ghost of the Machine\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGhost of the Machine\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"A New Frontier\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA New Frontier\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Speedrunner\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpeedrunner\u003c/strong\u003e\u003cbr\u003e\n    Finish the game with a gold star in the Time category. How fast is that, exactly? It’s up to you to find out!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Hardcore\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHardcore\u003c/strong\u003e\u003cbr\u003e\n    Finish the game with a gold star in the Deaths category. You can’t even die once, buddy!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Gold Farmer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGold Farmer\u003c/strong\u003e\u003cbr\u003e\n    Finish the game with a gold star in the Wealth category. Get filthy rich!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Explorer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExplorer\u003c/strong\u003e\u003cbr\u003e\n    Finish the game with a gold star in the Secrets category.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"The Impossible Dream\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Impossible Dream\u003c/strong\u003e\u003cbr\u003e\n    Finish the game with a gold star in every category.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Barnacle’s BFF\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBarnacle’s BFF\u003c/strong\u003e\u003cbr\u003e\n    Sell $10,000 worth of resources.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"It Makes the World Go Round\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt Makes the World Go Round\u003c/strong\u003e\u003cbr\u003e\n    Sell $2,500 worth of resources.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Hobbyist Collector\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHobbyist Collector\u003c/strong\u003e\u003cbr\u003e\n    Collect 10 artifacts.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Skilled Collector\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSkilled Collector\u003c/strong\u003e\u003cbr\u003e\n    Collect 25 artifacts.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Master Collector\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaster Collector\u003c/strong\u003e\u003cbr\u003e\n    Collect 42 artifacts.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"O Brother, Where Art Thou?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eO Brother, Where Art Thou?\u003c/strong\u003e\u003cbr\u003e\n    Find all missing Yonker brothers.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"My Very Own Sun\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMy Very Own Sun\u003c/strong\u003e\u003cbr\u003e\n    Upgrade your lamp to the highest level possible.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Solid Sneak\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSolid Sneak\u003c/strong\u003e\u003cbr\u003e\n    Do not trigger the alarm in Vectron more than twice.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Two Birds, One Stone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTwo Birds, One Stone\u003c/strong\u003e\u003cbr\u003e\n    Kill two enemies with one crushing rock.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Right Back At Ya!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRight Back At Ya!\u003c/strong\u003e\u003cbr\u003e\n    Kill an enemy with its own projectile.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Lazy Person\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLazy Person\u003c/strong\u003e\u003cbr\u003e\n    Travel a distance of 100 tiles horizontally without touching the controls.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"At Least It’s Shiny\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAt Least It’s Shiny\u003c/strong\u003e\u003cbr\u003e\n    Collect 10 Silver ore resources.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Is It Even a Pickaxe Anymore?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIs It Even a Pickaxe Anymore?\u003c/strong\u003e\u003cbr\u003e\n    Upgrade your pickaxe to the highest level possible.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Hard Carry\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHard Carry\u003c/strong\u003e\u003cbr\u003e\n    Upgrade your backpack to the highest level possible.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"That’s Armor-e\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThat’s Armor-e\u003c/strong\u003e\u003cbr\u003e\n    Upgrade your armor to the highest level possible.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Maximum Potential\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaximum Potential\u003c/strong\u003e\u003cbr\u003e\n    Reach experience level 14.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Hook, Line and Sinker\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHook, Line and Sinker\u003c/strong\u003e\u003cbr\u003e\n    Collect 15 resources with your Hook Shot.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Cave Diver\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCave Diver\u003c/strong\u003e\u003cbr\u003e\n    Complete 5 caves.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Splendiferous Spelunker\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSplendiferous Spelunker\u003c/strong\u003e\u003cbr\u003e\n    Complete 20 challenge caves.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Hopeless Gearhead\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHopeless Gearhead\u003c/strong\u003e\u003cbr\u003e\n    Buy all upgrades available at the workbench.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Friendly Neighborhood Spider-Bot\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFriendly Neighborhood Spider-Bot\u003c/strong\u003e\u003cbr\u003e\n    Hit 15 flyers with your Hook Shot.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/27f3752eec6a54ca0aac67572a047902cb796c4d.jpg\" alt=\"Sequence Breaker\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSequence Breaker\u003c/strong\u003e\u003cbr\u003e\n    Destroy all devices without entering Vectron.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/571310/5f25550c4fed5aad69bf256dd1adc4b02d28d3a6.jpg\" alt=\"To Hell and Back\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTo Hell and Back\u003c/strong\u003e\u003cbr\u003e\n    Survive the Ultimate Trial.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for SteamWorld NewGame2017 - 2.94% complete with 1/34 achievements unlocked.",
      "date_published": "2024-08-04T00:00:00Z",
      "date_modified": "2024-08-04T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "steamworld-newgame2017"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/knock-and-sweep/",
      "url": "https://go.waylonwalker.com/knock-and-sweep/",
      "title": "Printing 42 keys at once",
      "content_html": "\u003cp\u003eI’m working on creating some gcode to create a whole set of key caps in one print, it is getting tedious to print them one at a time, and my past experience with my printer proves that printing a bunch of separate pieces increases the chances of failure.  I don’t want to end up with 42 keys that are half done and a ball of filament.\u003c/p\u003e\n\u003ch2 id=\"figuring-out-the-coordinates\"\u003efiguring out the coordinates \u003ca href=\"#figuring-out-the-coordinates\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eTo figure out the coordinates I printed one key cap, and manually jogged the printer in position to knock off the cap, then sweep it out of the way.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/26a0eaf3-fbee-4570-80a7-0c14debf2017.webp\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/26a0eaf3-fbee-4570-80a7-0c14debf2017.webp\" alt=\"designing-a-knock-off-key-20240803095740665.webp\"/ data-glightbox=\"description: designing-a-knock-off-key-20240803095740665.webp\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cblockquote\u003e\n\u003cp\u003eprint head in position to knock\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/03dcb61b-79d7-43ab-a1ac-f9503b7b921e.webp\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/03dcb61b-79d7-43ab-a1ac-f9503b7b921e.webp\" alt=\"designing-a-knock-off-key-20240803095731272.webp\"/ data-glightbox=\"description: designing-a-knock-off-key-20240803095731272.webp\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cblockquote\u003e\n\u003cp\u003ePosition before the knock\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/066c28a9-bfd6-4214-83e0-54d2e93e94c9.webp\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/066c28a9-bfd6-4214-83e0-54d2e93e94c9.webp\" alt=\"designing-a-knock-off-key-20240803150150445.webp\"/ data-glightbox=\"description: designing-a-knock-off-key-20240803150150445.webp\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cblockquote\u003e\n\u003cp\u003ePosition after the sweep\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"gcode\"\u003egcode \u003ca href=\"#gcode\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI opened the gcode split it into start.gcode, end.gcode, and part.gcode.\u003c/p\u003e\n\u003ch3 id=\"startgcode\"\u003estart.gcode \u003ca href=\"#startgcode\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cpre\u003e\u003ccode class=\"language-gcode\"\u003e;FLAVOR:Marlin\n;TIME:1488\n;Filament used: 0.265511m\n;Layer height: 0.12\n;MINX:105.708\n;MINY:101.231\n;MINZ:0.12\n;MAXX:113.512\n;MAXY:118.776\n;MAXZ:17.04\n;TARGET_MACHINE.NAME:Creality Ender-3 S1 Pro\n;Generated with Cura_SteamEngine 5.8.0\nM82 ;absolute extrusion mode\n; Ender 3 S1 Pro Start G-code\n; M413 S0 ; Disable power loss recovery\nG92 E0 ; Reset Extruder\n\n; Prep surfaces before auto home for better accuracy\nM140 S60\nM104 S200\n\nG28 ; Home all axes\nG1 Z10.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0 Y0\n\nM190 S60\nM109 S200\n\nM82 ;absolute extrusion mode\n; Ender 3 S1 Pro Start G-code\n; M413 S0 ; Disable power loss recovery\nG92 E0 ; Reset Extruder\n\n; Prep surfaces before auto home for better accuracy\nM140 S60\nM104 S200\n\nG28 ; Home all axes\nG1 Z10.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0 Y0\n\nM190 S60\nM109 S200\n\nG1 X0.1 Y20 Z0.3 F5000.0 ; Move to start position\nG1 X0.1 Y200.0 Z0.3 F1500.0 E15 ; Draw the first line\nG1 X0.4 Y200.0 Z0.3 F5000.0 ; Move to side a little\nG1 X0.4 Y20 Z0.3 F1500.0 E30 ; Draw the second line\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3 id=\"endgcode\"\u003eend.gcode \u003ca href=\"#endgcode\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cpre\u003e\u003ccode class=\"language-gcode\"\u003eM140 S0 ; Turn off bed\nM107 ; Turn off fan\nG91 ;Relative positioning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Wipe out\nG1 Z10 ;Raise Z more\nG90 ;Absolute positioning\n\nG1 X0 Y220 ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\n\nM84 X Y E ;Disable all steppers but Z\n\nM82 ;absolute extrusion mode\nM104 S0\n;End of Gcode\n;SETTING_3 {\u0026#34;global_quality\u0026#34;: \u0026#34;[general]\\\\nversion = 4\\\\nname = Super Quality #2\n;SETTING_3 \\\\ndefinition = creality_ender3s1pro\\\\n\\\\n[metadata]\\\\ntype = quality\n;SETTING_3 _changes\\\\nquality_type = super\\\\nsetting_version = 23\\\\n\\\\n[values]\\\n;SETTING_3 \\nadhesion_type = none\\\\nsupport_type = buildplate\\\\n\\\\n\u0026#34;, \u0026#34;extruder_\n;SETTING_3 quality\u0026#34;: [\u0026#34;[general]\\\\nversion = 4\\\\nname = Super Quality #2\\\\ndefin\n;SETTING_3 ition = creality_ender3s1pro\\\\n\\\\n[metadata]\\\\ntype = quality_changes\n;SETTING_3 \\\\nquality_type = super\\\\nsetting_version = 23\\\\nposition = 0\\\\n\\\\n[v\n;SETTING_3 alues]\\\\nbrim_gap = 0.1\\\\nspeed_print = 120\\\\nsupport_angle = 35\\\\nz_\n;SETTING_3 seam_corner = z_seam_corner_inner\\\\nz_seam_position = right\\\\n\\\\n\u0026#34;]}\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e.\u003c/p\u003e\n\u003ch3 id=\"partgcode\"\u003epart.gcode \u003ca href=\"#partgcode\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eNow part.gcode is the rest of the gcode, and is 22k lines long, I’ll spare putting that in this post.\u003c/p\u003e\n\u003ch2 id=\"writing-the-knock-and-sweep\"\u003eWriting the knock and sweep \u003ca href=\"#writing-the-knock-and-sweep\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNow that I have the coordinates, and my gcode split up, I am going to write the code for the knock and sweep by hand, and just add this to the end of part.gcode.\u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"language-gcode\"\u003e; KNOCK AND SWEEP\nG0 X80 Y140 ; move to knock position\nG0 Z2 ; lower z to knock\nG0 X140 ; knock\nG0 Y40 ; sweep\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2 id=\"a-python-script-to-make-multiples\"\u003eA python script to make multiples \u003ca href=\"#a-python-script-to-make-multiples\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNow I wrote this python script to generate a gcode file to print \u003ccode\u003en\u003c/code\u003e number of caps\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003epathlib\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003ePath\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003esys\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003en\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"nb\"\u003eint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003esys\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eargv\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"mi\"\u003e1\u003c/span\u003e\u003cspan class=\"p\"\u003e])\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;printing \u0026#34;\u003c/span\u003e \u003cspan class=\"o\"\u003e+\u003c/span\u003e \u003cspan class=\"nb\"\u003estr\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003en\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"o\"\u003e+\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34; times\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003estart\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003ePath\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;start.gcode\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eread_text\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eend\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003ePath\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;end.gcode\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eread_text\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epart\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003ePath\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;part.gcode\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eread_text\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003efull\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003estart\u003c/span\u003e \u003cspan class=\"o\"\u003e+\u003c/span\u003e \u003cspan class=\"n\"\u003epart\u003c/span\u003e \u003cspan class=\"o\"\u003e*\u003c/span\u003e \u003cspan class=\"n\"\u003en\u003c/span\u003e \u003cspan class=\"o\"\u003e+\u003c/span\u003e \u003cspan class=\"n\"\u003eend\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ePath\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;kp-lame-normal-\u0026#34;\u003c/span\u003e \u003cspan class=\"o\"\u003e+\u003c/span\u003e \u003cspan class=\"nb\"\u003estr\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003en\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"o\"\u003e+\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;.gcode\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ewrite_text\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003efull\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epython\u003c/span\u003e \u003cspan class=\"n\"\u003erender\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003epy\u003c/span\u003e \u003cspan class=\"mi\"\u003e42\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"results\"\u003eResults \u003ca href=\"#results\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe final result here is me printing out 42 new caps in this beautiful black and purple silk fillament.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/7dacc55a-666f-4592-bc3b-cb46324227f8.mp4\" class=\"glightbox-link\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/7dacc55a-666f-4592-bc3b-cb46324227f8.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/7dacc55a-666f-4592-bc3b-cb46324227f8.mp4\" type=\"video/mp4\"\u003eknock-and-sweep.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "I'm working on creating some gcode to create a whole set of key caps in one print, it is getting tedious to print them one at a time, and my past experience with my printer proves that printing a bunch of separate pieces increases the chances of failure.  I don't want to end up with 42 keys that are half done and a ball of filament.\n\n## figuring out the coordinates\n\nTo figure out the coordinates I printed one key cap, and manually jogged the printer in position to knock off the cap, then sweep it out of the way.\n\n![designing-a-knock-off-key-20240803095740665.webp](https://dropper.waylonwalker.com/api/file/26a0eaf3-fbee-4570-80a7-0c14debf2017.webp)\n\u003e print head in position to knock\n\n![designing-a-knock-off-key-20240803095731272.webp](https://dropper.waylonwalker.com/api/file/03dcb61b-79d7-43ab-a1ac-f9503b7b921e.webp)\n\u003e Position before the knock\n\n![designing-a-knock-off-key-20240803150150445.webp](https://dropper.waylonwalker.com/api/file/066c28a9-bfd6-4214-83e0-54d2e93e94c9.webp)\n\u003e Position after the sweep\n\n## gcode\n\nI opened the gcode split it into start.gcode, end.gcode, and part.gcode.\n\n### start.gcode\n\n``` gcode\n;FLAVOR:Marlin\n;TIME:1488\n;Filament used: 0.265511m\n;Layer height: 0.12\n;MINX:105.708\n;MINY:101.231\n;MINZ:0.12\n;MAXX:113.512\n;MAXY:118.776\n;MAXZ:17.04\n;TARGET_MACHINE.NAME:Creality Ender-3 S1 Pro\n;Generated with Cura_SteamEngine 5.8.0\nM82 ;absolute extrusion mode\n; Ender 3 S1 Pro Start G-code\n; M413 S0 ; Disable power loss recovery\nG92 E0 ; Reset Extruder\n\n; Prep surfaces before auto home for better accuracy\nM140 S60\nM104 S200\n\nG28 ; Home all axes\nG1 Z10.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0 Y0\n\nM190 S60\nM109 S200\n\nM82 ;absolute extrusion mode\n; Ender 3 S1 Pro Start G-code\n; M413 S0 ; Disable power loss recovery\nG92 E0 ; Reset Extruder\n\n; Prep surfaces before auto home for better accuracy\nM140 S60\nM104 S200\n\nG28 ; Home all axes\nG1 Z10.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0 Y0\n\nM190 S60\nM109 S200\n\nG1 X0.1 Y20 Z0.3 F5000.0 ; Move to start position\nG1 X0.1 Y200.0 Z0.3 F1500.0 E15 ; Draw the first line\nG1 X0.4 Y200.0 Z0.3 F5000.0 ; Move to side a little\nG1 X0.4 Y20 Z0.3 F1500.0 E30 ; Draw the second line\n\n```\n\n### end.gcode\n\n```gcode\nM140 S0 ; Turn off bed\nM107 ; Turn off fan\nG91 ;Relative positioning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Wipe out\nG1 Z10 ;Raise Z more\nG90 ;Absolute positioning\n\nG1 X0 Y220 ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\n\nM84 X Y E ;Disable all steppers but Z\n\nM82 ;absolute extrusion mode\nM104 S0\n;End of Gcode\n;SETTING_3 {\"global_quality\": \"[general]\\\\nversion = 4\\\\nname = Super Quality #2\n;SETTING_3 \\\\ndefinition = creality_ender3s1pro\\\\n\\\\n[metadata]\\\\ntype = quality\n;SETTING_3 _changes\\\\nquality_type = super\\\\nsetting_version = 23\\\\n\\\\n[values]\\\n;SETTING_3 \\nadhesion_type = none\\\\nsupport_type = buildplate\\\\n\\\\n\", \"extruder_\n;SETTING_3 quality\": [\"[general]\\\\nversion = 4\\\\nname = Super Quality #2\\\\ndefin\n;SETTING_3 ition = creality_ender3s1pro\\\\n\\\\n[metadata]\\\\ntype = quality_changes\n;SETTING_3 \\\\nquality_type = super\\\\nsetting_version = 23\\\\nposition = 0\\\\n\\\\n[v\n;SETTING_3 alues]\\\\nbrim_gap = 0.1\\\\nspeed_print = 120\\\\nsupport_angle = 35\\\\nz_\n;SETTING_3 seam_corner = z_seam_corner_inner\\\\nz_seam_position = right\\\\n\\\\n\"]}\n\n```\n\n.\n\n### part.gcode\n\nNow part.gcode is the rest of the gcode, and is 22k lines long, I'll spare putting that in this post.\n\n## Writing the knock and sweep\n\nNow that I have the coordinates, and my gcode split up, I am going to write the code for the knock and sweep by hand, and just add this to the end of part.gcode.\n\n```gcode\n; KNOCK AND SWEEP\nG0 X80 Y140 ; move to knock position\nG0 Z2 ; lower z to knock\nG0 X140 ; knock\nG0 Y40 ; sweep\n```\n\n## A python script to make multiples\n\nNow I wrote this python script to generate a gcode file to print `n` number of caps\n\n```python\nfrom pathlib import Path\nimport sys\n\nn = int(sys.argv[1])\nprint(\"printing \" + str(n) + \" times\")\n\n\nstart = Path(\"start.gcode\").read_text()\nend = Path(\"end.gcode\").read_text()\npart = Path(\"part.gcode\").read_text()\n\nfull = start + part * n + end\nPath(\"kp-lame-normal-\" + str(n) + \".gcode\").write_text(full)\n\n```\n\n```python\npython render.py 42\n```\n\n## Results\n\nThe final result here is me printing out 42 new caps in this beautiful black and purple silk fillament.\n\n![knock-and-sweep.mp4](https://dropper.waylonwalker.com/api/file/7dacc55a-666f-4592-bc3b-cb46324227f8.mp4)\n",
      "summary": "I'm working on creating some gcode to create a whole set of key caps in one print, it is getting tedious to print them one at a time, and my past experience...",
      "date_published": "2024-08-03T09:54:00Z",
      "date_modified": "2024-08-03T09:54:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "3d-printing",
        "tmk",
        "keeb"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/the-farmer-was-replaced/",
      "url": "https://go.waylonwalker.com/steam/the-farmer-was-replaced/",
      "title": "The Farmer Was Replaced",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/2060160/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/2060160/library_600x900.jpg\" alt=\"The Farmer Was Replaced box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/2060160/header.jpg\u0026#39;\"/ data-glightbox=\"description: The Farmer Was Replaced box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eThe Farmer Was Replaced\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 0.0%\"\u003e\n        0.0%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e0/59 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e14.4h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2024-08-02\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (59)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/1b93e15a5d0f0627af10735904c491f4f12e2305.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/1b93e15a5d0f0627af10735904c491f4f12e2305.jpg\" alt=\"Acrobat\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Acrobat\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAcrobat\u003c/strong\u003e\u003cbr/\u003e\n    Do a flip.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/9983337a13b68f6abf3adcdad36017a70499646c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/9983337a13b68f6abf3adcdad36017a70499646c.jpg\" alt=\"Feels Good\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Feels Good\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFeels Good\u003c/strong\u003e\u003cbr/\u003e\n    Pet the piggy.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/16f70fa17e958c4459bac37459ac0700e1f78342.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/16f70fa17e958c4459bac37459ac0700e1f78342.jpg\" alt=\"Master Acrobat\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Master Acrobat\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaster Acrobat\u003c/strong\u003e\u003cbr/\u003e\n    Do 1000 flips.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/74ebbf3b0f681fab2dca8c82053a8d27f46db693.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/74ebbf3b0f681fab2dca8c82053a8d27f46db693.jpg\" alt=\"Hello World\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hello World\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHello World\u003c/strong\u003e\u003cbr/\u003e\n    Run your first program.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/84e9703caf698f196b300ea754298c7f05f73aec.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/84e9703caf698f196b300ea754298c7f05f73aec.jpg\" alt=\"Error\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Error\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eError\u003c/strong\u003e\u003cbr/\u003e\n    Cause a runtime error.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/c976eefdcd471e7ff194857dbdf1c28eb3a4b13e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/c976eefdcd471e7ff194857dbdf1c28eb3a4b13e.jpg\" alt=\"Infinite Loop\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Infinite Loop\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInfinite Loop\u003c/strong\u003e\u003cbr/\u003e\n    Create an infinite loop.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/eb992b8acdc78ca6c454ae3d4aea941d150c2e9f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/eb992b8acdc78ca6c454ae3d4aea941d150c2e9f.jpg\" alt=\"Fashionable\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fashionable\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFashionable\u003c/strong\u003e\u003cbr/\u003e\n    Equip a new hat.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/2f4dfdce1d55c653c1ed1e1482dc3197fdc5a20b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/2f4dfdce1d55c653c1ed1e1482dc3197fdc5a20b.jpg\" alt=\"Bushes\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bushes\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBushes\u003c/strong\u003e\u003cbr/\u003e\n    Plant a bush.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/62a1e0a37412d7974f8e583037b007f0aa18e749.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/62a1e0a37412d7974f8e583037b007f0aa18e749.jpg\" alt=\"Carrots\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Carrots\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCarrots\u003c/strong\u003e\u003cbr/\u003e\n    Plant carrots.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/9779083f8c2f87d3e9c745848ff39f59f76a4865.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/9779083f8c2f87d3e9c745848ff39f59f76a4865.jpg\" alt=\"Trees\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Trees\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTrees\u003c/strong\u003e\u003cbr/\u003e\n    Plant a tree.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/4c91f7a86ba9d22edcb8353ad43b83eb722847a2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/4c91f7a86ba9d22edcb8353ad43b83eb722847a2.jpg\" alt=\"Sunflowers\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sunflowers\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSunflowers\u003c/strong\u003e\u003cbr/\u003e\n    Plant a sunflower\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/bea69962f3b09b5b50077c2ad72b7ac8cd86e12f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/bea69962f3b09b5b50077c2ad72b7ac8cd86e12f.jpg\" alt=\"Cacti\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cacti\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCacti\u003c/strong\u003e\u003cbr/\u003e\n    Plant a cactus.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/c2bd055092b2a66a59f267b7348e5f2c3ec633a1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/c2bd055092b2a66a59f267b7348e5f2c3ec633a1.jpg\" alt=\"Maze\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Maze\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaze\u003c/strong\u003e\u003cbr/\u003e\n    Spawn a maze.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/303cf53559e1b6ed6eedc69347c0eabccbefb5b9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/303cf53559e1b6ed6eedc69347c0eabccbefb5b9.jpg\" alt=\"Dinosaurs\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Dinosaurs\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDinosaurs\u003c/strong\u003e\u003cbr/\u003e\n    Equip the dinosaur hat.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/87fa8d6f16752c46a43e17f189fca611564a6674.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/87fa8d6f16752c46a43e17f189fca611564a6674.jpg\" alt=\"Pumpkins\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Pumpkins\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePumpkins\u003c/strong\u003e\u003cbr/\u003e\n    Plant a pumpkin.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/5ce6fcf56113043e3794e7936dedb0e3eaad0b6d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/5ce6fcf56113043e3794e7936dedb0e3eaad0b6d.jpg\" alt=\"What now?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: What now?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhat now?\u003c/strong\u003e\u003cbr/\u003e\n    Unlock everything.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/b5417b155ababb26f317d3d31f5ae3d95569b55d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/b5417b155ababb26f317d3d31f5ae3d95569b55d.jpg\" alt=\"Megafarm\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Megafarm\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMegafarm\u003c/strong\u003e\u003cbr/\u003e\n    Use multiple drones.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/40c49cbe355bd96df063ee9c6b4dace8c0b6cca2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/40c49cbe355bd96df063ee9c6b4dace8c0b6cca2.jpg\" alt=\"Swarm\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Swarm\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSwarm\u003c/strong\u003e\u003cbr/\u003e\n    Use 32 drones at once.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/48873a7c6907798402bf1a5aff5564b36568a3a4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/48873a7c6907798402bf1a5aff5564b36568a3a4.jpg\" alt=\"It Grew\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: It Grew\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt Grew\u003c/strong\u003e\u003cbr/\u003e\n    Expand the farm\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/d5c11b0bcd12275529e017867c3cef938be96db5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/d5c11b0bcd12275529e017867c3cef938be96db5.jpg\" alt=\"Big Farm\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Big Farm\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBig Farm\u003c/strong\u003e\u003cbr/\u003e\n    Reach the maximum farm size.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/c1474a620ea627553f87194c2274e6c866b93138.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/c1474a620ea627553f87194c2274e6c866b93138.jpg\" alt=\"Giant Pumpkin\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Giant Pumpkin\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGiant Pumpkin\u003c/strong\u003e\u003cbr/\u003e\n    Harvest a 32x32 pumpkin.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/e6d6b667cf295cda58662b9c78084ad9fb5e49c9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/e6d6b667cf295cda58662b9c78084ad9fb5e49c9.jpg\" alt=\"Fashion Show\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fashion Show\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFashion Show\u003c/strong\u003e\u003cbr/\u003e\n    Equip 5 different hats on 5 drones.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/2cbf27fcb7bfd6c5b244bcf70d62d02b7cbd5ccd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/2cbf27fcb7bfd6c5b244bcf70d62d02b7cbd5ccd.jpg\" alt=\"Long Dinosaur\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Long Dinosaur\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLong Dinosaur\u003c/strong\u003e\u003cbr/\u003e\n    Have a dinosaur that fills the entire farm.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/d62beb0e25e5221675814467291538467a29dae6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/d62beb0e25e5221675814467291538467a29dae6.jpg\" alt=\"Size Matters\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Size Matters\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSize Matters\u003c/strong\u003e\u003cbr/\u003e\n    Get a dinosaur to length 1000.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/76b5ec6c7783f4c748aa5f9f399bd441ed41998b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/76b5ec6c7783f4c748aa5f9f399bd441ed41998b.jpg\" alt=\"Treasure Hunter\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Treasure Hunter\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTreasure Hunter\u003c/strong\u003e\u003cbr/\u003e\n    Solve a maze that fills the whole farm.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/bab3a05ea275181591e094d33624704d9bfbf42b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/bab3a05ea275181591e094d33624704d9bfbf42b.jpg\" alt=\"Recycling\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Recycling\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRecycling\u003c/strong\u003e\u003cbr/\u003e\n    Reuse the same maze 300 times.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/96b1e435ed3533f73f5b7dae6f4c84f542b6be87.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/96b1e435ed3533f73f5b7dae6f4c84f542b6be87.jpg\" alt=\"Competitive Farming\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Competitive Farming\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompetitive Farming\u003c/strong\u003e\u003cbr/\u003e\n    Get on a leaderboard.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/f88081fcf995b5be339c2f44fd5db483cad5981e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/f88081fcf995b5be339c2f44fd5db483cad5981e.jpg\" alt=\"Full Automation\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Full Automation\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFull Automation\u003c/strong\u003e\u003cbr/\u003e\n    Get on the full reset leaderboard.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/b358e96eb00f39b1194bf0285a6fdbff7fc1f395.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/b358e96eb00f39b1194bf0285a6fdbff7fc1f395.jpg\" alt=\"Hay Farmer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hay Farmer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHay Farmer\u003c/strong\u003e\u003cbr/\u003e\n    Farm 1000 hay.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/52c6864fe5b0ccdfd5aada78c9378bd5486e33d6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/52c6864fe5b0ccdfd5aada78c9378bd5486e33d6.jpg\" alt=\"Wood Farmer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Wood Farmer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWood Farmer\u003c/strong\u003e\u003cbr/\u003e\n    Farm 1000 wood.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/fcf4e43efbc6b380fb341f44d8f14021dddc9c62.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/fcf4e43efbc6b380fb341f44d8f14021dddc9c62.jpg\" alt=\"Carrot Farmer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Carrot Farmer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCarrot Farmer\u003c/strong\u003e\u003cbr/\u003e\n    Farm 1000 carrots.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/d52784cf2cd0719699f068ff22b592696efc0090.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/d52784cf2cd0719699f068ff22b592696efc0090.jpg\" alt=\"Power Farmer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Power Farmer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePower Farmer\u003c/strong\u003e\u003cbr/\u003e\n    Farm 1000 power.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/758d7c4bb9fcff7661bc376019a99b97bc606c6b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/758d7c4bb9fcff7661bc376019a99b97bc606c6b.jpg\" alt=\"Pumpkin Farmer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Pumpkin Farmer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePumpkin Farmer\u003c/strong\u003e\u003cbr/\u003e\n    Farm 1000 pumpkins.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/41817ded616ef3d96087b4dbae3f5e498d9dc2a0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/41817ded616ef3d96087b4dbae3f5e498d9dc2a0.jpg\" alt=\"Gold Farmer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Gold Farmer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGold Farmer\u003c/strong\u003e\u003cbr/\u003e\n    Farm 1000 gold.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/14cf38366e0d8ca9a4acf9a264e7caeb1d37080f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/14cf38366e0d8ca9a4acf9a264e7caeb1d37080f.jpg\" alt=\"Cactus Farmer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cactus Farmer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCactus Farmer\u003c/strong\u003e\u003cbr/\u003e\n    Farm 1000 cacti.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/7c018531aea17ef9d3963232e2f4b419f38ce0e8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/7c018531aea17ef9d3963232e2f4b419f38ce0e8.jpg\" alt=\"Bone Farmer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bone Farmer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBone Farmer\u003c/strong\u003e\u003cbr/\u003e\n    Farm 1000 bones.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/0e4858a2c9e11278131a5e47c2d5448c71825277.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/0e4858a2c9e11278131a5e47c2d5448c71825277.jpg\" alt=\"Big Hay Farmer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Big Hay Farmer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBig Hay Farmer\u003c/strong\u003e\u003cbr/\u003e\n    Farm 1 billion hay.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/f836c6dd8ea6817741546c348c31a060dc5d69f2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/f836c6dd8ea6817741546c348c31a060dc5d69f2.jpg\" alt=\"Big Wood Farmer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Big Wood Farmer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBig Wood Farmer\u003c/strong\u003e\u003cbr/\u003e\n    Farm 1 billion wood.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/451a7ca199c976b13fa7c9d19243bd1e4b8e3b3e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/451a7ca199c976b13fa7c9d19243bd1e4b8e3b3e.jpg\" alt=\"Big Carrot Farmer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Big Carrot Farmer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBig Carrot Farmer\u003c/strong\u003e\u003cbr/\u003e\n    Farm 1 billion carrots.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/797eafd8515925cc6ebba3e68abbecbad07217f3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/797eafd8515925cc6ebba3e68abbecbad07217f3.jpg\" alt=\"Big Power Farmer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Big Power Farmer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBig Power Farmer\u003c/strong\u003e\u003cbr/\u003e\n    Farm 100000 power.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/57aed9b7063c0e5eccf02a19f9a424315d1e9f08.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/57aed9b7063c0e5eccf02a19f9a424315d1e9f08.jpg\" alt=\"Big Pumpkin Farmer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Big Pumpkin Farmer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBig Pumpkin Farmer\u003c/strong\u003e\u003cbr/\u003e\n    Farm 100 million pumpkins.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/68d659a74c494357cfda3edbe6aae7ad220b0f83.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/68d659a74c494357cfda3edbe6aae7ad220b0f83.jpg\" alt=\"Big Cactus Farmer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Big Cactus Farmer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBig Cactus Farmer\u003c/strong\u003e\u003cbr/\u003e\n    Farm 100 million cacti.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/b82ab77301f1d7dcc9ba3f943568395617acee92.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/b82ab77301f1d7dcc9ba3f943568395617acee92.jpg\" alt=\"Big Gold Farmer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Big Gold Farmer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBig Gold Farmer\u003c/strong\u003e\u003cbr/\u003e\n    Farm 100 million gold.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/87d5a0ee1cd86ddce801ba6f92797dd830e73115.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/87d5a0ee1cd86ddce801ba6f92797dd830e73115.jpg\" alt=\"Big Bone Farmer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Big Bone Farmer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBig Bone Farmer\u003c/strong\u003e\u003cbr/\u003e\n    Farm 100 million bones.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/15fa4b8b7ea48718acb6fac1acf9dd586d4f0886.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/15fa4b8b7ea48718acb6fac1acf9dd586d4f0886.jpg\" alt=\"Wrong Order\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Wrong Order\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWrong Order\u003c/strong\u003e\u003cbr/\u003e\n    Sort a full field of cacti the wrong way round.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/28b0e0354980b7f69b3592da536d81010f7913cb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/28b0e0354980b7f69b3592da536d81010f7913cb.jpg\" alt=\"Mud Farm\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mud Farm\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMud Farm\u003c/strong\u003e\u003cbr/\u003e\n    Water the entire farm above water level 0.5.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/de74d94148b0533e785418d2800f37c947095bba.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/de74d94148b0533e785418d2800f37c947095bba.jpg\" alt=\"Healer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Healer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHealer\u003c/strong\u003e\u003cbr/\u003e\n    Cure an infected plant.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/2cab7ed4e53ca211c555299cfb687bab1c797cb0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/2cab7ed4e53ca211c555299cfb687bab1c797cb0.jpg\" alt=\"Circular Import\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Circular Import\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCircular Import\u003c/strong\u003e\u003cbr/\u003e\n    Create an import cycle.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/2bd7b9f904f841394546cee0881e7ae1a398dd0b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/2bd7b9f904f841394546cee0881e7ae1a398dd0b.jpg\" alt=\"Higher-Order Programming\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Higher-Order Programming\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHigher-Order Programming\u003c/strong\u003e\u003cbr/\u003e\n    Pass a function as an argument to a function.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/00f6444cd7c20085da83a2ccadac2af6a22060e8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/00f6444cd7c20085da83a2ccadac2af6a22060e8.jpg\" alt=\"Stack Overflow\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Stack Overflow\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStack Overflow\u003c/strong\u003e\u003cbr/\u003e\n    Cause a stack overflow.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/eecf07cf27284d355d9bd2f14d389654d97ddd12.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/eecf07cf27284d355d9bd2f14d389654d97ddd12.jpg\" alt=\"Chaos\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Chaos\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChaos\u003c/strong\u003e\u003cbr/\u003e\n    Have 20 code windows open.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/87619c64e745de97d994dbe516a0eff2d503736d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/87619c64e745de97d994dbe516a0eff2d503736d.jpg\" alt=\"Dino Master\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Dino Master\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDino Master\u003c/strong\u003e\u003cbr/\u003e\n    Farm 1 million bones in 1 minute.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/f8f5e2e0172329e030c5a94357f96136e678d6ff.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/f8f5e2e0172329e030c5a94357f96136e678d6ff.jpg\" alt=\"Maze Master\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Maze Master\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaze Master\u003c/strong\u003e\u003cbr/\u003e\n    Farm 2 million gold in 1 minute.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/2fa2e5fe74d4aed0c6fff156cf9453d8bf38bcc2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/2fa2e5fe74d4aed0c6fff156cf9453d8bf38bcc2.jpg\" alt=\"Hay Master\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hay Master\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHay Master\u003c/strong\u003e\u003cbr/\u003e\n    Farm 200 million hay in 1 minute.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/9fb20f3f547a0eaba537ee2077317b1cb2a2ebde.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/9fb20f3f547a0eaba537ee2077317b1cb2a2ebde.jpg\" alt=\"Carrot Master\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Carrot Master\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCarrot Master\u003c/strong\u003e\u003cbr/\u003e\n    Farm 200 million carrots in 1 minute.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/89cd3608e152ad6d12386d61a590177f12e878ce.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/89cd3608e152ad6d12386d61a590177f12e878ce.jpg\" alt=\"Wood Master\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Wood Master\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWood Master\u003c/strong\u003e\u003cbr/\u003e\n    Farm 1 billion wood in 1 minute.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/5bcb776ca212f62e472914e7bdcc05c121ebd367.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/5bcb776ca212f62e472914e7bdcc05c121ebd367.jpg\" alt=\"Sunflower Master\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sunflower Master\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSunflower Master\u003c/strong\u003e\u003cbr/\u003e\n    Farm 12000 power in 1 minute.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/293c9d190ee96440b8768aeb63393a06fd6b131b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/293c9d190ee96440b8768aeb63393a06fd6b131b.jpg\" alt=\"Pumpkin Master\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Pumpkin Master\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePumpkin Master\u003c/strong\u003e\u003cbr/\u003e\n    Farm 20 million pumpkins in 1 minute.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/4ba8756437d2f21156e70d3e9b342d7255df5e86.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/4ba8756437d2f21156e70d3e9b342d7255df5e86.jpg\" alt=\"Cactus Master\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cactus Master\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCactus Master\u003c/strong\u003e\u003cbr/\u003e\n    Farm 20 million cacti in 1 minute.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/2060160/library_600x900.jpg\" alt=\"The Farmer Was Replaced box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/2060160/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eThe Farmer Was Replaced\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 0.0%\"\u003e\n        0.0%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e0/59 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e14.4h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2024-08-02\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (59)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/1b93e15a5d0f0627af10735904c491f4f12e2305.jpg\" alt=\"Acrobat\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAcrobat\u003c/strong\u003e\u003cbr\u003e\n    Do a flip.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/9983337a13b68f6abf3adcdad36017a70499646c.jpg\" alt=\"Feels Good\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFeels Good\u003c/strong\u003e\u003cbr\u003e\n    Pet the piggy.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/16f70fa17e958c4459bac37459ac0700e1f78342.jpg\" alt=\"Master Acrobat\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaster Acrobat\u003c/strong\u003e\u003cbr\u003e\n    Do 1000 flips.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/74ebbf3b0f681fab2dca8c82053a8d27f46db693.jpg\" alt=\"Hello World\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHello World\u003c/strong\u003e\u003cbr\u003e\n    Run your first program.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/84e9703caf698f196b300ea754298c7f05f73aec.jpg\" alt=\"Error\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eError\u003c/strong\u003e\u003cbr\u003e\n    Cause a runtime error.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/c976eefdcd471e7ff194857dbdf1c28eb3a4b13e.jpg\" alt=\"Infinite Loop\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInfinite Loop\u003c/strong\u003e\u003cbr\u003e\n    Create an infinite loop.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/eb992b8acdc78ca6c454ae3d4aea941d150c2e9f.jpg\" alt=\"Fashionable\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFashionable\u003c/strong\u003e\u003cbr\u003e\n    Equip a new hat.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/2f4dfdce1d55c653c1ed1e1482dc3197fdc5a20b.jpg\" alt=\"Bushes\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBushes\u003c/strong\u003e\u003cbr\u003e\n    Plant a bush.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/62a1e0a37412d7974f8e583037b007f0aa18e749.jpg\" alt=\"Carrots\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCarrots\u003c/strong\u003e\u003cbr\u003e\n    Plant carrots.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/9779083f8c2f87d3e9c745848ff39f59f76a4865.jpg\" alt=\"Trees\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTrees\u003c/strong\u003e\u003cbr\u003e\n    Plant a tree.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/4c91f7a86ba9d22edcb8353ad43b83eb722847a2.jpg\" alt=\"Sunflowers\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSunflowers\u003c/strong\u003e\u003cbr\u003e\n    Plant a sunflower\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/bea69962f3b09b5b50077c2ad72b7ac8cd86e12f.jpg\" alt=\"Cacti\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCacti\u003c/strong\u003e\u003cbr\u003e\n    Plant a cactus.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/c2bd055092b2a66a59f267b7348e5f2c3ec633a1.jpg\" alt=\"Maze\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaze\u003c/strong\u003e\u003cbr\u003e\n    Spawn a maze.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/303cf53559e1b6ed6eedc69347c0eabccbefb5b9.jpg\" alt=\"Dinosaurs\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDinosaurs\u003c/strong\u003e\u003cbr\u003e\n    Equip the dinosaur hat.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/87fa8d6f16752c46a43e17f189fca611564a6674.jpg\" alt=\"Pumpkins\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePumpkins\u003c/strong\u003e\u003cbr\u003e\n    Plant a pumpkin.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/5ce6fcf56113043e3794e7936dedb0e3eaad0b6d.jpg\" alt=\"What now?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhat now?\u003c/strong\u003e\u003cbr\u003e\n    Unlock everything.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/b5417b155ababb26f317d3d31f5ae3d95569b55d.jpg\" alt=\"Megafarm\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMegafarm\u003c/strong\u003e\u003cbr\u003e\n    Use multiple drones.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/40c49cbe355bd96df063ee9c6b4dace8c0b6cca2.jpg\" alt=\"Swarm\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSwarm\u003c/strong\u003e\u003cbr\u003e\n    Use 32 drones at once.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/48873a7c6907798402bf1a5aff5564b36568a3a4.jpg\" alt=\"It Grew\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt Grew\u003c/strong\u003e\u003cbr\u003e\n    Expand the farm\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/d5c11b0bcd12275529e017867c3cef938be96db5.jpg\" alt=\"Big Farm\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBig Farm\u003c/strong\u003e\u003cbr\u003e\n    Reach the maximum farm size.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/c1474a620ea627553f87194c2274e6c866b93138.jpg\" alt=\"Giant Pumpkin\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGiant Pumpkin\u003c/strong\u003e\u003cbr\u003e\n    Harvest a 32x32 pumpkin.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/e6d6b667cf295cda58662b9c78084ad9fb5e49c9.jpg\" alt=\"Fashion Show\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFashion Show\u003c/strong\u003e\u003cbr\u003e\n    Equip 5 different hats on 5 drones.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/2cbf27fcb7bfd6c5b244bcf70d62d02b7cbd5ccd.jpg\" alt=\"Long Dinosaur\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLong Dinosaur\u003c/strong\u003e\u003cbr\u003e\n    Have a dinosaur that fills the entire farm.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/d62beb0e25e5221675814467291538467a29dae6.jpg\" alt=\"Size Matters\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSize Matters\u003c/strong\u003e\u003cbr\u003e\n    Get a dinosaur to length 1000.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/76b5ec6c7783f4c748aa5f9f399bd441ed41998b.jpg\" alt=\"Treasure Hunter\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTreasure Hunter\u003c/strong\u003e\u003cbr\u003e\n    Solve a maze that fills the whole farm.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/bab3a05ea275181591e094d33624704d9bfbf42b.jpg\" alt=\"Recycling\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRecycling\u003c/strong\u003e\u003cbr\u003e\n    Reuse the same maze 300 times.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/96b1e435ed3533f73f5b7dae6f4c84f542b6be87.jpg\" alt=\"Competitive Farming\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompetitive Farming\u003c/strong\u003e\u003cbr\u003e\n    Get on a leaderboard.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/f88081fcf995b5be339c2f44fd5db483cad5981e.jpg\" alt=\"Full Automation\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFull Automation\u003c/strong\u003e\u003cbr\u003e\n    Get on the full reset leaderboard.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/b358e96eb00f39b1194bf0285a6fdbff7fc1f395.jpg\" alt=\"Hay Farmer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHay Farmer\u003c/strong\u003e\u003cbr\u003e\n    Farm 1000 hay.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/52c6864fe5b0ccdfd5aada78c9378bd5486e33d6.jpg\" alt=\"Wood Farmer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWood Farmer\u003c/strong\u003e\u003cbr\u003e\n    Farm 1000 wood.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/fcf4e43efbc6b380fb341f44d8f14021dddc9c62.jpg\" alt=\"Carrot Farmer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCarrot Farmer\u003c/strong\u003e\u003cbr\u003e\n    Farm 1000 carrots.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/d52784cf2cd0719699f068ff22b592696efc0090.jpg\" alt=\"Power Farmer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePower Farmer\u003c/strong\u003e\u003cbr\u003e\n    Farm 1000 power.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/758d7c4bb9fcff7661bc376019a99b97bc606c6b.jpg\" alt=\"Pumpkin Farmer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePumpkin Farmer\u003c/strong\u003e\u003cbr\u003e\n    Farm 1000 pumpkins.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/41817ded616ef3d96087b4dbae3f5e498d9dc2a0.jpg\" alt=\"Gold Farmer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGold Farmer\u003c/strong\u003e\u003cbr\u003e\n    Farm 1000 gold.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/14cf38366e0d8ca9a4acf9a264e7caeb1d37080f.jpg\" alt=\"Cactus Farmer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCactus Farmer\u003c/strong\u003e\u003cbr\u003e\n    Farm 1000 cacti.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/7c018531aea17ef9d3963232e2f4b419f38ce0e8.jpg\" alt=\"Bone Farmer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBone Farmer\u003c/strong\u003e\u003cbr\u003e\n    Farm 1000 bones.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/0e4858a2c9e11278131a5e47c2d5448c71825277.jpg\" alt=\"Big Hay Farmer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBig Hay Farmer\u003c/strong\u003e\u003cbr\u003e\n    Farm 1 billion hay.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/f836c6dd8ea6817741546c348c31a060dc5d69f2.jpg\" alt=\"Big Wood Farmer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBig Wood Farmer\u003c/strong\u003e\u003cbr\u003e\n    Farm 1 billion wood.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/451a7ca199c976b13fa7c9d19243bd1e4b8e3b3e.jpg\" alt=\"Big Carrot Farmer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBig Carrot Farmer\u003c/strong\u003e\u003cbr\u003e\n    Farm 1 billion carrots.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/797eafd8515925cc6ebba3e68abbecbad07217f3.jpg\" alt=\"Big Power Farmer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBig Power Farmer\u003c/strong\u003e\u003cbr\u003e\n    Farm 100000 power.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/57aed9b7063c0e5eccf02a19f9a424315d1e9f08.jpg\" alt=\"Big Pumpkin Farmer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBig Pumpkin Farmer\u003c/strong\u003e\u003cbr\u003e\n    Farm 100 million pumpkins.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/68d659a74c494357cfda3edbe6aae7ad220b0f83.jpg\" alt=\"Big Cactus Farmer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBig Cactus Farmer\u003c/strong\u003e\u003cbr\u003e\n    Farm 100 million cacti.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/b82ab77301f1d7dcc9ba3f943568395617acee92.jpg\" alt=\"Big Gold Farmer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBig Gold Farmer\u003c/strong\u003e\u003cbr\u003e\n    Farm 100 million gold.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/87d5a0ee1cd86ddce801ba6f92797dd830e73115.jpg\" alt=\"Big Bone Farmer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBig Bone Farmer\u003c/strong\u003e\u003cbr\u003e\n    Farm 100 million bones.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/15fa4b8b7ea48718acb6fac1acf9dd586d4f0886.jpg\" alt=\"Wrong Order\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWrong Order\u003c/strong\u003e\u003cbr\u003e\n    Sort a full field of cacti the wrong way round.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/28b0e0354980b7f69b3592da536d81010f7913cb.jpg\" alt=\"Mud Farm\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMud Farm\u003c/strong\u003e\u003cbr\u003e\n    Water the entire farm above water level 0.5.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/de74d94148b0533e785418d2800f37c947095bba.jpg\" alt=\"Healer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHealer\u003c/strong\u003e\u003cbr\u003e\n    Cure an infected plant.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/2cab7ed4e53ca211c555299cfb687bab1c797cb0.jpg\" alt=\"Circular Import\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCircular Import\u003c/strong\u003e\u003cbr\u003e\n    Create an import cycle.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/2bd7b9f904f841394546cee0881e7ae1a398dd0b.jpg\" alt=\"Higher-Order Programming\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHigher-Order Programming\u003c/strong\u003e\u003cbr\u003e\n    Pass a function as an argument to a function.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/00f6444cd7c20085da83a2ccadac2af6a22060e8.jpg\" alt=\"Stack Overflow\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStack Overflow\u003c/strong\u003e\u003cbr\u003e\n    Cause a stack overflow.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/eecf07cf27284d355d9bd2f14d389654d97ddd12.jpg\" alt=\"Chaos\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChaos\u003c/strong\u003e\u003cbr\u003e\n    Have 20 code windows open.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/87619c64e745de97d994dbe516a0eff2d503736d.jpg\" alt=\"Dino Master\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDino Master\u003c/strong\u003e\u003cbr\u003e\n    Farm 1 million bones in 1 minute.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/f8f5e2e0172329e030c5a94357f96136e678d6ff.jpg\" alt=\"Maze Master\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaze Master\u003c/strong\u003e\u003cbr\u003e\n    Farm 2 million gold in 1 minute.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/2fa2e5fe74d4aed0c6fff156cf9453d8bf38bcc2.jpg\" alt=\"Hay Master\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHay Master\u003c/strong\u003e\u003cbr\u003e\n    Farm 200 million hay in 1 minute.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/9fb20f3f547a0eaba537ee2077317b1cb2a2ebde.jpg\" alt=\"Carrot Master\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCarrot Master\u003c/strong\u003e\u003cbr\u003e\n    Farm 200 million carrots in 1 minute.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/89cd3608e152ad6d12386d61a590177f12e878ce.jpg\" alt=\"Wood Master\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWood Master\u003c/strong\u003e\u003cbr\u003e\n    Farm 1 billion wood in 1 minute.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/5bcb776ca212f62e472914e7bdcc05c121ebd367.jpg\" alt=\"Sunflower Master\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSunflower Master\u003c/strong\u003e\u003cbr\u003e\n    Farm 12000 power in 1 minute.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/293c9d190ee96440b8768aeb63393a06fd6b131b.jpg\" alt=\"Pumpkin Master\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePumpkin Master\u003c/strong\u003e\u003cbr\u003e\n    Farm 20 million pumpkins in 1 minute.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/2060160/4ba8756437d2f21156e70d3e9b342d7255df5e86.jpg\" alt=\"Cactus Master\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCactus Master\u003c/strong\u003e\u003cbr\u003e\n    Farm 20 million cacti in 1 minute.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for The Farmer Was Replaced - 0.0% complete with 0/59 achievements unlocked.",
      "date_published": "2024-08-02T00:00:00Z",
      "date_modified": "2024-08-02T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "the-farmer-was-replaced"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/slime-rancher/",
      "url": "https://go.waylonwalker.com/steam/slime-rancher/",
      "title": "Slime Rancher",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/433340/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/433340/library_600x900.jpg\" alt=\"Slime Rancher box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/433340/header.jpg\u0026#39;\"/ data-glightbox=\"description: Slime Rancher box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eSlime Rancher\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 57.89%\"\u003e\n        57.89%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e33/57 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e99.3h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2024-07-13\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (33)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" alt=\"Plort Peddler\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Plort Peddler\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePlort Peddler\u003c/strong\u003e\u003cbr/\u003e\n    Sell 100 plorts at the Plort Market\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 09, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" alt=\"Transplorter\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Transplorter\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTransplorter\u003c/strong\u003e\u003cbr/\u003e\n    Sell 500 plorts at the Plort Market\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 11, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/233a65b34e21ed6e2ea81153e2e40305d3516d84.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/233a65b34e21ed6e2ea81153e2e40305d3516d84.jpg\" alt=\"Plort Authority\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Plort Authority\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePlort Authority\u003c/strong\u003e\u003cbr/\u003e\n    Sell 1,000 plorts at the Plort Market\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 11, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/233a65b34e21ed6e2ea81153e2e40305d3516d84.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/233a65b34e21ed6e2ea81153e2e40305d3516d84.jpg\" alt=\"Plort Powerhouse\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Plort Powerhouse\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePlort Powerhouse\u003c/strong\u003e\u003cbr/\u003e\n    Sell 2,500 plorts at the Plort Market\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 11, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/8da3e5c9b92d1edcfb34e1cd1824cba9721cadd4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/8da3e5c9b92d1edcfb34e1cd1824cba9721cadd4.jpg\" alt=\"Plort Tycoon\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Plort Tycoon\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePlort Tycoon\u003c/strong\u003e\u003cbr/\u003e\n    Sell 5,000 plorts at the Plort Market\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 12, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" alt=\"Buck Buck Bagu-\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Buck Buck Bagu-\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBuck Buck Bagu-\u003c/strong\u003e\u003cbr/\u003e\n    Feed 100 chickens to slimes on the Ranch\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 12, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" alt=\"Salad Bar\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Salad Bar\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSalad Bar\u003c/strong\u003e\u003cbr/\u003e\n    Have 3 different veggie gardens on the Ranch at the same time\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 11, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" alt=\"Fortunate\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fortunate\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFortunate\u003c/strong\u003e\u003cbr/\u003e\n    Earn over 5,000 newbucks\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 10, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/233a65b34e21ed6e2ea81153e2e40305d3516d84.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/233a65b34e21ed6e2ea81153e2e40305d3516d84.jpg\" alt=\"Well-Off Rancher\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Well-Off Rancher\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWell-Off Rancher\u003c/strong\u003e\u003cbr/\u003e\n    Earn over 25,000 newbucks\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 11, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/8da3e5c9b92d1edcfb34e1cd1824cba9721cadd4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/8da3e5c9b92d1edcfb34e1cd1824cba9721cadd4.jpg\" alt=\"Upper Crust\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Upper Crust\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUpper Crust\u003c/strong\u003e\u003cbr/\u003e\n    Earn over 100,000 newbucks\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 12, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/8da3e5c9b92d1edcfb34e1cd1824cba9721cadd4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/8da3e5c9b92d1edcfb34e1cd1824cba9721cadd4.jpg\" alt=\"A Quick Newbuck\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Quick Newbuck\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Quick Newbuck\u003c/strong\u003e\u003cbr/\u003e\n    Earn 5,000 newbucks in a single day\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 11, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" alt=\"Up All Night\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Up All Night\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUp All Night\u003c/strong\u003e\u003cbr/\u003e\n    Stay awake from 6 AM to 6 AM the next day\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 10, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" alt=\"Not My Morning\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Not My Morning\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNot My Morning\u003c/strong\u003e\u003cbr/\u003e\n    Be knocked out before 10 AM\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 10, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" alt=\"While You Were Away\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: While You Were Away\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhile You Were Away\u003c/strong\u003e\u003cbr/\u003e\n    Return to the Ranch after more than 24 hours\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 13, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" alt=\"Catch!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Catch!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCatch!\u003c/strong\u003e\u003cbr/\u003e\n    Shoot food into an airborne slime\u0026#39;s mouth\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 10, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" alt=\"Omnivorous\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Omnivorous\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOmnivorous\u003c/strong\u003e\u003cbr/\u003e\n    Feed pink slimes on the Ranch 10 different types of food\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 12, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" alt=\"Tasty!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tasty!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTasty!\u003c/strong\u003e\u003cbr/\u003e\n    Feed 50 slimes on the Ranch their favorite food\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 11, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/233a65b34e21ed6e2ea81153e2e40305d3516d84.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/233a65b34e21ed6e2ea81153e2e40305d3516d84.jpg\" alt=\"Mine, All Mine\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mine, All Mine\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMine, All Mine\u003c/strong\u003e\u003cbr/\u003e\n    Discovered the Quarry\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 11, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/233a65b34e21ed6e2ea81153e2e40305d3516d84.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/233a65b34e21ed6e2ea81153e2e40305d3516d84.jpg\" alt=\"On the Other Side\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: On the Other Side\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOn the Other Side\u003c/strong\u003e\u003cbr/\u003e\n    Discovered the Moss Blanket\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 12, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/233a65b34e21ed6e2ea81153e2e40305d3516d84.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/233a65b34e21ed6e2ea81153e2e40305d3516d84.jpg\" alt=\"Jelly Belly Burst\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Jelly Belly Burst\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJelly Belly Burst\u003c/strong\u003e\u003cbr/\u003e\n    Burst a gordo slime\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 11, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/233a65b34e21ed6e2ea81153e2e40305d3516d84.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/233a65b34e21ed6e2ea81153e2e40305d3516d84.jpg\" alt=\"Open Says Me\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Open Says Me\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOpen Says Me\u003c/strong\u003e\u003cbr/\u003e\n    Open a slime gate\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 11, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" alt=\"Carousel\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Carousel\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCarousel\u003c/strong\u003e\u003cbr/\u003e\n    Incinerate an elder chicken\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 26, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/233a65b34e21ed6e2ea81153e2e40305d3516d84.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/233a65b34e21ed6e2ea81153e2e40305d3516d84.jpg\" alt=\"Fully Loaded\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fully Loaded\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFully Loaded\u003c/strong\u003e\u003cbr/\u003e\n    Have a maximally upgraded corral, coop, and silo on the Ranch\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 11, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/233a65b34e21ed6e2ea81153e2e40305d3516d84.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/233a65b34e21ed6e2ea81153e2e40305d3516d84.jpg\" alt=\"Hasty Exchange\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hasty Exchange\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHasty Exchange\u003c/strong\u003e\u003cbr/\u003e\n    Fulfill a Range Exchange request between Noon and 2 PM\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 13, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/233a65b34e21ed6e2ea81153e2e40305d3516d84.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/233a65b34e21ed6e2ea81153e2e40305d3516d84.jpg\" alt=\"Free Rangin\u0026#39;\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Free Rangin\u0026#39;\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFree Rangin\u0026#39;\u003c/strong\u003e\u003cbr/\u003e\n    Collect 50 plorts on the Range in a single day\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 21, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" alt=\"Boop!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Boop!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBoop!\u003c/strong\u003e\u003cbr/\u003e\n    Let a tabby slime headbutt you right on the nose\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 10, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/233a65b34e21ed6e2ea81153e2e40305d3516d84.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/233a65b34e21ed6e2ea81153e2e40305d3516d84.jpg\" alt=\"Fireworks\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fireworks\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFireworks\u003c/strong\u003e\u003cbr/\u003e\n    Shoot a boom slime largo into the air that explodes before landing\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 11, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/233a65b34e21ed6e2ea81153e2e40305d3516d84.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/233a65b34e21ed6e2ea81153e2e40305d3516d84.jpg\" alt=\"Risky Business\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Risky Business\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRisky Business\u003c/strong\u003e\u003cbr/\u003e\n    Have at least 3 different types of largos in the same corral\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 09, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/233a65b34e21ed6e2ea81153e2e40305d3516d84.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/233a65b34e21ed6e2ea81153e2e40305d3516d84.jpg\" alt=\"Ball Pit\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ball Pit\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBall Pit\u003c/strong\u003e\u003cbr/\u003e\n    Jump into a corral containing at least 40 slimes\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 09, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" alt=\"Rush Challenger\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Rush Challenger\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRush Challenger\u003c/strong\u003e\u003cbr/\u003e\n    Reach at least 10,000 newbucks in Rush Mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 26, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" alt=\"Onward... to SCIENCE!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Onward... to SCIENCE!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOnward... to SCIENCE!\u003c/strong\u003e\u003cbr/\u003e\n    Fabricate your first Slime Science gadget\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 11, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/233a65b34e21ed6e2ea81153e2e40305d3516d84.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/233a65b34e21ed6e2ea81153e2e40305d3516d84.jpg\" alt=\"Bea the Builder\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bea the Builder\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBea the Builder\u003c/strong\u003e\u003cbr/\u003e\n    Fabricate 35 Slime Science gadgets\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 12, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" alt=\"One Person at a Time\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: One Person at a Time\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOne Person at a Time\u003c/strong\u003e\u003cbr/\u003e\n    Join the 7Zee Rewards Club\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 20, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (24)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"Fruit Cocktail\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fruit Cocktail\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFruit Cocktail\u003c/strong\u003e\u003cbr/\u003e\n    Have 3 different fruit trees on the Ranch at the same time\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"Smoke, Fire, and Mirrors\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Smoke, Fire, and Mirrors\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSmoke, Fire, and Mirrors\u003c/strong\u003e\u003cbr/\u003e\n    Discovered the Glass Desert\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"You... Monster!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: You... Monster!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou... Monster!\u003c/strong\u003e\u003cbr/\u003e\n    Send an adorable chick to a fiery end, the same place you\u0026#39;re now destined to go\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"Burstin\u0026#39; at the Seams\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Burstin\u0026#39; at the Seams\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBurstin\u0026#39; at the Seams\u003c/strong\u003e\u003cbr/\u003e\n    Put at least 50 units into each slot of a fully upgraded silo\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"Hat Trick\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hat Trick\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHat Trick\u003c/strong\u003e\u003cbr/\u003e\n    Obtain at least 3 gold plorts from a single gold slime\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"That Only Works in Comic Books\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: That Only Works in Comic Books\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThat Only Works in Comic Books\u003c/strong\u003e\u003cbr/\u003e\n    Stand inside a rad aura for at least 15 seconds\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"Once Bitten, Twice... Bitten\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Once Bitten, Twice... Bitten\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOnce Bitten, Twice... Bitten\u003c/strong\u003e\u003cbr/\u003e\n    Hold onto a tarr for 15 seconds\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"Controlling the Chaos\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Controlling the Chaos\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eControlling the Chaos\u003c/strong\u003e\u003cbr/\u003e\n    Constrain more than 15 slimes in your vac stream at once while on the range\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"Six Pack\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Six Pack\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSix Pack\u003c/strong\u003e\u003cbr/\u003e\n    Have at least 6 different types of slimes in the same corral\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"Pool Party\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Pool Party\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePool Party\u003c/strong\u003e\u003cbr/\u003e\n    Fill a pond on the Ranch with at least 5 different types of slimes\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"Diversification\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Diversification\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDiversification\u003c/strong\u003e\u003cbr/\u003e\n    Have at least 10 types of largos on the Ranch\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"Rush Champion\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Rush Champion\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRush Champion\u003c/strong\u003e\u003cbr/\u003e\n    Reach at least 35,000 newbucks in Rush Mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"Rush Plortmaster\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Rush Plortmaster\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRush Plortmaster\u003c/strong\u003e\u003cbr/\u003e\n    Reach at least 75,000 newbucks in Rush Mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"Into the Past\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Into the Past\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInto the Past\u003c/strong\u003e\u003cbr/\u003e\n    Discover the Ancient Ruins\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"Never Stop Creating\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Never Stop Creating\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNever Stop Creating\u003c/strong\u003e\u003cbr/\u003e\n    Fabricate 100 Slime Science gadgets\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"Best of the Worst\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Best of the Worst\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBest of the Worst\u003c/strong\u003e\u003cbr/\u003e\n    Place a tarr on the #1 Slime Stage\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"She\u0026#39;s on Fire!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: She\u0026#39;s on Fire!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShe\u0026#39;s on Fire!\u003c/strong\u003e\u003cbr/\u003e\n    Score 50 points in a single game of slimeball\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"Color Me Impressed\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Color Me Impressed\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eColor Me Impressed\u003c/strong\u003e\u003cbr/\u003e\n    Use chroma packs to change the color of the ranch house, tech, and vacpack\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"Mint in Box\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mint in Box\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMint in Box\u003c/strong\u003e\u003cbr/\u003e\n    Purchase at least 10 different types of slime toys\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"The Hunter Has Become... The Other Thing\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Hunter Has Become... The Other Thing\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Hunter Has Become... The Other Thing\u003c/strong\u003e\u003cbr/\u003e\n    Snare a Hunter Gordo\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"Renewal\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Renewal\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRenewal\u003c/strong\u003e\u003cbr/\u003e\n    Start bringing life back to the Glass Desert\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"Pro Style\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Pro Style\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePro Style\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Slimepedia\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"Doors Like These\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Doors Like These\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDoors Like These\u003c/strong\u003e\u003cbr/\u003e\n    Discover where Hobson\u0026#39;s journey ended, and started once again.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"The Adventure Continues!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Adventure Continues!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Adventure Continues!\u003c/strong\u003e\u003cbr/\u003e\n    Complete Adventure Mode and set out for what\u0026#39;s next.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/433340/library_600x900.jpg\" alt=\"Slime Rancher box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/433340/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eSlime Rancher\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 57.89%\"\u003e\n        57.89%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e33/57 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e99.3h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2024-07-13\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (33)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" alt=\"Plort Peddler\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePlort Peddler\u003c/strong\u003e\u003cbr\u003e\n    Sell 100 plorts at the Plort Market\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 09, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" alt=\"Transplorter\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTransplorter\u003c/strong\u003e\u003cbr\u003e\n    Sell 500 plorts at the Plort Market\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 11, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/233a65b34e21ed6e2ea81153e2e40305d3516d84.jpg\" alt=\"Plort Authority\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePlort Authority\u003c/strong\u003e\u003cbr\u003e\n    Sell 1,000 plorts at the Plort Market\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 11, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/233a65b34e21ed6e2ea81153e2e40305d3516d84.jpg\" alt=\"Plort Powerhouse\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePlort Powerhouse\u003c/strong\u003e\u003cbr\u003e\n    Sell 2,500 plorts at the Plort Market\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 11, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/8da3e5c9b92d1edcfb34e1cd1824cba9721cadd4.jpg\" alt=\"Plort Tycoon\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePlort Tycoon\u003c/strong\u003e\u003cbr\u003e\n    Sell 5,000 plorts at the Plort Market\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 12, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" alt=\"Buck Buck Bagu-\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBuck Buck Bagu-\u003c/strong\u003e\u003cbr\u003e\n    Feed 100 chickens to slimes on the Ranch\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 12, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" alt=\"Salad Bar\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSalad Bar\u003c/strong\u003e\u003cbr\u003e\n    Have 3 different veggie gardens on the Ranch at the same time\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 11, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" alt=\"Fortunate\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFortunate\u003c/strong\u003e\u003cbr\u003e\n    Earn over 5,000 newbucks\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 10, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/233a65b34e21ed6e2ea81153e2e40305d3516d84.jpg\" alt=\"Well-Off Rancher\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWell-Off Rancher\u003c/strong\u003e\u003cbr\u003e\n    Earn over 25,000 newbucks\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 11, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/8da3e5c9b92d1edcfb34e1cd1824cba9721cadd4.jpg\" alt=\"Upper Crust\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUpper Crust\u003c/strong\u003e\u003cbr\u003e\n    Earn over 100,000 newbucks\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 12, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/8da3e5c9b92d1edcfb34e1cd1824cba9721cadd4.jpg\" alt=\"A Quick Newbuck\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Quick Newbuck\u003c/strong\u003e\u003cbr\u003e\n    Earn 5,000 newbucks in a single day\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 11, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" alt=\"Up All Night\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUp All Night\u003c/strong\u003e\u003cbr\u003e\n    Stay awake from 6 AM to 6 AM the next day\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 10, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" alt=\"Not My Morning\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNot My Morning\u003c/strong\u003e\u003cbr\u003e\n    Be knocked out before 10 AM\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 10, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" alt=\"While You Were Away\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhile You Were Away\u003c/strong\u003e\u003cbr\u003e\n    Return to the Ranch after more than 24 hours\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 13, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" alt=\"Catch!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCatch!\u003c/strong\u003e\u003cbr\u003e\n    Shoot food into an airborne slime's mouth\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 10, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" alt=\"Omnivorous\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOmnivorous\u003c/strong\u003e\u003cbr\u003e\n    Feed pink slimes on the Ranch 10 different types of food\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 12, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" alt=\"Tasty!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTasty!\u003c/strong\u003e\u003cbr\u003e\n    Feed 50 slimes on the Ranch their favorite food\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 11, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/233a65b34e21ed6e2ea81153e2e40305d3516d84.jpg\" alt=\"Mine, All Mine\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMine, All Mine\u003c/strong\u003e\u003cbr\u003e\n    Discovered the Quarry\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 11, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/233a65b34e21ed6e2ea81153e2e40305d3516d84.jpg\" alt=\"On the Other Side\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOn the Other Side\u003c/strong\u003e\u003cbr\u003e\n    Discovered the Moss Blanket\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 12, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/233a65b34e21ed6e2ea81153e2e40305d3516d84.jpg\" alt=\"Jelly Belly Burst\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJelly Belly Burst\u003c/strong\u003e\u003cbr\u003e\n    Burst a gordo slime\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 11, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/233a65b34e21ed6e2ea81153e2e40305d3516d84.jpg\" alt=\"Open Says Me\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOpen Says Me\u003c/strong\u003e\u003cbr\u003e\n    Open a slime gate\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 11, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" alt=\"Carousel\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCarousel\u003c/strong\u003e\u003cbr\u003e\n    Incinerate an elder chicken\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 26, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/233a65b34e21ed6e2ea81153e2e40305d3516d84.jpg\" alt=\"Fully Loaded\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFully Loaded\u003c/strong\u003e\u003cbr\u003e\n    Have a maximally upgraded corral, coop, and silo on the Ranch\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 11, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/233a65b34e21ed6e2ea81153e2e40305d3516d84.jpg\" alt=\"Hasty Exchange\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHasty Exchange\u003c/strong\u003e\u003cbr\u003e\n    Fulfill a Range Exchange request between Noon and 2 PM\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 13, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/233a65b34e21ed6e2ea81153e2e40305d3516d84.jpg\" alt=\"Free Rangin'\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFree Rangin'\u003c/strong\u003e\u003cbr\u003e\n    Collect 50 plorts on the Range in a single day\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 21, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" alt=\"Boop!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBoop!\u003c/strong\u003e\u003cbr\u003e\n    Let a tabby slime headbutt you right on the nose\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 10, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/233a65b34e21ed6e2ea81153e2e40305d3516d84.jpg\" alt=\"Fireworks\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFireworks\u003c/strong\u003e\u003cbr\u003e\n    Shoot a boom slime largo into the air that explodes before landing\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 11, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/233a65b34e21ed6e2ea81153e2e40305d3516d84.jpg\" alt=\"Risky Business\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRisky Business\u003c/strong\u003e\u003cbr\u003e\n    Have at least 3 different types of largos in the same corral\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 09, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/233a65b34e21ed6e2ea81153e2e40305d3516d84.jpg\" alt=\"Ball Pit\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBall Pit\u003c/strong\u003e\u003cbr\u003e\n    Jump into a corral containing at least 40 slimes\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 09, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" alt=\"Rush Challenger\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRush Challenger\u003c/strong\u003e\u003cbr\u003e\n    Reach at least 10,000 newbucks in Rush Mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 26, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" alt=\"Onward... to SCIENCE!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOnward... to SCIENCE!\u003c/strong\u003e\u003cbr\u003e\n    Fabricate your first Slime Science gadget\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 11, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/233a65b34e21ed6e2ea81153e2e40305d3516d84.jpg\" alt=\"Bea the Builder\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBea the Builder\u003c/strong\u003e\u003cbr\u003e\n    Fabricate 35 Slime Science gadgets\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 12, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/951dbacc175f0bc66db9380741eb84c3757dff71.jpg\" alt=\"One Person at a Time\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOne Person at a Time\u003c/strong\u003e\u003cbr\u003e\n    Join the 7Zee Rewards Club\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 20, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (24)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"Fruit Cocktail\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFruit Cocktail\u003c/strong\u003e\u003cbr\u003e\n    Have 3 different fruit trees on the Ranch at the same time\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"Smoke, Fire, and Mirrors\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSmoke, Fire, and Mirrors\u003c/strong\u003e\u003cbr\u003e\n    Discovered the Glass Desert\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"You... Monster!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou... Monster!\u003c/strong\u003e\u003cbr\u003e\n    Send an adorable chick to a fiery end, the same place you're now destined to go\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"Burstin' at the Seams\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBurstin' at the Seams\u003c/strong\u003e\u003cbr\u003e\n    Put at least 50 units into each slot of a fully upgraded silo\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"Hat Trick\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHat Trick\u003c/strong\u003e\u003cbr\u003e\n    Obtain at least 3 gold plorts from a single gold slime\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"That Only Works in Comic Books\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThat Only Works in Comic Books\u003c/strong\u003e\u003cbr\u003e\n    Stand inside a rad aura for at least 15 seconds\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"Once Bitten, Twice... Bitten\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOnce Bitten, Twice... Bitten\u003c/strong\u003e\u003cbr\u003e\n    Hold onto a tarr for 15 seconds\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"Controlling the Chaos\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eControlling the Chaos\u003c/strong\u003e\u003cbr\u003e\n    Constrain more than 15 slimes in your vac stream at once while on the range\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"Six Pack\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSix Pack\u003c/strong\u003e\u003cbr\u003e\n    Have at least 6 different types of slimes in the same corral\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"Pool Party\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePool Party\u003c/strong\u003e\u003cbr\u003e\n    Fill a pond on the Ranch with at least 5 different types of slimes\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"Diversification\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDiversification\u003c/strong\u003e\u003cbr\u003e\n    Have at least 10 types of largos on the Ranch\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"Rush Champion\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRush Champion\u003c/strong\u003e\u003cbr\u003e\n    Reach at least 35,000 newbucks in Rush Mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"Rush Plortmaster\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRush Plortmaster\u003c/strong\u003e\u003cbr\u003e\n    Reach at least 75,000 newbucks in Rush Mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"Into the Past\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInto the Past\u003c/strong\u003e\u003cbr\u003e\n    Discover the Ancient Ruins\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"Never Stop Creating\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNever Stop Creating\u003c/strong\u003e\u003cbr\u003e\n    Fabricate 100 Slime Science gadgets\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"Best of the Worst\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBest of the Worst\u003c/strong\u003e\u003cbr\u003e\n    Place a tarr on the #1 Slime Stage\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"She's on Fire!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShe's on Fire!\u003c/strong\u003e\u003cbr\u003e\n    Score 50 points in a single game of slimeball\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"Color Me Impressed\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eColor Me Impressed\u003c/strong\u003e\u003cbr\u003e\n    Use chroma packs to change the color of the ranch house, tech, and vacpack\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"Mint in Box\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMint in Box\u003c/strong\u003e\u003cbr\u003e\n    Purchase at least 10 different types of slime toys\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"The Hunter Has Become... The Other Thing\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Hunter Has Become... The Other Thing\u003c/strong\u003e\u003cbr\u003e\n    Snare a Hunter Gordo\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"Renewal\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRenewal\u003c/strong\u003e\u003cbr\u003e\n    Start bringing life back to the Glass Desert\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"Pro Style\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePro Style\u003c/strong\u003e\u003cbr\u003e\n    Complete the Slimepedia\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"Doors Like These\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDoors Like These\u003c/strong\u003e\u003cbr\u003e\n    Discover where Hobson's journey ended, and started once again.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/433340/4673b7b626813a38f65f46c60123643e3d050010.jpg\" alt=\"The Adventure Continues!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Adventure Continues!\u003c/strong\u003e\u003cbr\u003e\n    Complete Adventure Mode and set out for what's next.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Slime Rancher - 57.89% complete with 33/57 achievements unlocked.",
      "date_published": "2024-07-13T00:00:00Z",
      "date_modified": "2024-07-13T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "slime-rancher"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/my-reader/",
      "url": "https://go.waylonwalker.com/my-reader/",
      "title": "My Reader Project",
      "content_html": "\u003cp\u003eIn 2024 I built my own reader after years of being bitter about google killing\nreader more than a decade prior.\u003c/p\u003e\n\u003cdiv class=\"admonition seealso\"\u003e\n\u003cp class=\"admonition-title\"\u003eSeealso\u003c/p\u003e\n\u003cp\u003eAll the way back in 2020 I made a post on what I wanted to build into my own\nreader.  It went long forgotten until I tried to make this post and slugs\nclashed. \u003ca href=\"/reader-2020/\" class=\"wikilink\" data-title=\"Reader-2020\" data-description=\"Notes about my reader idea\" data-date=\"2020-07-12\" data-preview=\"Notes about my reader idea\"\u003eReader-2020\u003c/a\u003e\u003c/p\u003e\n\u003c/div\u003e\n\u003ch2 id=\"built-on-markata\"\u003eBuilt on markata \u003ca href=\"#built-on-markata\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI built it on top of my own static site generator \u003ca href=\"/markata/\" class=\"wikilink\" data-title=\"markata\" data-description=\"This post is a work in progress.\" data-date=\"2024-05-30\" data-preview=\"This post is a work in progress.\"\u003emarkata\u003c/a\u003e, feedparser (\u003ca href=\"/parsing-rss-python/\" class=\"wikilink\" data-title=\"🐍 Parsing RSS feeds with Python\" data-description=\"I am looking into a way to replace my google reader experience that I had back in 2013 before google took it from us. I am starting by learning how to parse...\" data-date=\"2020-07-13\" data-preview=\"I am looking into a way to replace my google reader experience that I had back in 2013 before google took it from us. I am starting by learning how to parse...\"\u003e🐍 Parsing RSS feeds with Python\u003c/a\u003e), some jinja templating, and tailwind.\u003c/p\u003e\n\u003cp\u003eAfter putting all the work I have into markata, it makes projects like this\nfairly easy to build out with just a custom loader to load new posts in.\u003c/p\u003e\n",
      "content_text": "\nIn 2024 I built my own reader after years of being bitter about google killing\nreader more than a decade prior.\n\n!!! seealso\n  All the way back in 2020 I made a post on what I wanted to build into my own\n  reader.  It went long forgotten until I tried to make this post and slugs\n  clashed. \u003ca href=\"/reader-2020/\" class=\"wikilink\" data-title=\"Reader-2020\" data-description=\"Notes about my reader idea\" data-date=\"2020-07-12\"\u003eReader-2020\u003c/a\u003e\n\n## Built on markata\n\nI built it on top of my own static site generator \u003ca href=\"/markata/\" class=\"wikilink\" data-title=\"markata\" data-description=\"This post is a work in progress.\" data-date=\"2024-05-30\"\u003emarkata\u003c/a\u003e, feedparser (\u003ca href=\"/parsing-rss-python/\" class=\"wikilink\" data-title=\"🐍 Parsing RSS feeds with Python\" data-description=\"I am looking into a way to replace my google reader experience that I had back in 2013 before google took it from us. I am starting by learning how to parse...\" data-date=\"2020-07-13\"\u003e🐍 Parsing RSS feeds with Python\u003c/a\u003e), some jinja templating, and tailwind.\n\nAfter putting all the work I have into markata, it makes projects like this\nfairly easy to build out with just a custom loader to load new posts in.\n",
      "summary": "In 2024 I built my own reader after years of being bitter about google killing reader more than a decade prior.",
      "date_published": "2024-07-07T10:24:28Z",
      "date_modified": "2024-07-07T10:24:28Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "catalytic",
        "markata"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/witch-hunt/",
      "url": "https://go.waylonwalker.com/steam/witch-hunt/",
      "title": "Witch Hunt",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/559650/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/559650/library_600x900.jpg\" alt=\"Witch Hunt box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/559650/header.jpg\u0026#39;\"/ data-glightbox=\"description: Witch Hunt box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eWitch Hunt\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 7.32%\"\u003e\n        7.32%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e3/41 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e12.4h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2024-06-29\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (3)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/6ffd0cc34f9cf4ae59b5e975e482dc3c731d745f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/6ffd0cc34f9cf4ae59b5e975e482dc3c731d745f.jpg\" alt=\"Level 2\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Level 2\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLevel 2\u003c/strong\u003e\u003cbr/\u003e\n    Reach Level 2\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 25, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/213247db7c1fe9e9c67a469dde2d3c543b2dbe64.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/213247db7c1fe9e9c67a469dde2d3c543b2dbe64.jpg\" alt=\"Level 5\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Level 5\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLevel 5\u003c/strong\u003e\u003cbr/\u003e\n    Reach Level 5\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 25, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/4ee313cf8880beaecc66c6388c6700c94bbc0ac0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/4ee313cf8880beaecc66c6388c6700c94bbc0ac0.jpg\" alt=\"Level 10\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Level 10\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLevel 10\u003c/strong\u003e\u003cbr/\u003e\n    Reach Level 10\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 27, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (38)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/ab92cfd513c4b8b65b317e01e275dfd47639c49e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/ab92cfd513c4b8b65b317e01e275dfd47639c49e.jpg\" alt=\"Level 20\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Level 20\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLevel 20\u003c/strong\u003e\u003cbr/\u003e\n    Reach Level 20\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/a0ea63940a9b84801c1ad374b4bc1fbb86233bdc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/a0ea63940a9b84801c1ad374b4bc1fbb86233bdc.jpg\" alt=\"Level 30\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Level 30\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLevel 30\u003c/strong\u003e\u003cbr/\u003e\n    Reach Level 30\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/f590027652d04743d5bb0dd502dd1c830ebf1c12.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/f590027652d04743d5bb0dd502dd1c830ebf1c12.jpg\" alt=\"Level 40\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Level 40\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLevel 40\u003c/strong\u003e\u003cbr/\u003e\n    Reach Level 40\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/1ff7856986c501b5c51dbdd3f87e7522f9a72339.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/1ff7856986c501b5c51dbdd3f87e7522f9a72339.jpg\" alt=\"Level 50\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Level 50\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLevel 50\u003c/strong\u003e\u003cbr/\u003e\n    Reach Level 50\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/352b35257741f63a7a1400d0e9eb43d5af1f17f2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/352b35257741f63a7a1400d0e9eb43d5af1f17f2.jpg\" alt=\"Level 60\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Level 60\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLevel 60\u003c/strong\u003e\u003cbr/\u003e\n    Reach Level 60\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/72047d93f833b7d1c64d700c9be13fec5bae92ef.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/72047d93f833b7d1c64d700c9be13fec5bae92ef.jpg\" alt=\"Stockpiler\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Stockpiler\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStockpiler\u003c/strong\u003e\u003cbr/\u003e\n    Collect 10 common props\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/f125649b1559c66d910ef3aa6122b6875958bc4c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/f125649b1559c66d910ef3aa6122b6875958bc4c.jpg\" alt=\"It\u0026#39;s getting more and more\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: It\u0026#39;s getting more and more\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt\u0026#39;s getting more and more\u003c/strong\u003e\u003cbr/\u003e\n    Collect 50 common props\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/3529c52be5b9513be0f214b4bbd025def5e92863.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/3529c52be5b9513be0f214b4bbd025def5e92863.jpg\" alt=\"Gotta collect \u0026#39;em all!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Gotta collect \u0026#39;em all!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGotta collect \u0026#39;em all!\u003c/strong\u003e\u003cbr/\u003e\n    Collect 100 common props\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/cf1842067e87f480feaf85404a790ae6aeb49153.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/cf1842067e87f480feaf85404a790ae6aeb49153.jpg\" alt=\"This is getting out of hand\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: This is getting out of hand\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThis is getting out of hand\u003c/strong\u003e\u003cbr/\u003e\n    Collect 150 common props\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/8efc9e52b15d9d150b19ae51014a23dd124344f2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/8efc9e52b15d9d150b19ae51014a23dd124344f2.jpg\" alt=\"I guess, you wanna start a museum?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: I guess, you wanna start a museum?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI guess, you wanna start a museum?\u003c/strong\u003e\u003cbr/\u003e\n    Collect 200 common props\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/669163602ccecfc9ee93ad34b15ff4aac27c15fe.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/669163602ccecfc9ee93ad34b15ff4aac27c15fe.jpg\" alt=\"Now that\u0026#39;s impressive!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Now that\u0026#39;s impressive!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNow that\u0026#39;s impressive!\u003c/strong\u003e\u003cbr/\u003e\n    Collect 225 common props\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/bfb7becd884e82cb922288966c6ddcc6823f9e4d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/bfb7becd884e82cb922288966c6ddcc6823f9e4d.jpg\" alt=\"Drag them to the witch realm!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Drag them to the witch realm!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDrag them to the witch realm!\u003c/strong\u003e\u003cbr/\u003e\n    Collect 15 secret props\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/9f48cea6eb7bb4fb745cfd741d5c0e429653e296.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/9f48cea6eb7bb4fb745cfd741d5c0e429653e296.jpg\" alt=\"Crazy Collector\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Crazy Collector\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCrazy Collector\u003c/strong\u003e\u003cbr/\u003e\n    Collect 30 secret props\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/f1a5a91528b14d067c39e497c63806a055c0ff2b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/f1a5a91528b14d067c39e497c63806a055c0ff2b.jpg\" alt=\"Level 70\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Level 70\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLevel 70\u003c/strong\u003e\u003cbr/\u003e\n    Reach Level 70\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/fd95da24b7507b065260cff77942a84947ef8568.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/fd95da24b7507b065260cff77942a84947ef8568.jpg\" alt=\"\u0026#39;I can see nothing but props.\u0026#39;\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: \u0026#39;I can see nothing but props.\u0026#39;\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e\u0026#39;I can see nothing but props.\u0026#39;\u003c/strong\u003e\u003cbr/\u003e\n    Collect 285 common props\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/d8d3596c182f9c608e45789fda58855e1896c322.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/d8d3596c182f9c608e45789fda58855e1896c322.jpg\" alt=\"Level 80\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Level 80\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLevel 80\u003c/strong\u003e\u003cbr/\u003e\n    Reach Level 80\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/d4c9fcbbb9e019718711c2257036e7bd109fa0a4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/d4c9fcbbb9e019718711c2257036e7bd109fa0a4.jpg\" alt=\"Level 90\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Level 90\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLevel 90\u003c/strong\u003e\u003cbr/\u003e\n    Reach Level 90\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/f80afdc48f0efeb8ac68971ea5c7c5bf66f002d2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/f80afdc48f0efeb8ac68971ea5c7c5bf66f002d2.jpg\" alt=\"Level 100\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Level 100\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLevel 100\u003c/strong\u003e\u003cbr/\u003e\n    Reach Level 100\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/9758917890da8d5b2ff30be20941e69438621514.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/9758917890da8d5b2ff30be20941e69438621514.jpg\" alt=\"Chained to an obsession\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Chained to an obsession\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChained to an obsession\u003c/strong\u003e\u003cbr/\u003e\n    Collect 333 common props\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/435578bb24d57cc4b365a911a5c7e0b1aa428b5a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/435578bb24d57cc4b365a911a5c7e0b1aa428b5a.jpg\" alt=\"Level 150\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Level 150\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLevel 150\u003c/strong\u003e\u003cbr/\u003e\n    Reach Level 150\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/9dcd91ad72450114ade74dd4f00841ce760f1f8c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/9dcd91ad72450114ade74dd4f00841ce760f1f8c.jpg\" alt=\"Level 200\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Level 200\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLevel 200\u003c/strong\u003e\u003cbr/\u003e\n    Reach Level 200\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/5c3fdcec8cbd779ae244b340667858893b41d5d2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/5c3fdcec8cbd779ae244b340667858893b41d5d2.jpg\" alt=\"Do a Barrel Roll\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Do a Barrel Roll\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDo a Barrel Roll\u003c/strong\u003e\u003cbr/\u003e\n    Roll around while being transformed into a barrel for 333m on an official server with at least 10 players.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/97a606bc16bca3f7067a4ebde0976de1a1dcadbd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/97a606bc16bca3f7067a4ebde0976de1a1dcadbd.jpg\" alt=\"Fruit Salad\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fruit Salad\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFruit Salad\u003c/strong\u003e\u003cbr/\u003e\n    Transform into 12 different fruit props during a single match on an official server with at least 10 players.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/ac530452d42c65552deeec78f75a942abfb91f90.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/ac530452d42c65552deeec78f75a942abfb91f90.jpg\" alt=\"Obsessively Possessive\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Obsessively Possessive\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eObsessively Possessive\u003c/strong\u003e\u003cbr/\u003e\n    Possess 30 props during a single match on an official server with at least 10 players.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/6ba0de795262cf132ea45abe1c078d802d1b0764.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/6ba0de795262cf132ea45abe1c078d802d1b0764.jpg\" alt=\"Potato goes with everything\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Potato goes with everything\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePotato goes with everything\u003c/strong\u003e\u003cbr/\u003e\n    Have the potato equipped and throw 900 potatoes during a single match on an official server with at least 10 players.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/5bebba5170ba7ebcab39d20eaa36fa6e155a1724.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/5bebba5170ba7ebcab39d20eaa36fa6e155a1724.jpg\" alt=\"I\u0026#39;m not lazy!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: I\u0026#39;m not lazy!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI\u0026#39;m not lazy!\u003c/strong\u003e\u003cbr/\u003e\n    Transform into a single prop during hide phase and win without getting hit once during a single match on an official server with at least 10 players.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/3f7614bf6a233d6cb1024f313fce0c3874a55011.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/3f7614bf6a233d6cb1024f313fce0c3874a55011.jpg\" alt=\"One with the wall\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: One with the wall\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOne with the wall\u003c/strong\u003e\u003cbr/\u003e\n    Win a Hide-and-Seek or Mobification match without  transforming into a prop on an official server with at least 10 players.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/688a9534df951601c31cfe4fef38c4808ecf8edb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/688a9534df951601c31cfe4fef38c4808ecf8edb.jpg\" alt=\"Go big or go home!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Go big or go home!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGo big or go home!\u003c/strong\u003e\u003cbr/\u003e\n    Turn into a huge prop (Cliff Standee, House, Snow-covered House, Giant Rock Sphere, Pyramid) during hide phase and don\u0026#39;t get caught on an official server with at least 10 players.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/ff65096c53e6e3327ad31f7e7aefdce5523f5a0d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/ff65096c53e6e3327ad31f7e7aefdce5523f5a0d.jpg\" alt=\"Last Witch Standing\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Last Witch Standing\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLast Witch Standing\u003c/strong\u003e\u003cbr/\u003e\n    Survive a Mobification match as last witch standing without ever getting hit  on an official server with at least 10 players.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/b1505d3be70c0ba542f7340964a9793f65ab66e5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/b1505d3be70c0ba542f7340964a9793f65ab66e5.jpg\" alt=\"Sneaky Little Witch\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sneaky Little Witch\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSneaky Little Witch\u003c/strong\u003e\u003cbr/\u003e\n    Move 333m while crouching during a single match on an official server with at least 10 players.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/0b2b8a6260076f829402defea93e6e45398851be.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/0b2b8a6260076f829402defea93e6e45398851be.jpg\" alt=\"Witch Hunter\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Witch Hunter\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWitch Hunter\u003c/strong\u003e\u003cbr/\u003e\n    Land the last hit on every witch on an official server with at least 10 players.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/e8d84c2b45e0262de63e7515c22a47e065c5609a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/e8d84c2b45e0262de63e7515c22a47e065c5609a.jpg\" alt=\"I feel so powerful!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: I feel so powerful!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI feel so powerful!\u003c/strong\u003e\u003cbr/\u003e\n    Collect 100 powerups on official servers with at least 10 players.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/bbcdc1bd0025060ed5a21db42b6d751cd60cf181.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/bbcdc1bd0025060ed5a21db42b6d751cd60cf181.jpg\" alt=\"Tourist\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tourist\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTourist\u003c/strong\u003e\u003cbr/\u003e\n    Win a game on 15 different, official maps on official servers with at least 10 players.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/daf5330dd11de09c6d8935087602792972a33103.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/daf5330dd11de09c6d8935087602792972a33103.jpg\" alt=\"I believe I can fly\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: I believe I can fly\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI believe I can fly\u003c/strong\u003e\u003cbr/\u003e\n    Catch a witch while airborne on an official server with at least 10 players.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/058410f0cb7d0c58f482d41a925c9bd125c2219c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/058410f0cb7d0c58f482d41a925c9bd125c2219c.jpg\" alt=\"Why are you running?!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Why are you running?!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhy are you running?!\u003c/strong\u003e\u003cbr/\u003e\n    Hit 2 witches with a single bodyslam on an official server with at least 10 players.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/0f822b7b1a9865ffa10aa805824c6acd5e3e5f3a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/0f822b7b1a9865ffa10aa805824c6acd5e3e5f3a.jpg\" alt=\"Level 250\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Level 250\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLevel 250\u003c/strong\u003e\u003cbr/\u003e\n    Reach Level 250\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/a84bb2722b4e299410cca3272684d09e67d2f255.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/a84bb2722b4e299410cca3272684d09e67d2f255.jpg\" alt=\"I\u0026#39;m taking this home\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: I\u0026#39;m taking this home\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI\u0026#39;m taking this home\u003c/strong\u003e\u003cbr/\u003e\n    Turn into a camera and take photos of 8 different luaq statues on an official server with at least 10 players.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/905ca4620ba3147fa7f58c457acb510e7eb2e2fc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/905ca4620ba3147fa7f58c457acb510e7eb2e2fc.jpg\" alt=\"Hungry for secrets\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hungry for secrets\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHungry for secrets\u003c/strong\u003e\u003cbr/\u003e\n    Collect 50 secret props\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/559650/library_600x900.jpg\" alt=\"Witch Hunt box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/559650/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eWitch Hunt\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 7.32%\"\u003e\n        7.32%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e3/41 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e12.4h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2024-06-29\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (3)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/6ffd0cc34f9cf4ae59b5e975e482dc3c731d745f.jpg\" alt=\"Level 2\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLevel 2\u003c/strong\u003e\u003cbr\u003e\n    Reach Level 2\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 25, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/213247db7c1fe9e9c67a469dde2d3c543b2dbe64.jpg\" alt=\"Level 5\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLevel 5\u003c/strong\u003e\u003cbr\u003e\n    Reach Level 5\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 25, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/4ee313cf8880beaecc66c6388c6700c94bbc0ac0.jpg\" alt=\"Level 10\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLevel 10\u003c/strong\u003e\u003cbr\u003e\n    Reach Level 10\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 27, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (38)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/ab92cfd513c4b8b65b317e01e275dfd47639c49e.jpg\" alt=\"Level 20\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLevel 20\u003c/strong\u003e\u003cbr\u003e\n    Reach Level 20\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/a0ea63940a9b84801c1ad374b4bc1fbb86233bdc.jpg\" alt=\"Level 30\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLevel 30\u003c/strong\u003e\u003cbr\u003e\n    Reach Level 30\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/f590027652d04743d5bb0dd502dd1c830ebf1c12.jpg\" alt=\"Level 40\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLevel 40\u003c/strong\u003e\u003cbr\u003e\n    Reach Level 40\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/1ff7856986c501b5c51dbdd3f87e7522f9a72339.jpg\" alt=\"Level 50\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLevel 50\u003c/strong\u003e\u003cbr\u003e\n    Reach Level 50\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/352b35257741f63a7a1400d0e9eb43d5af1f17f2.jpg\" alt=\"Level 60\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLevel 60\u003c/strong\u003e\u003cbr\u003e\n    Reach Level 60\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/72047d93f833b7d1c64d700c9be13fec5bae92ef.jpg\" alt=\"Stockpiler\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStockpiler\u003c/strong\u003e\u003cbr\u003e\n    Collect 10 common props\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/f125649b1559c66d910ef3aa6122b6875958bc4c.jpg\" alt=\"It's getting more and more\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt's getting more and more\u003c/strong\u003e\u003cbr\u003e\n    Collect 50 common props\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/3529c52be5b9513be0f214b4bbd025def5e92863.jpg\" alt=\"Gotta collect 'em all!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGotta collect 'em all!\u003c/strong\u003e\u003cbr\u003e\n    Collect 100 common props\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/cf1842067e87f480feaf85404a790ae6aeb49153.jpg\" alt=\"This is getting out of hand\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThis is getting out of hand\u003c/strong\u003e\u003cbr\u003e\n    Collect 150 common props\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/8efc9e52b15d9d150b19ae51014a23dd124344f2.jpg\" alt=\"I guess, you wanna start a museum?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI guess, you wanna start a museum?\u003c/strong\u003e\u003cbr\u003e\n    Collect 200 common props\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/669163602ccecfc9ee93ad34b15ff4aac27c15fe.jpg\" alt=\"Now that's impressive!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNow that's impressive!\u003c/strong\u003e\u003cbr\u003e\n    Collect 225 common props\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/bfb7becd884e82cb922288966c6ddcc6823f9e4d.jpg\" alt=\"Drag them to the witch realm!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDrag them to the witch realm!\u003c/strong\u003e\u003cbr\u003e\n    Collect 15 secret props\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/9f48cea6eb7bb4fb745cfd741d5c0e429653e296.jpg\" alt=\"Crazy Collector\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCrazy Collector\u003c/strong\u003e\u003cbr\u003e\n    Collect 30 secret props\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/f1a5a91528b14d067c39e497c63806a055c0ff2b.jpg\" alt=\"Level 70\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLevel 70\u003c/strong\u003e\u003cbr\u003e\n    Reach Level 70\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/fd95da24b7507b065260cff77942a84947ef8568.jpg\" alt=\"'I can see nothing but props.'\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e'I can see nothing but props.'\u003c/strong\u003e\u003cbr\u003e\n    Collect 285 common props\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/d8d3596c182f9c608e45789fda58855e1896c322.jpg\" alt=\"Level 80\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLevel 80\u003c/strong\u003e\u003cbr\u003e\n    Reach Level 80\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/d4c9fcbbb9e019718711c2257036e7bd109fa0a4.jpg\" alt=\"Level 90\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLevel 90\u003c/strong\u003e\u003cbr\u003e\n    Reach Level 90\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/f80afdc48f0efeb8ac68971ea5c7c5bf66f002d2.jpg\" alt=\"Level 100\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLevel 100\u003c/strong\u003e\u003cbr\u003e\n    Reach Level 100\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/9758917890da8d5b2ff30be20941e69438621514.jpg\" alt=\"Chained to an obsession\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChained to an obsession\u003c/strong\u003e\u003cbr\u003e\n    Collect 333 common props\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/435578bb24d57cc4b365a911a5c7e0b1aa428b5a.jpg\" alt=\"Level 150\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLevel 150\u003c/strong\u003e\u003cbr\u003e\n    Reach Level 150\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/9dcd91ad72450114ade74dd4f00841ce760f1f8c.jpg\" alt=\"Level 200\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLevel 200\u003c/strong\u003e\u003cbr\u003e\n    Reach Level 200\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/5c3fdcec8cbd779ae244b340667858893b41d5d2.jpg\" alt=\"Do a Barrel Roll\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDo a Barrel Roll\u003c/strong\u003e\u003cbr\u003e\n    Roll around while being transformed into a barrel for 333m on an official server with at least 10 players.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/97a606bc16bca3f7067a4ebde0976de1a1dcadbd.jpg\" alt=\"Fruit Salad\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFruit Salad\u003c/strong\u003e\u003cbr\u003e\n    Transform into 12 different fruit props during a single match on an official server with at least 10 players.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/ac530452d42c65552deeec78f75a942abfb91f90.jpg\" alt=\"Obsessively Possessive\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eObsessively Possessive\u003c/strong\u003e\u003cbr\u003e\n    Possess 30 props during a single match on an official server with at least 10 players.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/6ba0de795262cf132ea45abe1c078d802d1b0764.jpg\" alt=\"Potato goes with everything\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePotato goes with everything\u003c/strong\u003e\u003cbr\u003e\n    Have the potato equipped and throw 900 potatoes during a single match on an official server with at least 10 players.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/5bebba5170ba7ebcab39d20eaa36fa6e155a1724.jpg\" alt=\"I'm not lazy!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI'm not lazy!\u003c/strong\u003e\u003cbr\u003e\n    Transform into a single prop during hide phase and win without getting hit once during a single match on an official server with at least 10 players.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/3f7614bf6a233d6cb1024f313fce0c3874a55011.jpg\" alt=\"One with the wall\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOne with the wall\u003c/strong\u003e\u003cbr\u003e\n    Win a Hide-and-Seek or Mobification match without  transforming into a prop on an official server with at least 10 players.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/688a9534df951601c31cfe4fef38c4808ecf8edb.jpg\" alt=\"Go big or go home!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGo big or go home!\u003c/strong\u003e\u003cbr\u003e\n    Turn into a huge prop (Cliff Standee, House, Snow-covered House, Giant Rock Sphere, Pyramid) during hide phase and don't get caught on an official server with at least 10 players.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/ff65096c53e6e3327ad31f7e7aefdce5523f5a0d.jpg\" alt=\"Last Witch Standing\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLast Witch Standing\u003c/strong\u003e\u003cbr\u003e\n    Survive a Mobification match as last witch standing without ever getting hit  on an official server with at least 10 players.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/b1505d3be70c0ba542f7340964a9793f65ab66e5.jpg\" alt=\"Sneaky Little Witch\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSneaky Little Witch\u003c/strong\u003e\u003cbr\u003e\n    Move 333m while crouching during a single match on an official server with at least 10 players.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/0b2b8a6260076f829402defea93e6e45398851be.jpg\" alt=\"Witch Hunter\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWitch Hunter\u003c/strong\u003e\u003cbr\u003e\n    Land the last hit on every witch on an official server with at least 10 players.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/e8d84c2b45e0262de63e7515c22a47e065c5609a.jpg\" alt=\"I feel so powerful!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI feel so powerful!\u003c/strong\u003e\u003cbr\u003e\n    Collect 100 powerups on official servers with at least 10 players.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/bbcdc1bd0025060ed5a21db42b6d751cd60cf181.jpg\" alt=\"Tourist\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTourist\u003c/strong\u003e\u003cbr\u003e\n    Win a game on 15 different, official maps on official servers with at least 10 players.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/daf5330dd11de09c6d8935087602792972a33103.jpg\" alt=\"I believe I can fly\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI believe I can fly\u003c/strong\u003e\u003cbr\u003e\n    Catch a witch while airborne on an official server with at least 10 players.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/058410f0cb7d0c58f482d41a925c9bd125c2219c.jpg\" alt=\"Why are you running?!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhy are you running?!\u003c/strong\u003e\u003cbr\u003e\n    Hit 2 witches with a single bodyslam on an official server with at least 10 players.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/0f822b7b1a9865ffa10aa805824c6acd5e3e5f3a.jpg\" alt=\"Level 250\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLevel 250\u003c/strong\u003e\u003cbr\u003e\n    Reach Level 250\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/a84bb2722b4e299410cca3272684d09e67d2f255.jpg\" alt=\"I'm taking this home\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI'm taking this home\u003c/strong\u003e\u003cbr\u003e\n    Turn into a camera and take photos of 8 different luaq statues on an official server with at least 10 players.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/559650/905ca4620ba3147fa7f58c457acb510e7eb2e2fc.jpg\" alt=\"Hungry for secrets\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHungry for secrets\u003c/strong\u003e\u003cbr\u003e\n    Collect 50 secret props\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Witch Hunt - 7.32% complete with 3/41 achievements unlocked.",
      "date_published": "2024-06-29T00:00:00Z",
      "date_modified": "2024-06-29T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "witch-hunt"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/htmx-on-my-blog/",
      "url": "https://go.waylonwalker.com/htmx-on-my-blog/",
      "title": "I've added htmx to my blog",
      "content_html": "\u003cp\u003eI’ve added \u003ca href=\"/htmx/\" class=\"glossary-term\" title=\"htmx is a frontend javascript library for creating dynamic web applications.\"\u003ehtmx\u003c/a\u003e to my blog.  It’s extra bloatware that I long avoided, but it’s\nso damn convenient.\u003c/p\u003e\n\u003cp\u003eOk so it’s not bloatware, but it’s not the theme I was going for.  I wanted my\nsite to be as lightweight as possible.  I had at one point gone too far and had\nMb’s of react that did not provide any value for the end user.\u003c/p\u003e\n\u003cdiv hx-get=\"/recent-thoughts/partial\" hx-trigger=\"load\"\u003e\u003c/div\u003e\n\u003cdiv hx-get=\"/recently-written/partial\" hx-trigger=\"load\"\u003e\u003c/div\u003e\n\u003ch2 id=\"can-it-be-done-with-jinja\"\u003ecan it be done with jinja \u003ca href=\"#can-it-be-done-with-jinja\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cdiv\u003e\n{% with feed = markata.feeds.recent_thoughts %}\n{% include \u0026#39;feed_sm_partial.\u003ca href=\"/html/\" class=\"glossary-term\" title=\"HTML (HyperText Markup Language) is the standard markup language used to create and design documents on the World Wide Web. It structures web content by...\"\u003ehtml\u003c/a\u003e\u0026#39; %}\n{% endwith %}\n\u003c/div\u003e\n\u003ch2 id=\"feed-partials\"\u003eFeed Partials \u003ca href=\"#feed-partials\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/markata/\" class=\"wikilink\" data-title=\"markata\" data-description=\"This post is a work in progress.\" data-date=\"2024-05-30\" data-preview=\"This post is a work in progress.\"\u003emarkata\u003c/a\u003e pre-release 0.8.1.dev10 has been released with support for feed\npartials on \u003ca href=\"https://pypi.org/project/markata/0.8.1.dev10/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/pypi.org.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/pypi.org.ico\" class=\"has-avatar  has-avatar-before\"\u003epypi\u003c/a\u003e.\u003c/p\u003e\n\u003ch2 id=\"its-now-part-of-my-blog\"\u003eIt’s now part of my blog \u003ca href=\"#its-now-part-of-my-blog\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eCommit\n\u003ca href=\"https://github.com/WaylonWalker/waylonwalker.com/commit/aa23361e8606b62f7e4ca1a9305e6975fcdbc088\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eaa233\u003c/a\u003e\nadded support for recent posts on each page to be loaded off of this partial.\u003c/p\u003e\n",
      "content_text": "\nI've added htmx to my blog.  It's extra bloatware that I long avoided, but it's\nso damn convenient.\n\nOk so it's not bloatware, but it's not the theme I was going for.  I wanted my\nsite to be as lightweight as possible.  I had at one point gone too far and had\nMb's of react that did not provide any value for the end user.\n\n\u003cdiv hx-get='/recent-thoughts/partial' hx-trigger='load'\u003e\u003c/div\u003e\n\n\u003cdiv hx-get='/recently-written/partial' hx-trigger='load'\u003e\u003c/div\u003e\n\n## can it be done with jinja\n\n\u003cdiv\u003e\n{% with feed = markata.feeds.recent_thoughts %}\n{% include 'feed_sm_partial.html' %}\n{% endwith %}\n\u003c/div\u003e\n\n## Feed Partials\n\n\u003ca href=\"/markata/\" class=\"wikilink\" data-title=\"markata\" data-description=\"This post is a work in progress.\" data-date=\"2024-05-30\"\u003emarkata\u003c/a\u003e pre-release 0.8.1.dev10 has been released with support for feed\npartials on [pypi](https://pypi.org/project/markata/0.8.1.dev10/).\n\n## It's now part of my blog\n\nCommit\n[aa233](https://github.com/WaylonWalker/waylonwalker.com/commit/aa23361e8606b62f7e4ca1a9305e6975fcdbc088)\nadded support for recent posts on each page to be loaded off of this partial.\n",
      "summary": "I've added htmx to my blog. It's extra bloatware that I long avoided, but it's so damn convenient.",
      "date_published": "2024-06-15T20:50:12Z",
      "date_modified": "2024-06-15T20:50:12Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "webdev",
        "markata"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/latest/",
      "url": "https://go.waylonwalker.com/latest/",
      "title": "latest",
      "content_html": "\u003cp\u003eMy latest blog post is [[ {{ markata.feeds.blogfeed.posts[0].slug }} ]].  Click the\nlink if you are not automatically redirected.\u003c/p\u003e\n\u003cmeta http-equiv=\"Refresh\" content=\"0; url=\u0026#39;{{ config.url }}{{ markata.feeds.blogfeed.posts[0].slug }}\u0026#39;\"/\u003e  \n",
      "content_text": "\nMy latest blog post is [[ {{ markata.feeds.blogfeed.posts[0].slug }} ]].  Click the\nlink if you are not automatically redirected.\n\n\u003cmeta http-equiv=\"Refresh\" content=\"0; url='{{ config.url }}{{ markata.feeds.blogfeed.posts[0].slug }}'\" /\u003e  \n",
      "summary": "My latest blog post is . Click the link if you are not automatically redirected.",
      "date_published": "2024-06-01T20:16:46Z",
      "date_modified": "2024-06-01T20:16:46Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "meta"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/thinking-about-static-sites-in-2024/",
      "url": "https://go.waylonwalker.com/thinking-about-static-sites-in-2024/",
      "title": "thinking about static sites in 2024",
      "content_html": "\u003cp\u003eactions build\u003c/p\u003e\n\u003cp\u003ek8s build\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/fastapi/\" class=\"glossary-term\" title=\"FastAPI is a modern and efficient web framework for Python, built on top of the Starlette web framework, and pydantic for data validation and serialization.\"\u003efastapi\u003c/a\u003e sqlite\u003c/p\u003e\n",
      "content_text": "\nactions build\n\nk8s build\n\nfastapi sqlite\n",
      "summary": "actions build",
      "date_published": "2024-05-30T12:57:24Z",
      "date_modified": "2024-05-30T12:57:24Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "catalytic",
        "webdev"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/monster-energy-supercross---the-official-videogame-3/",
      "url": "https://go.waylonwalker.com/steam/monster-energy-supercross---the-official-videogame-3/",
      "title": "Monster Energy Supercross - The Official Videogame 3",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/1089830/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/1089830/library_600x900.jpg\" alt=\"Monster Energy Supercross - The Official Videogame 3 box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/1089830/header.jpg\u0026#39;\"/ data-glightbox=\"description: Monster Energy Supercross - The Official Videogame 3 box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eMonster Energy Supercross - The Official Videogame 3\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 12.0%\"\u003e\n        12.0%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e6/50 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e7.0h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2024-03-21\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (6)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/07610f908f6750b05aa6dbca9c6897a0d6a575b2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/07610f908f6750b05aa6dbca9c6897a0d6a575b2.jpg\" alt=\"299.792.458 m/s\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: 299.792.458 m/s\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e299.792.458 m/s\u003c/strong\u003e\u003cbr/\u003e\n    Get a Holeshot in any game mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 30, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/082cb9569ff38dfbb3d69f9a93b5086c5809a676.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/082cb9569ff38dfbb3d69f9a93b5086c5809a676.jpg\" alt=\"Full-time Rider\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Full-time Rider\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFull-time Rider\u003c/strong\u003e\u003cbr/\u003e\n    Create a rider with a male body type\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 30, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/1e5003c5fee412cf5996fba78f756c4d90b32bb1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/1e5003c5fee412cf5996fba78f756c4d90b32bb1.jpg\" alt=\"King of Anaheim 1\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: King of Anaheim 1\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Anaheim 1\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event in Anaheim 1 in any game mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 26, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/62cef8cbed540ef03524134875374f0b72c481ae.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/62cef8cbed540ef03524134875374f0b72c481ae.jpg\" alt=\"King of Glendale\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: King of Glendale\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Glendale\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event in Glendale in any game mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: February 03, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/f967a4645de620f39ca705b4750a55ced4ab771c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/f967a4645de620f39ca705b4750a55ced4ab771c.jpg\" alt=\"Rookie of the year\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Rookie of the year\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRookie of the year\u003c/strong\u003e\u003cbr/\u003e\n    Reach first place in a Bootcamp race\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 25, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/75c00b4f76352a47c1d785981081025236535277.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/75c00b4f76352a47c1d785981081025236535277.jpg\" alt=\"Double double\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Double double\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDouble double\u003c/strong\u003e\u003cbr/\u003e\n    Get a Holeshot and victory in the same Main Event in any mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 25, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (44)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/290aa3ae5e5475af50cc98ac4033800caada6269.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/290aa3ae5e5475af50cc98ac4033800caada6269.jpg\" alt=\"Where are you from?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Where are you from?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhere are you from?\u003c/strong\u003e\u003cbr/\u003e\n    Complete a Main Event in a Custom Track created by another player\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/89fe715785e6cd36b08e6f6f9b0f80044c6fdfec.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/89fe715785e6cd36b08e6f6f9b0f80044c6fdfec.jpg\" alt=\"Track Builder\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Track Builder\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTrack Builder\u003c/strong\u003e\u003cbr/\u003e\n    Validate a total of 5 Custom Tracks\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/aff347a3d5ea92b944421b141b3acf1c93d02512.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/aff347a3d5ea92b944421b141b3acf1c93d02512.jpg\" alt=\"Money Gang\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Money Gang\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMoney Gang\u003c/strong\u003e\u003cbr/\u003e\n    Earn a total of 1,000,000 SX Credits\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/615527a1d5488467b9a73f75ca85f0e940ef639f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/615527a1d5488467b9a73f75ca85f0e940ef639f.jpg\" alt=\"15 Gold Medals\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: 15 Gold Medals\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e15 Gold Medals\u003c/strong\u003e\u003cbr/\u003e\n    Get a total of 15 Holeshot in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/f82b8ad938c0bc62a8f834657ac0efbf15e0495d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/f82b8ad938c0bc62a8f834657ac0efbf15e0495d.jpg\" alt=\"What a Pro!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: What a Pro!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhat a Pro!\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event with the Event Type option set on \u0026#34;The Real Thing\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/bc8fbde3f6a146197a751f2b28b70fa813246ece.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/bc8fbde3f6a146197a751f2b28b70fa813246ece.jpg\" alt=\"Fashion Victim\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fashion Victim\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFashion Victim\u003c/strong\u003e\u003cbr/\u003e\n    Purchase a total of 10 components for your Rider Customization\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/47d98f7fd5177950458785e2af4782d439604dd9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/47d98f7fd5177950458785e2af4782d439604dd9.jpg\" alt=\"450 Champion\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: 450 Champion\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e450 Champion\u003c/strong\u003e\u003cbr/\u003e\n    Win a 450 Championship in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/7adf522fd1850ccc6c1dde4925ed51775e7162cc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/7adf522fd1850ccc6c1dde4925ed51775e7162cc.jpg\" alt=\"250 West Champion\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: 250 West Champion\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e250 West Champion\u003c/strong\u003e\u003cbr/\u003e\n    Win a 250 West Championship in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/7f3f06db1b8deb18d99c3cab964b6fc6088aaf83.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/7f3f06db1b8deb18d99c3cab964b6fc6088aaf83.jpg\" alt=\"250 East Champion\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: 250 East Champion\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e250 East Champion\u003c/strong\u003e\u003cbr/\u003e\n    Win a 250 East Championship in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/5eed013eee8f903ebfcdb8d9eb4e589ac3140a62.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/5eed013eee8f903ebfcdb8d9eb4e589ac3140a62.jpg\" alt=\"Legends never die\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Legends never die\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLegends never die\u003c/strong\u003e\u003cbr/\u003e\n    Reach the podium in 100 Main Events in any mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/7c65bdfc912d252742e9a13fdedac0f01be2b2a2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/7c65bdfc912d252742e9a13fdedac0f01be2b2a2.jpg\" alt=\"2+2=22\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: 2+2=22\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e2+2=22\u003c/strong\u003e\u003cbr/\u003e\n    Reach Prestige level 22\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/3894024475ae1751024942bdc89f0b966021d1f6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/3894024475ae1751024942bdc89f0b966021d1f6.jpg\" alt=\"70\u0026#39;s\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: 70\u0026#39;s\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e70\u0026#39;s\u003c/strong\u003e\u003cbr/\u003e\n    Reach Prestige level 70\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/d7e1024a3999d82758ff037131e205a9ddd71ca2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/d7e1024a3999d82758ff037131e205a9ddd71ca2.jpg\" alt=\"99 Problems\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: 99 Problems\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e99 Problems\u003c/strong\u003e\u003cbr/\u003e\n    Reach Prestige level 99\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/573a27359eebeb83076d8c39192926f9ae86bb8c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/573a27359eebeb83076d8c39192926f9ae86bb8c.jpg\" alt=\"Girl Power\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Girl Power\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGirl Power\u003c/strong\u003e\u003cbr/\u003e\n    Create a rider with a female body type\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/41963523d98c25d2f7bbaf804db45aadd8976113.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/41963523d98c25d2f7bbaf804db45aadd8976113.jpg\" alt=\"Not for money, but...\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Not for money, but...\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNot for money, but...\u003c/strong\u003e\u003cbr/\u003e\n    Win a Team Day\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/71ed76f4862e1079dc9736386a8bb2ecab58ed44.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/71ed76f4862e1079dc9736386a8bb2ecab58ed44.jpg\" alt=\"A+\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A+\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA+\u003c/strong\u003e\u003cbr/\u003e\n    Meet a Contract Objective of an Official Team in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/131a663cedf09bb740d25b8e041112c12da6c113.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/131a663cedf09bb740d25b8e041112c12da6c113.jpg\" alt=\"Loyal\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Loyal\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLoyal\u003c/strong\u003e\u003cbr/\u003e\n    Complete a full 450 Season in Career mode without changing Team\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/4474808de1f292e229a16cb099986c1499a6d9aa.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/4474808de1f292e229a16cb099986c1499a6d9aa.jpg\" alt=\"Overpaid\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Overpaid\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOverpaid\u003c/strong\u003e\u003cbr/\u003e\n    In a 450 championship in Career mode, sign a contract with an Official Team\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/b101143f255885550af8eacd3a42d16c752ff50b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/b101143f255885550af8eacd3a42d16c752ff50b.jpg\" alt=\"Warm Up\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Warm Up\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWarm Up\u003c/strong\u003e\u003cbr/\u003e\n    Pass at least 10 trials of the Challenge mode with any result\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/41d11ee6543b05193141f9d681322cae2a2886c2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/41d11ee6543b05193141f9d681322cae2a2886c2.jpg\" alt=\"To infinity and beyond\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: To infinity and beyond\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTo infinity and beyond\u003c/strong\u003e\u003cbr/\u003e\n    Complete all of the trials of the Challenge mode with the top result\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/b6e345acf6cd82df5b7046a0c7150f2dabf3a6bc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/b6e345acf6cd82df5b7046a0c7150f2dabf3a6bc.jpg\" alt=\"Easy rider\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Easy rider\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEasy rider\u003c/strong\u003e\u003cbr/\u003e\n    Ride 100 miles (160 km) in offline Free Roaming in the Compound\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/848328420fdf10845392970d57ecb18c8cd51ffe.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/848328420fdf10845392970d57ecb18c8cd51ffe.jpg\" alt=\"King of Anaheim 2\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: King of Anaheim 2\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Anaheim 2\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event in Anaheim 2 in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/ba36e589040bf3bf39c42e233ae90f51aa01eb23.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/ba36e589040bf3bf39c42e233ae90f51aa01eb23.jpg\" alt=\"King of Houston\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: King of Houston\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Houston\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event in Houston in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/b1fc60a55ee32e46eb98aaab8cc039a2a3b94368.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/b1fc60a55ee32e46eb98aaab8cc039a2a3b94368.jpg\" alt=\"King of Oakland\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: King of Oakland\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Oakland\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event in Oakland in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/56c4e92bd58396c3332da5d973610a3f4aa3ab1c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/56c4e92bd58396c3332da5d973610a3f4aa3ab1c.jpg\" alt=\"King of San Diego\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: King of San Diego\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of San Diego\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event in San Diego in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/4d480ab758d780632ddccc4d66734dd3844039e6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/4d480ab758d780632ddccc4d66734dd3844039e6.jpg\" alt=\"King of Arlington\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: King of Arlington\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Arlington\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event in Arlington in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/4cad21a5306a005c35afa8b619db9f7aa5ae1917.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/4cad21a5306a005c35afa8b619db9f7aa5ae1917.jpg\" alt=\"King of Detroit\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: King of Detroit\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Detroit\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event in Detroit in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/54f657e9571143fe365f4d66e28f7c98f0817100.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/54f657e9571143fe365f4d66e28f7c98f0817100.jpg\" alt=\"King of Atlanta\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: King of Atlanta\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Atlanta\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event in Atlanta in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/4ea7291c8bfbc6cdb00c10bcab826936e32d9b42.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/4ea7291c8bfbc6cdb00c10bcab826936e32d9b42.jpg\" alt=\"King of Daytona\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: King of Daytona\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Daytona\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event in Daytona in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/6030ea2d877a73ead0795e6cb53de5e8ff8fe917.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/6030ea2d877a73ead0795e6cb53de5e8ff8fe917.jpg\" alt=\"King of Nashville\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: King of Nashville\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Nashville\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event in Nashville in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/d95841971b9316b2a1bb9ae0c7220c72197ebd55.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/d95841971b9316b2a1bb9ae0c7220c72197ebd55.jpg\" alt=\"King of Indianapolis\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: King of Indianapolis\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Indianapolis\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event in Indianapolis in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/6d27692737c6bb0c38454eccb28faf1562c6c76f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/6d27692737c6bb0c38454eccb28faf1562c6c76f.jpg\" alt=\"King of Seattle\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: King of Seattle\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Seattle\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event in Seattle in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/81f5f39533bfdafe1d2a3e20f4704ad60070b430.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/81f5f39533bfdafe1d2a3e20f4704ad60070b430.jpg\" alt=\"King of Minneapolis\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: King of Minneapolis\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Minneapolis\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event in Minneapolis in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/0fc8d29acccc952646a34f57dc3bcd3fdc2f1158.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/0fc8d29acccc952646a34f57dc3bcd3fdc2f1158.jpg\" alt=\"King of Denver\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: King of Denver\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Denver\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event in Denver in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/af7b002a2b8fe29fda01e045629ba44669fe93da.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/af7b002a2b8fe29fda01e045629ba44669fe93da.jpg\" alt=\"King of East Rutherford\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: King of East Rutherford\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of East Rutherford\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event in East Rutherford in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/acad1ab46b9df5aa882d0831ce831aedd2703ebd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/acad1ab46b9df5aa882d0831ce831aedd2703ebd.jpg\" alt=\"King of Las Vegas\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: King of Las Vegas\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Las Vegas\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event in Las Vegas in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/9b99a8f614b33e9f0fe6f3a0be84301d7350394a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/9b99a8f614b33e9f0fe6f3a0be84301d7350394a.jpg\" alt=\"Hype Beast\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hype Beast\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHype Beast\u003c/strong\u003e\u003cbr/\u003e\n    Unlock at least 3 Presets from different Official Teams in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/2ff3e6976c6bafa2fec2a6d9373968eb5ce87678.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/2ff3e6976c6bafa2fec2a6d9373968eb5ce87678.jpg\" alt=\"Hairsplitter\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hairsplitter\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHairsplitter\u003c/strong\u003e\u003cbr/\u003e\n    Save a custom Bike Setup\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/cffd31df9c38deca97a52ec69f69163664c2e366.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/cffd31df9c38deca97a52ec69f69163664c2e366.jpg\" alt=\"Stylist\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Stylist\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStylist\u003c/strong\u003e\u003cbr/\u003e\n    Change the colour of the nickname on the suit of your custom rider\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/49b03d910d77f7af300c9e542a23fac93d5d3faa.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/49b03d910d77f7af300c9e542a23fac93d5d3faa.jpg\" alt=\"This is just the beginning\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: This is just the beginning\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThis is just the beginning\u003c/strong\u003e\u003cbr/\u003e\n    Complete an Official Championship of any class in Championship mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/1cae6e4caa99307e32d46b2e66681bfc497e1d07.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/1cae6e4caa99307e32d46b2e66681bfc497e1d07.jpg\" alt=\"\" i'm=\"\" no=\"\" superman\"\"=\"\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: \"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e\u0026#34;I\u0026#39;m No Superman\u0026#34;\u003c/strong\u003e\u003cbr/\u003e\n    Complete a total of at least 100 scrubs\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/25316410c489c81cfcab95613df5fe1be7e15bcd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/25316410c489c81cfcab95613df5fe1be7e15bcd.jpg\" alt=\"Eat my dust\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Eat my dust\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEat my dust\u003c/strong\u003e\u003cbr/\u003e\n    Beat the time of the Ghost of another player in Time Attack mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/a6acd8433d8f6d96ed0847bbb9d8acdf1eb4e32e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/a6acd8433d8f6d96ed0847bbb9d8acdf1eb4e32e.jpg\" alt=\"Only 3 left\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Only 3 left\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOnly 3 left\u003c/strong\u003e\u003cbr/\u003e\n    Complete at least two SX Challenges of the SX Profile\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/409f0c002bee4eed81be199abad0492c73151acb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/409f0c002bee4eed81be199abad0492c73151acb.jpg\" alt=\"Not today!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Not today!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNot today!\u003c/strong\u003e\u003cbr/\u003e\n    Reach at least the 4th position in a Last Chance Qualifier and access the Main Event\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/1089830/library_600x900.jpg\" alt=\"Monster Energy Supercross - The Official Videogame 3 box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/1089830/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eMonster Energy Supercross - The Official Videogame 3\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 12.0%\"\u003e\n        12.0%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e6/50 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e7.0h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2024-03-21\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (6)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/07610f908f6750b05aa6dbca9c6897a0d6a575b2.jpg\" alt=\"299.792.458 m/s\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e299.792.458 m/s\u003c/strong\u003e\u003cbr\u003e\n    Get a Holeshot in any game mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 30, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/082cb9569ff38dfbb3d69f9a93b5086c5809a676.jpg\" alt=\"Full-time Rider\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFull-time Rider\u003c/strong\u003e\u003cbr\u003e\n    Create a rider with a male body type\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 30, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/1e5003c5fee412cf5996fba78f756c4d90b32bb1.jpg\" alt=\"King of Anaheim 1\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Anaheim 1\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event in Anaheim 1 in any game mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 26, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/62cef8cbed540ef03524134875374f0b72c481ae.jpg\" alt=\"King of Glendale\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Glendale\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event in Glendale in any game mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: February 03, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/f967a4645de620f39ca705b4750a55ced4ab771c.jpg\" alt=\"Rookie of the year\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRookie of the year\u003c/strong\u003e\u003cbr\u003e\n    Reach first place in a Bootcamp race\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 25, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/75c00b4f76352a47c1d785981081025236535277.jpg\" alt=\"Double double\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDouble double\u003c/strong\u003e\u003cbr\u003e\n    Get a Holeshot and victory in the same Main Event in any mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 25, 2024\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (44)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/290aa3ae5e5475af50cc98ac4033800caada6269.jpg\" alt=\"Where are you from?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhere are you from?\u003c/strong\u003e\u003cbr\u003e\n    Complete a Main Event in a Custom Track created by another player\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/89fe715785e6cd36b08e6f6f9b0f80044c6fdfec.jpg\" alt=\"Track Builder\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTrack Builder\u003c/strong\u003e\u003cbr\u003e\n    Validate a total of 5 Custom Tracks\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/aff347a3d5ea92b944421b141b3acf1c93d02512.jpg\" alt=\"Money Gang\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMoney Gang\u003c/strong\u003e\u003cbr\u003e\n    Earn a total of 1,000,000 SX Credits\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/615527a1d5488467b9a73f75ca85f0e940ef639f.jpg\" alt=\"15 Gold Medals\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e15 Gold Medals\u003c/strong\u003e\u003cbr\u003e\n    Get a total of 15 Holeshot in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/f82b8ad938c0bc62a8f834657ac0efbf15e0495d.jpg\" alt=\"What a Pro!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhat a Pro!\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event with the Event Type option set on \"The Real Thing\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/bc8fbde3f6a146197a751f2b28b70fa813246ece.jpg\" alt=\"Fashion Victim\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFashion Victim\u003c/strong\u003e\u003cbr\u003e\n    Purchase a total of 10 components for your Rider Customization\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/47d98f7fd5177950458785e2af4782d439604dd9.jpg\" alt=\"450 Champion\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e450 Champion\u003c/strong\u003e\u003cbr\u003e\n    Win a 450 Championship in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/7adf522fd1850ccc6c1dde4925ed51775e7162cc.jpg\" alt=\"250 West Champion\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e250 West Champion\u003c/strong\u003e\u003cbr\u003e\n    Win a 250 West Championship in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/7f3f06db1b8deb18d99c3cab964b6fc6088aaf83.jpg\" alt=\"250 East Champion\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e250 East Champion\u003c/strong\u003e\u003cbr\u003e\n    Win a 250 East Championship in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/5eed013eee8f903ebfcdb8d9eb4e589ac3140a62.jpg\" alt=\"Legends never die\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLegends never die\u003c/strong\u003e\u003cbr\u003e\n    Reach the podium in 100 Main Events in any mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/7c65bdfc912d252742e9a13fdedac0f01be2b2a2.jpg\" alt=\"2+2=22\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e2+2=22\u003c/strong\u003e\u003cbr\u003e\n    Reach Prestige level 22\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/3894024475ae1751024942bdc89f0b966021d1f6.jpg\" alt=\"70's\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e70's\u003c/strong\u003e\u003cbr\u003e\n    Reach Prestige level 70\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/d7e1024a3999d82758ff037131e205a9ddd71ca2.jpg\" alt=\"99 Problems\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e99 Problems\u003c/strong\u003e\u003cbr\u003e\n    Reach Prestige level 99\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/573a27359eebeb83076d8c39192926f9ae86bb8c.jpg\" alt=\"Girl Power\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGirl Power\u003c/strong\u003e\u003cbr\u003e\n    Create a rider with a female body type\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/41963523d98c25d2f7bbaf804db45aadd8976113.jpg\" alt=\"Not for money, but...\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNot for money, but...\u003c/strong\u003e\u003cbr\u003e\n    Win a Team Day\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/71ed76f4862e1079dc9736386a8bb2ecab58ed44.jpg\" alt=\"A+\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA+\u003c/strong\u003e\u003cbr\u003e\n    Meet a Contract Objective of an Official Team in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/131a663cedf09bb740d25b8e041112c12da6c113.jpg\" alt=\"Loyal\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLoyal\u003c/strong\u003e\u003cbr\u003e\n    Complete a full 450 Season in Career mode without changing Team\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/4474808de1f292e229a16cb099986c1499a6d9aa.jpg\" alt=\"Overpaid\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOverpaid\u003c/strong\u003e\u003cbr\u003e\n    In a 450 championship in Career mode, sign a contract with an Official Team\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/b101143f255885550af8eacd3a42d16c752ff50b.jpg\" alt=\"Warm Up\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWarm Up\u003c/strong\u003e\u003cbr\u003e\n    Pass at least 10 trials of the Challenge mode with any result\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/41d11ee6543b05193141f9d681322cae2a2886c2.jpg\" alt=\"To infinity and beyond\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTo infinity and beyond\u003c/strong\u003e\u003cbr\u003e\n    Complete all of the trials of the Challenge mode with the top result\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/b6e345acf6cd82df5b7046a0c7150f2dabf3a6bc.jpg\" alt=\"Easy rider\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEasy rider\u003c/strong\u003e\u003cbr\u003e\n    Ride 100 miles (160 km) in offline Free Roaming in the Compound\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/848328420fdf10845392970d57ecb18c8cd51ffe.jpg\" alt=\"King of Anaheim 2\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Anaheim 2\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event in Anaheim 2 in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/ba36e589040bf3bf39c42e233ae90f51aa01eb23.jpg\" alt=\"King of Houston\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Houston\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event in Houston in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/b1fc60a55ee32e46eb98aaab8cc039a2a3b94368.jpg\" alt=\"King of Oakland\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Oakland\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event in Oakland in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/56c4e92bd58396c3332da5d973610a3f4aa3ab1c.jpg\" alt=\"King of San Diego\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of San Diego\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event in San Diego in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/4d480ab758d780632ddccc4d66734dd3844039e6.jpg\" alt=\"King of Arlington\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Arlington\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event in Arlington in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/4cad21a5306a005c35afa8b619db9f7aa5ae1917.jpg\" alt=\"King of Detroit\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Detroit\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event in Detroit in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/54f657e9571143fe365f4d66e28f7c98f0817100.jpg\" alt=\"King of Atlanta\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Atlanta\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event in Atlanta in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/4ea7291c8bfbc6cdb00c10bcab826936e32d9b42.jpg\" alt=\"King of Daytona\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Daytona\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event in Daytona in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/6030ea2d877a73ead0795e6cb53de5e8ff8fe917.jpg\" alt=\"King of Nashville\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Nashville\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event in Nashville in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/d95841971b9316b2a1bb9ae0c7220c72197ebd55.jpg\" alt=\"King of Indianapolis\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Indianapolis\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event in Indianapolis in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/6d27692737c6bb0c38454eccb28faf1562c6c76f.jpg\" alt=\"King of Seattle\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Seattle\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event in Seattle in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/81f5f39533bfdafe1d2a3e20f4704ad60070b430.jpg\" alt=\"King of Minneapolis\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Minneapolis\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event in Minneapolis in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/0fc8d29acccc952646a34f57dc3bcd3fdc2f1158.jpg\" alt=\"King of Denver\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Denver\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event in Denver in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/af7b002a2b8fe29fda01e045629ba44669fe93da.jpg\" alt=\"King of East Rutherford\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of East Rutherford\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event in East Rutherford in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/acad1ab46b9df5aa882d0831ce831aedd2703ebd.jpg\" alt=\"King of Las Vegas\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Las Vegas\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event in Las Vegas in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/9b99a8f614b33e9f0fe6f3a0be84301d7350394a.jpg\" alt=\"Hype Beast\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHype Beast\u003c/strong\u003e\u003cbr\u003e\n    Unlock at least 3 Presets from different Official Teams in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/2ff3e6976c6bafa2fec2a6d9373968eb5ce87678.jpg\" alt=\"Hairsplitter\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHairsplitter\u003c/strong\u003e\u003cbr\u003e\n    Save a custom Bike Setup\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/cffd31df9c38deca97a52ec69f69163664c2e366.jpg\" alt=\"Stylist\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStylist\u003c/strong\u003e\u003cbr\u003e\n    Change the colour of the nickname on the suit of your custom rider\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/49b03d910d77f7af300c9e542a23fac93d5d3faa.jpg\" alt=\"This is just the beginning\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThis is just the beginning\u003c/strong\u003e\u003cbr\u003e\n    Complete an Official Championship of any class in Championship mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/1cae6e4caa99307e32d46b2e66681bfc497e1d07.jpg\" alt=\"\"I'm No Superman\"\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e\"I'm No Superman\"\u003c/strong\u003e\u003cbr\u003e\n    Complete a total of at least 100 scrubs\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/25316410c489c81cfcab95613df5fe1be7e15bcd.jpg\" alt=\"Eat my dust\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEat my dust\u003c/strong\u003e\u003cbr\u003e\n    Beat the time of the Ghost of another player in Time Attack mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/a6acd8433d8f6d96ed0847bbb9d8acdf1eb4e32e.jpg\" alt=\"Only 3 left\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOnly 3 left\u003c/strong\u003e\u003cbr\u003e\n    Complete at least two SX Challenges of the SX Profile\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1089830/409f0c002bee4eed81be199abad0492c73151acb.jpg\" alt=\"Not today!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNot today!\u003c/strong\u003e\u003cbr\u003e\n    Reach at least the 4th position in a Last Chance Qualifier and access the Main Event\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Monster Energy Supercross - The Official Videogame 3 - 12.0% complete with 6/50 achievements unlocked.",
      "date_published": "2024-03-21T00:00:00Z",
      "date_modified": "2024-03-21T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "monster-energy-supercross---the-official-videogame-3"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/tailwind-markdown/",
      "url": "https://go.waylonwalker.com/tailwind-markdown/",
      "title": "tailwind and markdown",
      "content_html": "\u003cp\u003eThis post is a bit of an experiment to see what I can do. Lets start with a\nblock of pink text.  I build my blog with my own static site generator called \u003ca href=\"/markata/\" class=\"wikilink\" data-title=\"markata\" data-description=\"This post is a work in progress.\" data-date=\"2024-05-30\" data-preview=\"This post is a work in progress.\"\u003emarkata\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/tailwind-and-jinja/\" class=\"wikilink\" data-title=\"Setup Tailwind for Jinja\" data-description=\"I\u0026#39;ve recently given tailwindcss a second chance and am really liking it. Here is how I set it up for my python based projects.\" data-date=\"2023-09-17\" data-preview=\"I\u0026#39;ve recently given tailwindcss a second chance and am really liking it. Here is how I set it up for my python based projects.\"\u003eSetup Tailwind for Jinja\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/still-loving-tailwind/\" class=\"wikilink\" data-title=\"Still Loving Tailwind\" data-description=\"I\u0026#39;ve been using tailwind for a few months now and I can still say I\u0026#39;m loving it. I\u0026#39;ve been using it to create some rapid prototypes that may or may not ever...\" data-date=\"2023-11-30\" data-preview=\"I\u0026#39;ve been using tailwind for a few months now and I can still say I\u0026#39;m loving it. I\u0026#39;ve been using it to create some rapid prototypes that may or may not ever...\"\u003eStill Loving Tailwind\u003c/a\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e{.text-pink-500}\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eThis text should be pink\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eThis text should be not pink\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003chr/\u003e\n\u003cp class=\"text-pink-500\"\u003e\u003c/p\u003e\n\u003cp\u003eThis text should be pink\u003c/p\u003e\n\u003cp\u003eThis text should be not pink\u003c/p\u003e\n\u003chr/\u003e\n\u003cp\u003eNow will it work with bulleted lists\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e{.text-pink-500}\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eThis block will be pink\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e{.text-pink-500}\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e*\u003c/span\u003e Lorem ipsum dolor sit amet, officia excepteur ex fugiat reprehenderit enim\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e*\u003c/span\u003e labore culpa sint ad nisi Lorem pariatur mollit ex esse exercitation amet. Nisi\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e*\u003c/span\u003e anim cupidatat excepteur officia. Reprehenderit nostrud nostrud ipsum Lorem est\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eThis block will not be pink.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e*\u003c/span\u003e Lorem ipsum dolor sit amet, officia excepteur ex fugiat reprehenderit enim\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e*\u003c/span\u003e labore culpa sint ad nisi Lorem pariatur mollit ex esse exercitation amet. Nisi\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e*\u003c/span\u003e anim cupidatat excepteur officia. Reprehenderit nostrud nostrud ipsum Lorem est\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003chr/\u003e\n\u003cp class=\"text-pink-500\"\u003e\u003c/p\u003e\n\u003cp class=\"text-pink-500\"\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLorem ipsum dolor sit amet, officia excepteur ex fugiat reprehenderit enim\u003c/li\u003e\n\u003cli\u003elabore culpa sint ad nisi Lorem pariatur mollit ex esse exercitation amet. Nisi\u003c/li\u003e\n\u003cli\u003eanim cupidatat excepteur officia. Reprehenderit nostrud nostrud ipsum Lorem est\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThis block will not be pink.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLorem ipsum dolor sit amet, officia excepteur ex fugiat reprehenderit enim\u003c/li\u003e\n\u003cli\u003elabore culpa sint ad nisi Lorem pariatur mollit ex esse exercitation amet. Nisi\u003c/li\u003e\n\u003cli\u003eanim cupidatat excepteur officia. Reprehenderit nostrud nostrud ipsum Lorem est\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr/\u003e\n\u003ch2 id=\"inline-classes\"\u003eInline classes \u003ca href=\"#inline-classes\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eNow within a [paragraph]{.text-pink-500} can we add [inline classes]{.text-pink-500 .font-bold .underline}.\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp class=\"text-pink-500 font-bold underline\"\u003eNow within a [paragraph]{.text-pink-500} can we add [inline classes]\u003c/p\u003e\n\u003ch2 class=\"text-green-500 font-bold underline\" id=\"pros\"\u003ePros \u003ca href=\"#pros\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003elorem\u003c/li\u003e\n\u003cli\u003eipsum\u003c/li\u003e\n\u003cli\u003edolor\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"text-red-500 font-bold line-through decoration-white\" id=\"cons\"\u003e[Cons] \u003ca href=\"#cons\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003elorem\u003c/li\u003e\n\u003cli\u003eipsum\u003c/li\u003e\n\u003cli\u003edolor\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"classes-on-images\"\u003eClasses on images \u003ca href=\"#classes-on-images\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAttrs does not like ‘/’ characters in its classes, so to use some tailwind\nclasses we must make new classes in our tailwind input css.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ecinematic\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"err\"\u003e@apply\u003c/span\u003e \u003cspan class=\"err\"\u003easpect-[2.39/1]\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eGiven the following markdown\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e![\u003cspan class=\"nt\"\u003escreenshot-2025-01-31T14-50-00-094Z.png\u003c/span\u003e](\u003cspan class=\"na\"\u003ehttps://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png\u003c/span\u003e){.aspect-[2.39/1]}\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e![\u003cspan class=\"nt\"\u003escreenshot-2025-01-31T14-50-00-094Z.png\u003c/span\u003e](\u003cspan class=\"na\"\u003ehttps://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png\u003c/span\u003e){.cinematic}\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e{.cinematic}\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e![\u003cspan class=\"nt\"\u003escreenshot-2025-01-31T14-50-00-094Z.png\u003c/span\u003e](\u003cspan class=\"na\"\u003ehttps://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png\u003c/span\u003e)\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eWe get the following output.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png\" alt=\"screenshot-2025-01-31T14-50-00-094Z.png\"/ data-glightbox=\"description: screenshot-2025-01-31T14-50-00-094Z.png\"\u003e\u003c/a\u003e{.aspect-[2.39/1]}\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png\" alt=\"screenshot-2025-01-31T14-50-00-094Z.png\" class=\"cinematic glightbox\"/ data-glightbox=\"description: screenshot-2025-01-31T14-50-00-094Z.png\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp class=\"cinematic\"\u003e\u003ca href=\"https://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png\" alt=\"screenshot-2025-01-31T14-50-00-094Z.png\"/ data-glightbox=\"description: screenshot-2025-01-31T14-50-00-094Z.png\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eBoth the block and inline version of `.cinematic` works, but `.aspect-[2.39/1]` does not, it turns into text after the image.\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\nThis post is a bit of an experiment to see what I can do. Lets start with a\nblock of pink text.  I build my blog with my own static site generator called \u003ca href=\"/markata/\" class=\"wikilink\" data-title=\"markata\" data-description=\"This post is a work in progress.\" data-date=\"2024-05-30\"\u003emarkata\u003c/a\u003e\n\n\u003ca href=\"/tailwind-and-jinja/\" class=\"wikilink\" data-title=\"Setup Tailwind for Jinja\" data-description=\"I\u0026#39;ve recently given tailwindcss a second chance and am really liking it. Here is how I set it up for my python based projects.\" data-date=\"2023-09-17\"\u003eSetup Tailwind for Jinja\u003c/a\u003e\n\n\u003ca href=\"/still-loving-tailwind/\" class=\"wikilink\" data-title=\"Still Loving Tailwind\" data-description=\"I\u0026#39;ve been using tailwind for a few months now and I can still say I\u0026#39;m loving it. I\u0026#39;ve been using it to create some rapid prototypes that may or may not ever...\" data-date=\"2023-11-30\"\u003eStill Loving Tailwind\u003c/a\u003e\n\n``` markdown\n{.text-pink-500}\n\nThis text should be pink\n\nThis text should be not pink\n```\n\n---\n\n{.text-pink-500}\n\nThis text should be pink\n\nThis text should be not pink\n\n---\n\nNow will it work with bulleted lists\n\n``` markdown\n{.text-pink-500}\nThis block will be pink\n\n{.text-pink-500}\n\n* Lorem ipsum dolor sit amet, officia excepteur ex fugiat reprehenderit enim\n* labore culpa sint ad nisi Lorem pariatur mollit ex esse exercitation amet. Nisi\n* anim cupidatat excepteur officia. Reprehenderit nostrud nostrud ipsum Lorem est\n\nThis block will not be pink.\n\n* Lorem ipsum dolor sit amet, officia excepteur ex fugiat reprehenderit enim\n* labore culpa sint ad nisi Lorem pariatur mollit ex esse exercitation amet. Nisi\n* anim cupidatat excepteur officia. Reprehenderit nostrud nostrud ipsum Lorem est\n\n```\n\n---\n\n{.text-pink-500}\nThis block will be pink\n\n{.text-pink-500}\n\n* Lorem ipsum dolor sit amet, officia excepteur ex fugiat reprehenderit enim\n* labore culpa sint ad nisi Lorem pariatur mollit ex esse exercitation amet. Nisi\n* anim cupidatat excepteur officia. Reprehenderit nostrud nostrud ipsum Lorem est\n\nThis block will not be pink.\n\n* Lorem ipsum dolor sit amet, officia excepteur ex fugiat reprehenderit enim\n* labore culpa sint ad nisi Lorem pariatur mollit ex esse exercitation amet. Nisi\n* anim cupidatat excepteur officia. Reprehenderit nostrud nostrud ipsum Lorem est\n\n---\n\n## Inline classes\n\n``` markdown\nNow within a [paragraph]{.text-pink-500} can we add [inline classes]{.text-pink-500 .font-bold .underline}.\n```\n\nNow within a [paragraph]{.text-pink-500} can we add [inline classes]{.text-pink-500 .font-bold .underline}.\n\n## Pros {.text-green-500 .font-bold .underline}\n\n* lorem\n* ipsum\n* dolor\n\n## [Cons]{.text-red-500 .font-bold .line-through .decoration-white}\n\n* lorem\n* ipsum\n* dolor\n\n## Classes on images\n\nAttrs does not like '/' characters in its classes, so to use some tailwind\nclasses we must make new classes in our tailwind input css.\n\n``` css\n.cinematic {\n  @apply aspect-[2.39/1];\n}\n```\n\nGiven the following markdown\n\n``` markdown\n![screenshot-2025-01-31T14-50-00-094Z.png](https://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png){.aspect-[2.39/1]}\n\n![screenshot-2025-01-31T14-50-00-094Z.png](https://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png){.cinematic}\n\n{.cinematic}\n![screenshot-2025-01-31T14-50-00-094Z.png](https://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png)\n```\n\nWe get the following output.\n\n![screenshot-2025-01-31T14-50-00-094Z.png](https://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png){.aspect-[2.39/1]}\n\n![screenshot-2025-01-31T14-50-00-094Z.png](https://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png){.cinematic}\n\n{.cinematic}\n![screenshot-2025-01-31T14-50-00-094Z.png](https://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png)\n\n!!! Note\n    Both the block and inline version of `.cinematic` works, but `.aspect-[2.39/1]` does not, it turns into text after the image.\n",
      "summary": "This post is a bit of an experiment to see what I can do. Lets start with a block of pink text. I build my blog with my own static site generator called markata",
      "date_published": "2024-02-01T08:17:03Z",
      "date_modified": "2024-02-01T08:17:03Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "webdev"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/powerwash-simulator/",
      "url": "https://go.waylonwalker.com/steam/powerwash-simulator/",
      "title": "PowerWash Simulator",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/1290000/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/1290000/library_600x900.jpg\" alt=\"PowerWash Simulator box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/1290000/header.jpg\u0026#39;\"/ data-glightbox=\"description: PowerWash Simulator box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003ePowerWash Simulator\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 5.0%\"\u003e\n        5.0%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e5/100 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e65.5h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2024-01-27\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (5)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/9575c00c8c7dc69f36852a0d8da709ee2ddb93fa.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/9575c00c8c7dc69f36852a0d8da709ee2ddb93fa.jpg\" alt=\"Soap Connoisseur\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Soap Connoisseur\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSoap Connoisseur\u003c/strong\u003e\u003cbr/\u003e\n    Own all cleaning liquids at the same time\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/effa8503af67fb597053ba0a2eee06cf1f02e070.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/effa8503af67fb597053ba0a2eee06cf1f02e070.jpg\" alt=\"Fully Equipped\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fully Equipped\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFully Equipped\u003c/strong\u003e\u003cbr/\u003e\n    Own the Prime Vista 1500 and three of its attachments\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/a845509eca4159e925e3f6bd301d4c440874c53b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/a845509eca4159e925e3f6bd301d4c440874c53b.jpg\" alt=\"Fashionista\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fashionista\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFashionista\u003c/strong\u003e\u003cbr/\u003e\n    Equip a new outfit, gloves and washer modification at the same time\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/1b0f079c24368790e791389091b08d334883e38e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/1b0f079c24368790e791389091b08d334883e38e.jpg\" alt=\"Starting Out\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Starting Out\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStarting Out\u003c/strong\u003e\u003cbr/\u003e\n    Earn 5 Stars in Career Mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/1c90da76682b092ca6351b4f33708d0a025e083e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/1c90da76682b092ca6351b4f33708d0a025e083e.jpg\" alt=\"Going for Gold\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Going for Gold\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGoing for Gold\u003c/strong\u003e\u003cbr/\u003e\n    Get one gold medal in Challenge Mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: July 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (95)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/f45056e988cd613ccaa7cdab615542612a081601.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/f45056e988cd613ccaa7cdab615542612a081601.jpg\" alt=\"Urban Xpert\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Urban Xpert\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUrban Xpert\u003c/strong\u003e\u003cbr/\u003e\n    Own the UrbanX U2 and four of its attachments\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/701f6572c9cdb41830482e840f66d33f2c9e7c65.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/701f6572c9cdb41830482e840f66d33f2c9e7c65.jpg\" alt=\"Heavy Hitter\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Heavy Hitter\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHeavy Hitter\u003c/strong\u003e\u003cbr/\u003e\n    Own the Prime Vista 3000 and five of its attachments\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/b59b80bcf056ec8500de2a65470c9cff37255364.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/b59b80bcf056ec8500de2a65470c9cff37255364.jpg\" alt=\"Unlimited Powerwash\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Unlimited Powerwash\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUnlimited Powerwash\u003c/strong\u003e\u003cbr/\u003e\n    Own the Prime Vista PRO and six of its attachments\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/a4d49d57f63767ecf33d68f7732010359b56b65b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/a4d49d57f63767ecf33d68f7732010359b56b65b.jpg\" alt=\"Powerful Pressure Purist\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Powerful Pressure Purist\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePowerful Pressure Purist\u003c/strong\u003e\u003cbr/\u003e\n    Completely clean the Van using only the red nozzle\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/7824634f6fab5874988e1a0b96fb0d59981e17f2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/7824634f6fab5874988e1a0b96fb0d59981e17f2.jpg\" alt=\"First Steps\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: First Steps\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFirst Steps\u003c/strong\u003e\u003cbr/\u003e\n    In the Back Garden, complete all 12 stepping stones first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/fccbc466154f0c41d4ba698ac41248e9d1d21447.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/fccbc466154f0c41d4ba698ac41248e9d1d21447.jpg\" alt=\"StegoScore\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: StegoScore\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStegoScore\u003c/strong\u003e\u003cbr/\u003e\n    In the Playground, roll the football up the stegoslide\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/3a2099d3c92e2c0d7dec64d895f11ba3557f986a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/3a2099d3c92e2c0d7dec64d895f11ba3557f986a.jpg\" alt=\"Gutted\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Gutted\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGutted\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Bungalow gutters last\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/2af8ba29410564ba455038ec3a8fada695ff50ce.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/2af8ba29410564ba455038ec3a8fada695ff50ce.jpg\" alt=\"Pave the Way\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Pave the Way\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePave the Way\u003c/strong\u003e\u003cbr/\u003e\n    In the Detached House, complete the Pathway, Driveway and Driveway Edges first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/f948a1aeb9340acd0b683333e4ac00533ad664c6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/f948a1aeb9340acd0b683333e4ac00533ad664c6.jpg\" alt=\"Sole Task\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sole Task\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSole Task\u003c/strong\u003e\u003cbr/\u003e\n    Complete the sole of the Shoe House last\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/d191246727e0e2bae3c40874336e6b64320b8d70.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/d191246727e0e2bae3c40874336e6b64320b8d70.jpg\" alt=\"Tall Order\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tall Order\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTall Order\u003c/strong\u003e\u003cbr/\u003e\n    Completely clean the Fire Station job without standing on the scaffolding\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/b32919288179f55d30b4ce8cfd459df63cf77fb0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/b32919288179f55d30b4ce8cfd459df63cf77fb0.jpg\" alt=\"Watermelon Shot\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Watermelon Shot\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWatermelon Shot\u003c/strong\u003e\u003cbr/\u003e\n    In the Skatepark, push the ball out of the bowl\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/91bca452f4663c36025012107b34a525ca24133c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/91bca452f4663c36025012107b34a525ca24133c.jpg\" alt=\"I Can See Clearly Now\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: I Can See Clearly Now\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI Can See Clearly Now\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Fire Truck windows, windscreen and wing mirrors first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/f80ad87ad185c2057f6ae4e16a0b9d89786813e8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/f80ad87ad185c2057f6ae4e16a0b9d89786813e8.jpg\" alt=\"Impeccable Balance\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Impeccable Balance\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eImpeccable Balance\u003c/strong\u003e\u003cbr/\u003e\n    Stand on the Penny Farthing for 10 seconds\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/e1f6e61c4bd06571c541df7b66707384c50eae82.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/e1f6e61c4bd06571c541df7b66707384c50eae82.jpg\" alt=\"Lantern Hunter\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Lantern Hunter\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLantern Hunter\u003c/strong\u003e\u003cbr/\u003e\n    In the Treehouse, complete all of the lanterns first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/ab837e502c9885bd8ee0fbccddf3a480c1ce3b40.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/ab837e502c9885bd8ee0fbccddf3a480c1ce3b40.jpg\" alt=\"Live by the Blade\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Live by the Blade\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLive by the Blade\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Fire Helicopter blades first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/22096fb777f4dea7916064e4705ef0daf54f6486.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/22096fb777f4dea7916064e4705ef0daf54f6486.jpg\" alt=\"Merrily Go Round\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Merrily Go Round\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMerrily Go Round\u003c/strong\u003e\u003cbr/\u003e\n    Completely clean the Carousel without turning it off\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/3dbbb00c7070d1bd701f733f3fe5bd495e8ae32c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/3dbbb00c7070d1bd701f733f3fe5bd495e8ae32c.jpg\" alt=\"Gnome Sweet Gnome\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Gnome Sweet Gnome\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGnome Sweet Gnome\u003c/strong\u003e\u003cbr/\u003e\n    In the Temple, ensure the gnome is on the tower roof once the job is complete\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/2d1678d4bd1e9ec504df1a787634ecf97b8d5193.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/2d1678d4bd1e9ec504df1a787634ecf97b8d5193.jpg\" alt=\"Delaying the Inevitable\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Delaying the Inevitable\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDelaying the Inevitable\u003c/strong\u003e\u003cbr/\u003e\n    In the Washroom, complete the toilets, toilet seats and toilet lids last\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/e183c255d101324307c6f636529e5054c73cb2d8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/e183c255d101324307c6f636529e5054c73cb2d8.jpg\" alt=\"Shine Bright\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Shine Bright\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShine Bright\u003c/strong\u003e\u003cbr/\u003e\n    On the Helter Skelter, complete the objects that have lightbulbs before anything else\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/c04a684d5540c8dbb91ea9a654c440701e11a4b7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/c04a684d5540c8dbb91ea9a654c440701e11a4b7.jpg\" alt=\"Suspicious Modifications\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Suspicious Modifications\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSuspicious Modifications\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Private Jet laser and anti-gravity parts first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/4fea4c1b3a0bda4e117894b9e866a4a43ee24279.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/4fea4c1b3a0bda4e117894b9e866a4a43ee24279.jpg\" alt=\"Tyresome\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tyresome\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTyresome\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Monster Truck tyres first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/98e0707bf39d9e30633d74d046931c4cfdfa6fd1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/98e0707bf39d9e30633d74d046931c4cfdfa6fd1.jpg\" alt=\"Best Buds\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Best Buds\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBest Buds\u003c/strong\u003e\u003cbr/\u003e\n    Ride around the Big Wheel with a gnome\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/d94a0cd91e59ccdd4217042805f3c43df5b33de2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/d94a0cd91e59ccdd4217042805f3c43df5b33de2.jpg\" alt=\"Blast from the Past\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Blast from the Past\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlast from the Past\u003c/strong\u003e\u003cbr/\u003e\n    In the Subway Platform, complete the advertising boards first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/46e7f1435bf26e71b32b37eec32379dce8bd2aba.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/46e7f1435bf26e71b32b37eec32379dce8bd2aba.jpg\" alt=\"Bucket List\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bucket List\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBucket List\u003c/strong\u003e\u003cbr/\u003e\n    At the Ancient Statue, knock over four buckets\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/6b533007123bc9d939e49e5f56ba5005f33d9e2e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/6b533007123bc9d939e49e5f56ba5005f33d9e2e.jpg\" alt=\"Delicate Excavation\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Delicate Excavation\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDelicate Excavation\u003c/strong\u003e\u003cbr/\u003e\n    Completely clean the Ancient Monument using only the white nozzle\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/ccf97a68ec09f339ef6bf3dd82c501f237e197ca.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/ccf97a68ec09f339ef6bf3dd82c501f237e197ca.jpg\" alt=\"All Hands on Deck\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: All Hands on Deck\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAll Hands on Deck\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Fishing Boat bow, steps and main deck first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/9a077026c65c936ad7037688c59e0a4045cc58e9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/9a077026c65c936ad7037688c59e0a4045cc58e9.jpg\" alt=\"As It Was Foretold...\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: As It Was Foretold...\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAs It Was Foretold...\u003c/strong\u003e\u003cbr/\u003e\n    Complete Career Mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/b11c4a42b5b26ff94e4f05a13fc3cec3bba2d957.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/b11c4a42b5b26ff94e4f05a13fc3cec3bba2d957.jpg\" alt=\"Coconut Dodge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Coconut Dodge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCoconut Dodge\u003c/strong\u003e\u003cbr/\u003e\n    At the Fairground, knock over all of the coconuts\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/427937258d4af0ff3c0b31dfdd5e3b821a893f99.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/427937258d4af0ff3c0b31dfdd5e3b821a893f99.jpg\" alt=\"Raking It In\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Raking It In\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRaking It In\u003c/strong\u003e\u003cbr/\u003e\n    Earn 50 Stars Career Mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/78e4f589fb603f67d835e3b3c2845e7de2eaee67.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/78e4f589fb603f67d835e3b3c2845e7de2eaee67.jpg\" alt=\"Big Business\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Big Business\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBig Business\u003c/strong\u003e\u003cbr/\u003e\n    Earn 100 Stars in Career Mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/5220303951d763418732f08645195dc1f84b00f9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/5220303951d763418732f08645195dc1f84b00f9.jpg\" alt=\"Super Star\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Super Star\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSuper Star\u003c/strong\u003e\u003cbr/\u003e\n    Earn 150 Stars in Career Mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/37f2d361a1a5a4a3cefc7f68de86f51e6c8152c7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/37f2d361a1a5a4a3cefc7f68de86f51e6c8152c7.jpg\" alt=\"Good Dings to Come\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Good Dings to Come\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGood Dings to Come\u003c/strong\u003e\u003cbr/\u003e\n    Clean 95% of any job without completing any tasks\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/26519a05742a472d4a38420f3d94263d9bfd43b1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/26519a05742a472d4a38420f3d94263d9bfd43b1.jpg\" alt=\"Head First\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Head First\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHead First\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Drill head and tip first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/c38dc05a724a1cdd871fb822eaeeb8804f858741.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/c38dc05a724a1cdd871fb822eaeeb8804f858741.jpg\" alt=\"Gold Standard\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Gold Standard\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGold Standard\u003c/strong\u003e\u003cbr/\u003e\n    Get five gold medals in Challenge Mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/c12c64f700af113f14f5e8f20bc2457aede8a2b8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/c12c64f700af113f14f5e8f20bc2457aede8a2b8.jpg\" alt=\"Side Hustle\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Side Hustle\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSide Hustle\u003c/strong\u003e\u003cbr/\u003e\n    Complete a Bonus Job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/7cfab8138f268ec45f10e0798e6a836b37655805.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/7cfab8138f268ec45f10e0798e6a836b37655805.jpg\" alt=\"Naughty Nautical Neighbors\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Naughty Nautical Neighbors\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNaughty Nautical Neighbors\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Conch Street job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/c552a35bb8ae407933074dc04b4ddfa9cf89bf82.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/c552a35bb8ae407933074dc04b4ddfa9cf89bf82.jpg\" alt=\"Bus is here!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bus is here!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBus is here!\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Bikini Bottom Bus job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/72618c55a201887efd7bd406965cbeaccf17c215.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/72618c55a201887efd7bd406965cbeaccf17c215.jpg\" alt=\"Employee of the Month\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Employee of the Month\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEmployee of the Month\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Krusty Krab job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/15c71576a9bd7d0eeb14807615ddc71af7a43846.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/15c71576a9bd7d0eeb14807615ddc71af7a43846.jpg\" alt=\"Feast Your Eyes…\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Feast Your Eyes…\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFeast Your Eyes…\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Patty Wagon job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/c02e41dcb527c3c61c7d1f8bd6192d3dfb2b7df4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/c02e41dcb527c3c61c7d1f8bd6192d3dfb2b7df4.jpg\" alt=\"It\u0026#39;s Supposed to be Invisible!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: It\u0026#39;s Supposed to be Invisible!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt\u0026#39;s Supposed to be Invisible!\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Invisible Boatmobile job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/c2e16d32fe2384c44e135abe45eee9f495f6352c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/c2e16d32fe2384c44e135abe45eee9f495f6352c.jpg\" alt=\"Mermaidman and Barnacleboy Unite!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mermaidman and Barnacleboy Unite!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMermaidman and Barnacleboy Unite!\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Mermalair job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/7ae6429f561fd670fe6afca9c30119bdfc53f5c6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/7ae6429f561fd670fe6afca9c30119bdfc53f5c6.jpg\" alt=\"It\u0026#39;s not a Boulder, It\u0026#39;s a Rock!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: It\u0026#39;s not a Boulder, It\u0026#39;s a Rock!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt\u0026#39;s not a Boulder, It\u0026#39;s a Rock!\u003c/strong\u003e\u003cbr/\u003e\n    In the Conch Street job, complete Patrick\u0026#39;s Rock, Rock Hinge and Rock Underside last\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/0ea41de7a7ac3fcd7cdaffd79cebad73fee5410b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/0ea41de7a7ac3fcd7cdaffd79cebad73fee5410b.jpg\" alt=\"Bucket Sweet Bucket\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bucket Sweet Bucket\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBucket Sweet Bucket\u003c/strong\u003e\u003cbr/\u003e\n    In the Krusty Krab job, complete the Chum Bucket first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/e05d4d38bc3c269a625947006bc9e8b744318cd3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/e05d4d38bc3c269a625947006bc9e8b744318cd3.jpg\" alt=\"I\u0026#39;ve Come for Your Pickle\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: I\u0026#39;ve Come for Your Pickle\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI\u0026#39;ve Come for Your Pickle\u003c/strong\u003e\u003cbr/\u003e\n    In the Patty Wagon job, complete the Pickles first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/e5ba266349089d32fa8b795619616fbfee79ed2f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/e5ba266349089d32fa8b795619616fbfee79ed2f.jpg\" alt=\"It\u0026#39;s Not My Wallet\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: It\u0026#39;s Not My Wallet\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt\u0026#39;s Not My Wallet\u003c/strong\u003e\u003cbr/\u003e\n    In the Mermalair job, complete Patrick\u0026#39;s Identity Card first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/5164002858e231e6c09f4047d82dcd52574f2787.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/5164002858e231e6c09f4047d82dcd52574f2787.jpg\" alt=\"Great Scott!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Great Scott!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGreat Scott!\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Doc Brown\u0026#39;s Van job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/58cf307522f1ca069d963551df697e96d8fab11e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/58cf307522f1ca069d963551df697e96d8fab11e.jpg\" alt=\"OUTAGRIME\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: OUTAGRIME\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOUTAGRIME\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Time Machine job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/3ff02d348db25c0ed49f246bc5e4c21dbc9976b8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/3ff02d348db25c0ed49f246bc5e4c21dbc9976b8.jpg\" alt=\"Save the Clocktower!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Save the Clocktower!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSave the Clocktower!\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Clocktower job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/e43bddf981db18b167f22f5196e8910d829dda46.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/e43bddf981db18b167f22f5196e8910d829dda46.jpg\" alt=\"2015? You Mean We\u0026#39;re in the Future?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: 2015? You Mean We\u0026#39;re in the Future?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e2015? You Mean We\u0026#39;re in the Future?\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Holomax Theater job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/3d5ce076c40edabe0f7bd8c4549cbb131b526cd5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/3d5ce076c40edabe0f7bd8c4549cbb131b526cd5.jpg\" alt=\"Your Future is Whatever You Make it\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Your Future is Whatever You Make it\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYour Future is Whatever You Make it\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Doc\u0026#39;s Time Train job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/690e6d0bfade56b34f488c78202557faa53acad0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/690e6d0bfade56b34f488c78202557faa53acad0.jpg\" alt=\"88 Miles Per Hour!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: 88 Miles Per Hour!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e88 Miles Per Hour!\u003c/strong\u003e\u003cbr/\u003e\n    Watch the Time Machine reappear\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/051f88be795e9b00001e434939af155c1d06589f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/051f88be795e9b00001e434939af155c1d06589f.jpg\" alt=\"May it Stand for All Time!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: May it Stand for All Time!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMay it Stand for All Time!\u003c/strong\u003e\u003cbr/\u003e\n    In the Clocktower job, ring the bell\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/c1e9b517b969681afad700bb431b95e13298b249.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/c1e9b517b969681afad700bb431b95e13298b249.jpg\" alt=\"Shark Still Looks Fake\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Shark Still Looks Fake\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShark Still Looks Fake\u003c/strong\u003e\u003cbr/\u003e\n    In the Holomax Theater Job, activate the holographic shark \n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/1aadaf1cecc97122fac10d830e4a5b581885a08d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/1aadaf1cecc97122fac10d830e4a5b581885a08d.jpg\" alt=\"Back to the Theater\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Back to the Theater\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBack to the Theater\u003c/strong\u003e\u003cbr/\u003e\n    In the Holomax Theater job, clean the Grid Wall first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/ca511dc97adf1394bb96f3f015efbc75e1874ac5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/ca511dc97adf1394bb96f3f015efbc75e1874ac5.jpg\" alt=\"This is What Makes Time Travel Possible\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: This is What Makes Time Travel Possible\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThis is What Makes Time Travel Possible\u003c/strong\u003e\u003cbr/\u003e\n    In the Doc\u0026#39;s Time Train job, clean the Flux Capacitor and its Particle Colliders first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/686dc1a83c3a08a38b85162f651daa7b8cd59d3f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/686dc1a83c3a08a38b85162f651daa7b8cd59d3f.jpg\" alt=\"Courage and Honor!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Courage and Honor!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCourage and Honor!\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Land Raider job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/ea5df70e0f2b45737ef287a4e1af5306ed9054d8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/ea5df70e0f2b45737ef287a4e1af5306ed9054d8.jpg\" alt=\"Eternal Service\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Eternal Service\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEternal Service\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Redemptor Dreadnought job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/e143e3a71aaf735377d80ed419dc85e2bf04dc51.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/e143e3a71aaf735377d80ed419dc85e2bf04dc51.jpg\" alt=\"Cadia Stands!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cadia Stands!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCadia Stands!\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Rogal Dorn Battle Tank job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/3d184da29290d18901d13f2d9cddfe3611376a3d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/3d184da29290d18901d13f2d9cddfe3611376a3d.jpg\" alt=\"Sacristan\u0026#39;s Duty\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sacristan\u0026#39;s Duty\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSacristan\u0026#39;s Duty\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Imperial Knight Paladin job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/f378eec115eb325e32d1214a6a7ee45101c94a0b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/f378eec115eb325e32d1214a6a7ee45101c94a0b.jpg\" alt=\"Sanguinius Would Be Proud\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sanguinius Would Be Proud\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSanguinius Would Be Proud\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Thunderhawk job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/59376ea4b9e75355df6003c49965425f8917ef5e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/59376ea4b9e75355df6003c49965425f8917ef5e.jpg\" alt=\"We March for Macragge!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: We March for Macragge!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWe March for Macragge!\u003c/strong\u003e\u003cbr/\u003e\n    In the Land Raider job, complete the \u0026#34;Ultramarines II\u0026#34; Plaque first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/42a85f1e503996b1346739db129e4f102901e5c0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/42a85f1e503996b1346739db129e4f102901e5c0.jpg\" alt=\"Degrees of Redemption\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Degrees of Redemption\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDegrees of Redemption\u003c/strong\u003e\u003cbr/\u003e\n    Completely clean the Redemptor Dreadnought using only the yellow nozzle\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/1ce247649e28d212ac51984507744c1da5e7d2be.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/1ce247649e28d212ac51984507744c1da5e7d2be.jpg\" alt=\"The Emperor Protects\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Emperor Protects\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Emperor Protects\u003c/strong\u003e\u003cbr/\u003e\n    In the Imperial Knight Paladin job, complete the Tilt Shield and Tilt Shield Purity Seals first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/c1513bd11bc2730aa8b8a649041b64f81dc4156b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/c1513bd11bc2730aa8b8a649041b64f81dc4156b.jpg\" alt=\"Astra Militarum\u0026#39;s Secret Weapon\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Astra Militarum\u0026#39;s Secret Weapon\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAstra Militarum\u0026#39;s Secret Weapon\u003c/strong\u003e\u003cbr/\u003e\n    In the Rogal Dorn Battle Tank job, complete the Stowed Shovel first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/e50b6fbd36e91961762719280ee9a573e112d660.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/e50b6fbd36e91961762719280ee9a573e112d660.jpg\" alt=\"Descend into Shadow, Rise into Light\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Descend into Shadow, Rise into Light\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDescend into Shadow, Rise into Light\u003c/strong\u003e\u003cbr/\u003e\n    In the Thunderhawk Job, complete the Retro Thrusters first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/dedd4fdb39112dc5005c5313e2874706c343e0df.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/dedd4fdb39112dc5005c5313e2874706c343e0df.jpg\" alt=\"Down the Rabbit-Hole\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Down the Rabbit-Hole\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDown the Rabbit-Hole\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Wonderland Entrance Hall job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/5223daf4a6e1df8f9e01bd74abaebf6e1d5be5e9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/5223daf4a6e1df8f9e01bd74abaebf6e1d5be5e9.jpg\" alt=\"The Rabbit Sends in a Little Bill\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Rabbit Sends in a Little Bill\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Rabbit Sends in a Little Bill\u003c/strong\u003e\u003cbr/\u003e\n    Complete the White Rabbit\u0026#39;s House job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/776c8fb85a3afaa7873e529525f4a2496699068b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/776c8fb85a3afaa7873e529525f4a2496699068b.jpg\" alt=\"Advice from a Caterpillar\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Advice from a Caterpillar\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAdvice from a Caterpillar\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Caterpillar\u0026#39;s Mushroom job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/d85fe932a1182ccaee5d50709ae3c1887a767d96.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/d85fe932a1182ccaee5d50709ae3c1887a767d96.jpg\" alt=\"A Mad Tea-Party\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Mad Tea-Party\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Mad Tea-Party\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Mad Tea Party job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/fbb71723281131b37408aa8eae4112cf0cca5823.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/fbb71723281131b37408aa8eae4112cf0cca5823.jpg\" alt=\"Who Stole the Tarts?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Who Stole the Tarts?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWho Stole the Tarts?\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Queen of Hearts\u0026#39; Court job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/7d1fa13474360fb29769e01ceedf084b57b3ed9b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/7d1fa13474360fb29769e01ceedf084b57b3ed9b.jpg\" alt=\"I Really Must be Getting Home\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: I Really Must be Getting Home\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI Really Must be Getting Home\u003c/strong\u003e\u003cbr/\u003e\n    In the Wonderland Entrance Hall, attempt to climb out of the rabbit hole using a ladder\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/1516e07661196a22c9803d107222e3d5e1ae4030.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/1516e07661196a22c9803d107222e3d5e1ae4030.jpg\" alt=\"Oh My Ears and Whiskers!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Oh My Ears and Whiskers!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOh My Ears and Whiskers!\u003c/strong\u003e\u003cbr/\u003e\n    In the White Rabbit\u0026#39;s House, complete all Clocks on the Clocks Wall first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/bffce043996d21fe57fc1f6401671c6f7aab1ff0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/bffce043996d21fe57fc1f6401671c6f7aab1ff0.jpg\" alt=\"Metamorphosis\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Metamorphosis\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMetamorphosis\u003c/strong\u003e\u003cbr/\u003e\n    In the Caterpillar\u0026#39;s Mushroom, clean the Caterpillar\u0026#39;s Cocoon last\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/81a82c031066ef4826672394689a6566a8ec891f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/81a82c031066ef4826672394689a6566a8ec891f.jpg\" alt=\"Like a Tea Tray in the Sky\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Like a Tea Tray in the Sky\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLike a Tea Tray in the Sky\u003c/strong\u003e\u003cbr/\u003e\n    In the Mad Tea Party, balance on the Strawberry on the topmost cake on the Cake Stand for 10 seconds\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/3834a84f36c032f17cf8b5d21fbaf902cf0db595.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/3834a84f36c032f17cf8b5d21fbaf902cf0db595.jpg\" alt=\"Such a Curious Croquet-Ground\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Such a Curious Croquet-Ground\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSuch a Curious Croquet-Ground\u003c/strong\u003e\u003cbr/\u003e\n    In the Queen of Hearts\u0026#39; Court, roll the pink Croquet Ball onto the Croquet Finish Heart\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/d9f7dceafc72cb6ec7518d98994816b553cf1c67.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/d9f7dceafc72cb6ec7518d98994816b553cf1c67.jpg\" alt=\"A Sacrifice I am Willing to Make\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Sacrifice I am Willing to Make\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Sacrifice I am Willing to Make\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Duloc job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/3a145708c51f4043a0cc4203c4d6821c37ef02d1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/3a145708c51f4043a0cc4203c4d6821c37ef02d1.jpg\" alt=\"Honeymoon!? With Whom?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Honeymoon!? With Whom?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHoneymoon!? With Whom?\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Hansel\u0026#39;s Honeymoon Hideaway job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/deaed36cbd18e7ceb1ba58410253a8eb8c710ff2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/deaed36cbd18e7ceb1ba58410253a8eb8c710ff2.jpg\" alt=\"Get Out Of My Swamp!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Get Out Of My Swamp!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGet Out Of My Swamp!\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Shrek\u0026#39;s Swamp job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/faba0e53f98dfc47709dd94c5be37bece9ffb795.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/faba0e53f98dfc47709dd94c5be37bece9ffb795.jpg\" alt=\"Working Hard or Hardly Working? \" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Working Hard or Hardly Working?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWorking Hard or Hardly Working? \u003c/strong\u003e\u003cbr/\u003e\n    Complete the Fairy Godmother\u0026#39;s Potion Factory job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/89794dd1e0747fe9335bcc4a67341c6220d58238.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/89794dd1e0747fe9335bcc4a67341c6220d58238.jpg\" alt=\"That\u0026#39;ll do, Donkey\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: That\u0026#39;ll do, Donkey\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThat\u0026#39;ll do, Donkey\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Dragon\u0026#39;s Lair job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/984de67e31bc72d69e958d8bcbe916ab84191f9d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/984de67e31bc72d69e958d8bcbe916ab84191f9d.jpg\" alt=\"Somebody Once Told Me…\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Somebody Once Told Me…\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSomebody Once Told Me…\u003c/strong\u003e\u003cbr/\u003e\n    In the Shrek\u0026#39;s Swamp job, clean the Outhouse Door and Outhouse Door Handle first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/3d09a390b913857e0b881d6f714bb8d2561c1550.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/3d09a390b913857e0b881d6f714bb8d2561c1550.jpg\" alt=\"Welcome to Duloc...\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Welcome to Duloc...\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWelcome to Duloc...\u003c/strong\u003e\u003cbr/\u003e\n    In the Duloc job, interact with the Information Stand Lever\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/d3656947d3aeea9836fff5cf98c99226f4f9ce24.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/d3656947d3aeea9836fff5cf98c99226f4f9ce24.jpg\" alt=\"Are We There Yet?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Are We There Yet?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAre We There Yet?\u003c/strong\u003e\u003cbr/\u003e\n    In the Hansel\u0026#39;s Honeymoon Hideaway job, wait in the Onion Carriage for 30 seconds\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/249526f0a9f9b96ea0554923cf1967becbd53fdd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/249526f0a9f9b96ea0554923cf1967becbd53fdd.jpg\" alt=\"Look At Me Shrek, I\u0026#39;m Trotting\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Look At Me Shrek, I\u0026#39;m Trotting\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLook At Me Shrek, I\u0026#39;m Trotting\u003c/strong\u003e\u003cbr/\u003e\n    In the Fairy Godmother\u0026#39;s Potion Factory job, run on the Running Wheel for 20 seconds\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/34ac628ea907298f8ac86d9bc4b193549832a549.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/34ac628ea907298f8ac86d9bc4b193549832a549.jpg\" alt=\"Like That\u0026#39;s Ever Gonna Happen…\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Like That\u0026#39;s Ever Gonna Happen…\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLike That\u0026#39;s Ever Gonna Happen…\u003c/strong\u003e\u003cbr/\u003e\n    In the Dragon\u0026#39;s Lair job, clean the Gallery Tapestries last\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/ec3e39b622ace560519e2ef1443b947d26e7f6b5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/ec3e39b622ace560519e2ef1443b947d26e7f6b5.jpg\" alt=\"Home Sweet Home\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Home Sweet Home\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHome Sweet Home\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Wallace \u0026amp; Gromit\u0026#39;s Dining Room \u0026amp; Kitchen job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/b2f231dedc4e5df8c27f571febf466798cc993f6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/b2f231dedc4e5df8c27f571febf466798cc993f6.jpg\" alt=\"Right house proud\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Right house proud\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRight house proud\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Wallace \u0026amp; Gromit\u0026#39;s House job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/ff0db6395ef7887e1f92098c33e2ad332e93d031.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/ff0db6395ef7887e1f92098c33e2ad332e93d031.jpg\" alt=\"All knitted up!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: All knitted up!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAll knitted up!\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Knit-O-Matic job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/02582ddac7bafedefc99a91df1bf2910874785ef.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/02582ddac7bafedefc99a91df1bf2910874785ef.jpg\" alt=\"Now we’re motoring!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Now we’re motoring!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNow we’re motoring!\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Wallace \u0026amp; Gromit\u0026#39;s Vehicles job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/10e17d3dde56b748c6455f709660074a43df1d9b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/10e17d3dde56b748c6455f709660074a43df1d9b.jpg\" alt=\"We have touchdown!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: We have touchdown!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWe have touchdown!\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Moon Rocket job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/ceb5f940bf0289c5f4c47ffb81ade3ad523ae351.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/ceb5f940bf0289c5f4c47ffb81ade3ad523ae351.jpg\" alt=\"All aboard!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: All aboard!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAll aboard!\u003c/strong\u003e\u003cbr/\u003e\n    In the Wallace \u0026amp; Gromit\u0026#39;s Dining Room \u0026amp; Kitchen job, activate the Toy Train\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/335f8e9ae91e6883586545cb53ceb86d0348b431.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/335f8e9ae91e6883586545cb53ceb86d0348b431.jpg\" alt=\"Pond possession!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Pond possession!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePond possession!\u003c/strong\u003e\u003cbr/\u003e\n    In the Wallace \u0026amp; Gromit\u0026#39;s House job, roll the football under the pond\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/9a7ef3ffe2293f1623f907d9fe7b86b09f96af57.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/9a7ef3ffe2293f1623f907d9fe7b86b09f96af57.jpg\" alt=\"Baaath time!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Baaath time!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBaaath time!\u003c/strong\u003e\u003cbr/\u003e\n    In the Knit-O-Matic job, activate the Auto-Wash\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/ba273762fb40c2ee0904e8fc100e03db3f94a524.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/ba273762fb40c2ee0904e8fc100e03db3f94a524.jpg\" alt=\"Squeaky-clean strides!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Squeaky-clean strides!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSqueaky-clean strides!\u003c/strong\u003e\u003cbr/\u003e\n    In the Wallace \u0026amp; Gromit\u0026#39;s Vehicles job, clean the Techno Trousers first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/63b298e73afb3d60a98bda3f81b5870c89be1978.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/63b298e73afb3d60a98bda3f81b5870c89be1978.jpg\" alt=\"The Art of Cleaning\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Art of Cleaning\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Art of Cleaning\u003c/strong\u003e\u003cbr/\u003e\n    In the Moon Rocket job, clean the paintings inside the rocket first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/1290000/library_600x900.jpg\" alt=\"PowerWash Simulator box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/1290000/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003ePowerWash Simulator\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 5.0%\"\u003e\n        5.0%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e5/100 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e65.5h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2024-01-27\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (5)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/9575c00c8c7dc69f36852a0d8da709ee2ddb93fa.jpg\" alt=\"Soap Connoisseur\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSoap Connoisseur\u003c/strong\u003e\u003cbr\u003e\n    Own all cleaning liquids at the same time\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/effa8503af67fb597053ba0a2eee06cf1f02e070.jpg\" alt=\"Fully Equipped\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFully Equipped\u003c/strong\u003e\u003cbr\u003e\n    Own the Prime Vista 1500 and three of its attachments\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/a845509eca4159e925e3f6bd301d4c440874c53b.jpg\" alt=\"Fashionista\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFashionista\u003c/strong\u003e\u003cbr\u003e\n    Equip a new outfit, gloves and washer modification at the same time\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/1b0f079c24368790e791389091b08d334883e38e.jpg\" alt=\"Starting Out\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStarting Out\u003c/strong\u003e\u003cbr\u003e\n    Earn 5 Stars in Career Mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/1c90da76682b092ca6351b4f33708d0a025e083e.jpg\" alt=\"Going for Gold\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGoing for Gold\u003c/strong\u003e\u003cbr\u003e\n    Get one gold medal in Challenge Mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: July 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (95)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/f45056e988cd613ccaa7cdab615542612a081601.jpg\" alt=\"Urban Xpert\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUrban Xpert\u003c/strong\u003e\u003cbr\u003e\n    Own the UrbanX U2 and four of its attachments\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/701f6572c9cdb41830482e840f66d33f2c9e7c65.jpg\" alt=\"Heavy Hitter\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHeavy Hitter\u003c/strong\u003e\u003cbr\u003e\n    Own the Prime Vista 3000 and five of its attachments\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/b59b80bcf056ec8500de2a65470c9cff37255364.jpg\" alt=\"Unlimited Powerwash\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUnlimited Powerwash\u003c/strong\u003e\u003cbr\u003e\n    Own the Prime Vista PRO and six of its attachments\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/a4d49d57f63767ecf33d68f7732010359b56b65b.jpg\" alt=\"Powerful Pressure Purist\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePowerful Pressure Purist\u003c/strong\u003e\u003cbr\u003e\n    Completely clean the Van using only the red nozzle\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/7824634f6fab5874988e1a0b96fb0d59981e17f2.jpg\" alt=\"First Steps\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFirst Steps\u003c/strong\u003e\u003cbr\u003e\n    In the Back Garden, complete all 12 stepping stones first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/fccbc466154f0c41d4ba698ac41248e9d1d21447.jpg\" alt=\"StegoScore\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStegoScore\u003c/strong\u003e\u003cbr\u003e\n    In the Playground, roll the football up the stegoslide\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/3a2099d3c92e2c0d7dec64d895f11ba3557f986a.jpg\" alt=\"Gutted\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGutted\u003c/strong\u003e\u003cbr\u003e\n    Complete the Bungalow gutters last\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/2af8ba29410564ba455038ec3a8fada695ff50ce.jpg\" alt=\"Pave the Way\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePave the Way\u003c/strong\u003e\u003cbr\u003e\n    In the Detached House, complete the Pathway, Driveway and Driveway Edges first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/f948a1aeb9340acd0b683333e4ac00533ad664c6.jpg\" alt=\"Sole Task\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSole Task\u003c/strong\u003e\u003cbr\u003e\n    Complete the sole of the Shoe House last\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/d191246727e0e2bae3c40874336e6b64320b8d70.jpg\" alt=\"Tall Order\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTall Order\u003c/strong\u003e\u003cbr\u003e\n    Completely clean the Fire Station job without standing on the scaffolding\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/b32919288179f55d30b4ce8cfd459df63cf77fb0.jpg\" alt=\"Watermelon Shot\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWatermelon Shot\u003c/strong\u003e\u003cbr\u003e\n    In the Skatepark, push the ball out of the bowl\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/91bca452f4663c36025012107b34a525ca24133c.jpg\" alt=\"I Can See Clearly Now\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI Can See Clearly Now\u003c/strong\u003e\u003cbr\u003e\n    Complete the Fire Truck windows, windscreen and wing mirrors first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/f80ad87ad185c2057f6ae4e16a0b9d89786813e8.jpg\" alt=\"Impeccable Balance\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eImpeccable Balance\u003c/strong\u003e\u003cbr\u003e\n    Stand on the Penny Farthing for 10 seconds\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/e1f6e61c4bd06571c541df7b66707384c50eae82.jpg\" alt=\"Lantern Hunter\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLantern Hunter\u003c/strong\u003e\u003cbr\u003e\n    In the Treehouse, complete all of the lanterns first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/ab837e502c9885bd8ee0fbccddf3a480c1ce3b40.jpg\" alt=\"Live by the Blade\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLive by the Blade\u003c/strong\u003e\u003cbr\u003e\n    Complete the Fire Helicopter blades first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/22096fb777f4dea7916064e4705ef0daf54f6486.jpg\" alt=\"Merrily Go Round\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMerrily Go Round\u003c/strong\u003e\u003cbr\u003e\n    Completely clean the Carousel without turning it off\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/3dbbb00c7070d1bd701f733f3fe5bd495e8ae32c.jpg\" alt=\"Gnome Sweet Gnome\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGnome Sweet Gnome\u003c/strong\u003e\u003cbr\u003e\n    In the Temple, ensure the gnome is on the tower roof once the job is complete\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/2d1678d4bd1e9ec504df1a787634ecf97b8d5193.jpg\" alt=\"Delaying the Inevitable\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDelaying the Inevitable\u003c/strong\u003e\u003cbr\u003e\n    In the Washroom, complete the toilets, toilet seats and toilet lids last\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/e183c255d101324307c6f636529e5054c73cb2d8.jpg\" alt=\"Shine Bright\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShine Bright\u003c/strong\u003e\u003cbr\u003e\n    On the Helter Skelter, complete the objects that have lightbulbs before anything else\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/c04a684d5540c8dbb91ea9a654c440701e11a4b7.jpg\" alt=\"Suspicious Modifications\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSuspicious Modifications\u003c/strong\u003e\u003cbr\u003e\n    Complete the Private Jet laser and anti-gravity parts first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/4fea4c1b3a0bda4e117894b9e866a4a43ee24279.jpg\" alt=\"Tyresome\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTyresome\u003c/strong\u003e\u003cbr\u003e\n    Complete the Monster Truck tyres first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/98e0707bf39d9e30633d74d046931c4cfdfa6fd1.jpg\" alt=\"Best Buds\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBest Buds\u003c/strong\u003e\u003cbr\u003e\n    Ride around the Big Wheel with a gnome\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/d94a0cd91e59ccdd4217042805f3c43df5b33de2.jpg\" alt=\"Blast from the Past\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlast from the Past\u003c/strong\u003e\u003cbr\u003e\n    In the Subway Platform, complete the advertising boards first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/46e7f1435bf26e71b32b37eec32379dce8bd2aba.jpg\" alt=\"Bucket List\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBucket List\u003c/strong\u003e\u003cbr\u003e\n    At the Ancient Statue, knock over four buckets\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/6b533007123bc9d939e49e5f56ba5005f33d9e2e.jpg\" alt=\"Delicate Excavation\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDelicate Excavation\u003c/strong\u003e\u003cbr\u003e\n    Completely clean the Ancient Monument using only the white nozzle\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/ccf97a68ec09f339ef6bf3dd82c501f237e197ca.jpg\" alt=\"All Hands on Deck\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAll Hands on Deck\u003c/strong\u003e\u003cbr\u003e\n    Complete the Fishing Boat bow, steps and main deck first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/9a077026c65c936ad7037688c59e0a4045cc58e9.jpg\" alt=\"As It Was Foretold...\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAs It Was Foretold...\u003c/strong\u003e\u003cbr\u003e\n    Complete Career Mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/b11c4a42b5b26ff94e4f05a13fc3cec3bba2d957.jpg\" alt=\"Coconut Dodge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCoconut Dodge\u003c/strong\u003e\u003cbr\u003e\n    At the Fairground, knock over all of the coconuts\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/427937258d4af0ff3c0b31dfdd5e3b821a893f99.jpg\" alt=\"Raking It In\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRaking It In\u003c/strong\u003e\u003cbr\u003e\n    Earn 50 Stars Career Mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/78e4f589fb603f67d835e3b3c2845e7de2eaee67.jpg\" alt=\"Big Business\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBig Business\u003c/strong\u003e\u003cbr\u003e\n    Earn 100 Stars in Career Mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/5220303951d763418732f08645195dc1f84b00f9.jpg\" alt=\"Super Star\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSuper Star\u003c/strong\u003e\u003cbr\u003e\n    Earn 150 Stars in Career Mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/37f2d361a1a5a4a3cefc7f68de86f51e6c8152c7.jpg\" alt=\"Good Dings to Come\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGood Dings to Come\u003c/strong\u003e\u003cbr\u003e\n    Clean 95% of any job without completing any tasks\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/26519a05742a472d4a38420f3d94263d9bfd43b1.jpg\" alt=\"Head First\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHead First\u003c/strong\u003e\u003cbr\u003e\n    Complete the Drill head and tip first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/c38dc05a724a1cdd871fb822eaeeb8804f858741.jpg\" alt=\"Gold Standard\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGold Standard\u003c/strong\u003e\u003cbr\u003e\n    Get five gold medals in Challenge Mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/c12c64f700af113f14f5e8f20bc2457aede8a2b8.jpg\" alt=\"Side Hustle\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSide Hustle\u003c/strong\u003e\u003cbr\u003e\n    Complete a Bonus Job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/7cfab8138f268ec45f10e0798e6a836b37655805.jpg\" alt=\"Naughty Nautical Neighbors\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNaughty Nautical Neighbors\u003c/strong\u003e\u003cbr\u003e\n    Complete the Conch Street job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/c552a35bb8ae407933074dc04b4ddfa9cf89bf82.jpg\" alt=\"Bus is here!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBus is here!\u003c/strong\u003e\u003cbr\u003e\n    Complete the Bikini Bottom Bus job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/72618c55a201887efd7bd406965cbeaccf17c215.jpg\" alt=\"Employee of the Month\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEmployee of the Month\u003c/strong\u003e\u003cbr\u003e\n    Complete the Krusty Krab job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/15c71576a9bd7d0eeb14807615ddc71af7a43846.jpg\" alt=\"Feast Your Eyes…\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFeast Your Eyes…\u003c/strong\u003e\u003cbr\u003e\n    Complete the Patty Wagon job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/c02e41dcb527c3c61c7d1f8bd6192d3dfb2b7df4.jpg\" alt=\"It's Supposed to be Invisible!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt's Supposed to be Invisible!\u003c/strong\u003e\u003cbr\u003e\n    Complete the Invisible Boatmobile job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/c2e16d32fe2384c44e135abe45eee9f495f6352c.jpg\" alt=\"Mermaidman and Barnacleboy Unite!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMermaidman and Barnacleboy Unite!\u003c/strong\u003e\u003cbr\u003e\n    Complete the Mermalair job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/7ae6429f561fd670fe6afca9c30119bdfc53f5c6.jpg\" alt=\"It's not a Boulder, It's a Rock!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt's not a Boulder, It's a Rock!\u003c/strong\u003e\u003cbr\u003e\n    In the Conch Street job, complete Patrick's Rock, Rock Hinge and Rock Underside last\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/0ea41de7a7ac3fcd7cdaffd79cebad73fee5410b.jpg\" alt=\"Bucket Sweet Bucket\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBucket Sweet Bucket\u003c/strong\u003e\u003cbr\u003e\n    In the Krusty Krab job, complete the Chum Bucket first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/e05d4d38bc3c269a625947006bc9e8b744318cd3.jpg\" alt=\"I've Come for Your Pickle\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI've Come for Your Pickle\u003c/strong\u003e\u003cbr\u003e\n    In the Patty Wagon job, complete the Pickles first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/e5ba266349089d32fa8b795619616fbfee79ed2f.jpg\" alt=\"It's Not My Wallet\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt's Not My Wallet\u003c/strong\u003e\u003cbr\u003e\n    In the Mermalair job, complete Patrick's Identity Card first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/5164002858e231e6c09f4047d82dcd52574f2787.jpg\" alt=\"Great Scott!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGreat Scott!\u003c/strong\u003e\u003cbr\u003e\n    Complete the Doc Brown's Van job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/58cf307522f1ca069d963551df697e96d8fab11e.jpg\" alt=\"OUTAGRIME\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOUTAGRIME\u003c/strong\u003e\u003cbr\u003e\n    Complete the Time Machine job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/3ff02d348db25c0ed49f246bc5e4c21dbc9976b8.jpg\" alt=\"Save the Clocktower!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSave the Clocktower!\u003c/strong\u003e\u003cbr\u003e\n    Complete the Clocktower job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/e43bddf981db18b167f22f5196e8910d829dda46.jpg\" alt=\"2015? You Mean We're in the Future?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e2015? You Mean We're in the Future?\u003c/strong\u003e\u003cbr\u003e\n    Complete the Holomax Theater job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/3d5ce076c40edabe0f7bd8c4549cbb131b526cd5.jpg\" alt=\"Your Future is Whatever You Make it\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYour Future is Whatever You Make it\u003c/strong\u003e\u003cbr\u003e\n    Complete the Doc's Time Train job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/690e6d0bfade56b34f488c78202557faa53acad0.jpg\" alt=\"88 Miles Per Hour!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e88 Miles Per Hour!\u003c/strong\u003e\u003cbr\u003e\n    Watch the Time Machine reappear\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/051f88be795e9b00001e434939af155c1d06589f.jpg\" alt=\"May it Stand for All Time!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMay it Stand for All Time!\u003c/strong\u003e\u003cbr\u003e\n    In the Clocktower job, ring the bell\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/c1e9b517b969681afad700bb431b95e13298b249.jpg\" alt=\"Shark Still Looks Fake\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShark Still Looks Fake\u003c/strong\u003e\u003cbr\u003e\n    In the Holomax Theater Job, activate the holographic shark \n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/1aadaf1cecc97122fac10d830e4a5b581885a08d.jpg\" alt=\"Back to the Theater\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBack to the Theater\u003c/strong\u003e\u003cbr\u003e\n    In the Holomax Theater job, clean the Grid Wall first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/ca511dc97adf1394bb96f3f015efbc75e1874ac5.jpg\" alt=\"This is What Makes Time Travel Possible\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThis is What Makes Time Travel Possible\u003c/strong\u003e\u003cbr\u003e\n    In the Doc's Time Train job, clean the Flux Capacitor and its Particle Colliders first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/686dc1a83c3a08a38b85162f651daa7b8cd59d3f.jpg\" alt=\"Courage and Honor!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCourage and Honor!\u003c/strong\u003e\u003cbr\u003e\n    Complete the Land Raider job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/ea5df70e0f2b45737ef287a4e1af5306ed9054d8.jpg\" alt=\"Eternal Service\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEternal Service\u003c/strong\u003e\u003cbr\u003e\n    Complete the Redemptor Dreadnought job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/e143e3a71aaf735377d80ed419dc85e2bf04dc51.jpg\" alt=\"Cadia Stands!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCadia Stands!\u003c/strong\u003e\u003cbr\u003e\n    Complete the Rogal Dorn Battle Tank job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/3d184da29290d18901d13f2d9cddfe3611376a3d.jpg\" alt=\"Sacristan's Duty\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSacristan's Duty\u003c/strong\u003e\u003cbr\u003e\n    Complete the Imperial Knight Paladin job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/f378eec115eb325e32d1214a6a7ee45101c94a0b.jpg\" alt=\"Sanguinius Would Be Proud\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSanguinius Would Be Proud\u003c/strong\u003e\u003cbr\u003e\n    Complete the Thunderhawk job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/59376ea4b9e75355df6003c49965425f8917ef5e.jpg\" alt=\"We March for Macragge!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWe March for Macragge!\u003c/strong\u003e\u003cbr\u003e\n    In the Land Raider job, complete the \"Ultramarines II\" Plaque first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/42a85f1e503996b1346739db129e4f102901e5c0.jpg\" alt=\"Degrees of Redemption\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDegrees of Redemption\u003c/strong\u003e\u003cbr\u003e\n    Completely clean the Redemptor Dreadnought using only the yellow nozzle\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/1ce247649e28d212ac51984507744c1da5e7d2be.jpg\" alt=\"The Emperor Protects\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Emperor Protects\u003c/strong\u003e\u003cbr\u003e\n    In the Imperial Knight Paladin job, complete the Tilt Shield and Tilt Shield Purity Seals first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/c1513bd11bc2730aa8b8a649041b64f81dc4156b.jpg\" alt=\"Astra Militarum's Secret Weapon\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAstra Militarum's Secret Weapon\u003c/strong\u003e\u003cbr\u003e\n    In the Rogal Dorn Battle Tank job, complete the Stowed Shovel first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/e50b6fbd36e91961762719280ee9a573e112d660.jpg\" alt=\"Descend into Shadow, Rise into Light\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDescend into Shadow, Rise into Light\u003c/strong\u003e\u003cbr\u003e\n    In the Thunderhawk Job, complete the Retro Thrusters first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/dedd4fdb39112dc5005c5313e2874706c343e0df.jpg\" alt=\"Down the Rabbit-Hole\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDown the Rabbit-Hole\u003c/strong\u003e\u003cbr\u003e\n    Complete the Wonderland Entrance Hall job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/5223daf4a6e1df8f9e01bd74abaebf6e1d5be5e9.jpg\" alt=\"The Rabbit Sends in a Little Bill\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Rabbit Sends in a Little Bill\u003c/strong\u003e\u003cbr\u003e\n    Complete the White Rabbit's House job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/776c8fb85a3afaa7873e529525f4a2496699068b.jpg\" alt=\"Advice from a Caterpillar\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAdvice from a Caterpillar\u003c/strong\u003e\u003cbr\u003e\n    Complete the Caterpillar's Mushroom job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/d85fe932a1182ccaee5d50709ae3c1887a767d96.jpg\" alt=\"A Mad Tea-Party\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Mad Tea-Party\u003c/strong\u003e\u003cbr\u003e\n    Complete the Mad Tea Party job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/fbb71723281131b37408aa8eae4112cf0cca5823.jpg\" alt=\"Who Stole the Tarts?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWho Stole the Tarts?\u003c/strong\u003e\u003cbr\u003e\n    Complete the Queen of Hearts' Court job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/7d1fa13474360fb29769e01ceedf084b57b3ed9b.jpg\" alt=\"I Really Must be Getting Home\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI Really Must be Getting Home\u003c/strong\u003e\u003cbr\u003e\n    In the Wonderland Entrance Hall, attempt to climb out of the rabbit hole using a ladder\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/1516e07661196a22c9803d107222e3d5e1ae4030.jpg\" alt=\"Oh My Ears and Whiskers!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOh My Ears and Whiskers!\u003c/strong\u003e\u003cbr\u003e\n    In the White Rabbit's House, complete all Clocks on the Clocks Wall first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/bffce043996d21fe57fc1f6401671c6f7aab1ff0.jpg\" alt=\"Metamorphosis\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMetamorphosis\u003c/strong\u003e\u003cbr\u003e\n    In the Caterpillar's Mushroom, clean the Caterpillar's Cocoon last\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/81a82c031066ef4826672394689a6566a8ec891f.jpg\" alt=\"Like a Tea Tray in the Sky\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLike a Tea Tray in the Sky\u003c/strong\u003e\u003cbr\u003e\n    In the Mad Tea Party, balance on the Strawberry on the topmost cake on the Cake Stand for 10 seconds\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/3834a84f36c032f17cf8b5d21fbaf902cf0db595.jpg\" alt=\"Such a Curious Croquet-Ground\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSuch a Curious Croquet-Ground\u003c/strong\u003e\u003cbr\u003e\n    In the Queen of Hearts' Court, roll the pink Croquet Ball onto the Croquet Finish Heart\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/d9f7dceafc72cb6ec7518d98994816b553cf1c67.jpg\" alt=\"A Sacrifice I am Willing to Make\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Sacrifice I am Willing to Make\u003c/strong\u003e\u003cbr\u003e\n    Complete the Duloc job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/3a145708c51f4043a0cc4203c4d6821c37ef02d1.jpg\" alt=\"Honeymoon!? With Whom?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHoneymoon!? With Whom?\u003c/strong\u003e\u003cbr\u003e\n    Complete the Hansel's Honeymoon Hideaway job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/deaed36cbd18e7ceb1ba58410253a8eb8c710ff2.jpg\" alt=\"Get Out Of My Swamp!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGet Out Of My Swamp!\u003c/strong\u003e\u003cbr\u003e\n    Complete the Shrek's Swamp job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/faba0e53f98dfc47709dd94c5be37bece9ffb795.jpg\" alt=\"Working Hard or Hardly Working? \" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWorking Hard or Hardly Working? \u003c/strong\u003e\u003cbr\u003e\n    Complete the Fairy Godmother's Potion Factory job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/89794dd1e0747fe9335bcc4a67341c6220d58238.jpg\" alt=\"That'll do, Donkey\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThat'll do, Donkey\u003c/strong\u003e\u003cbr\u003e\n    Complete the Dragon's Lair job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/984de67e31bc72d69e958d8bcbe916ab84191f9d.jpg\" alt=\"Somebody Once Told Me…\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSomebody Once Told Me…\u003c/strong\u003e\u003cbr\u003e\n    In the Shrek's Swamp job, clean the Outhouse Door and Outhouse Door Handle first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/3d09a390b913857e0b881d6f714bb8d2561c1550.jpg\" alt=\"Welcome to Duloc...\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWelcome to Duloc...\u003c/strong\u003e\u003cbr\u003e\n    In the Duloc job, interact with the Information Stand Lever\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/d3656947d3aeea9836fff5cf98c99226f4f9ce24.jpg\" alt=\"Are We There Yet?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAre We There Yet?\u003c/strong\u003e\u003cbr\u003e\n    In the Hansel's Honeymoon Hideaway job, wait in the Onion Carriage for 30 seconds\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/249526f0a9f9b96ea0554923cf1967becbd53fdd.jpg\" alt=\"Look At Me Shrek, I'm Trotting\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLook At Me Shrek, I'm Trotting\u003c/strong\u003e\u003cbr\u003e\n    In the Fairy Godmother's Potion Factory job, run on the Running Wheel for 20 seconds\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/34ac628ea907298f8ac86d9bc4b193549832a549.jpg\" alt=\"Like That's Ever Gonna Happen…\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLike That's Ever Gonna Happen…\u003c/strong\u003e\u003cbr\u003e\n    In the Dragon's Lair job, clean the Gallery Tapestries last\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/ec3e39b622ace560519e2ef1443b947d26e7f6b5.jpg\" alt=\"Home Sweet Home\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHome Sweet Home\u003c/strong\u003e\u003cbr\u003e\n    Complete the Wallace \u0026 Gromit's Dining Room \u0026 Kitchen job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/b2f231dedc4e5df8c27f571febf466798cc993f6.jpg\" alt=\"Right house proud\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRight house proud\u003c/strong\u003e\u003cbr\u003e\n    Complete the Wallace \u0026 Gromit's House job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/ff0db6395ef7887e1f92098c33e2ad332e93d031.jpg\" alt=\"All knitted up!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAll knitted up!\u003c/strong\u003e\u003cbr\u003e\n    Complete the Knit-O-Matic job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/02582ddac7bafedefc99a91df1bf2910874785ef.jpg\" alt=\"Now we’re motoring!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNow we’re motoring!\u003c/strong\u003e\u003cbr\u003e\n    Complete the Wallace \u0026 Gromit's Vehicles job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/10e17d3dde56b748c6455f709660074a43df1d9b.jpg\" alt=\"We have touchdown!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWe have touchdown!\u003c/strong\u003e\u003cbr\u003e\n    Complete the Moon Rocket job\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/ceb5f940bf0289c5f4c47ffb81ade3ad523ae351.jpg\" alt=\"All aboard!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAll aboard!\u003c/strong\u003e\u003cbr\u003e\n    In the Wallace \u0026 Gromit's Dining Room \u0026 Kitchen job, activate the Toy Train\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/335f8e9ae91e6883586545cb53ceb86d0348b431.jpg\" alt=\"Pond possession!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePond possession!\u003c/strong\u003e\u003cbr\u003e\n    In the Wallace \u0026 Gromit's House job, roll the football under the pond\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/9a7ef3ffe2293f1623f907d9fe7b86b09f96af57.jpg\" alt=\"Baaath time!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBaaath time!\u003c/strong\u003e\u003cbr\u003e\n    In the Knit-O-Matic job, activate the Auto-Wash\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/ba273762fb40c2ee0904e8fc100e03db3f94a524.jpg\" alt=\"Squeaky-clean strides!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSqueaky-clean strides!\u003c/strong\u003e\u003cbr\u003e\n    In the Wallace \u0026 Gromit's Vehicles job, clean the Techno Trousers first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1290000/63b298e73afb3d60a98bda3f81b5870c89be1978.jpg\" alt=\"The Art of Cleaning\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Art of Cleaning\u003c/strong\u003e\u003cbr\u003e\n    In the Moon Rocket job, clean the paintings inside the rocket first\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for PowerWash Simulator - 5.0% complete with 5/100 achievements unlocked.",
      "date_published": "2024-01-27T00:00:00Z",
      "date_modified": "2024-01-27T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "powerwash-simulator"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/portal-2/",
      "url": "https://go.waylonwalker.com/steam/portal-2/",
      "title": "Portal 2",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/620/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/620/library_600x900.jpg\" alt=\"Portal 2 box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/620/header.jpg\u0026#39;\"/ data-glightbox=\"description: Portal 2 box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003ePortal 2\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 45.1%\"\u003e\n        45.1%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e23/51 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e131.4h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2023-12-24\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (23)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/SURVIVE_CONTAINER_RIDE.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/SURVIVE_CONTAINER_RIDE.jpg\" alt=\"Wake Up Call\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Wake Up Call\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWake Up Call\u003c/strong\u003e\u003cbr/\u003e\n    Survive the manual override\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 05, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/WAKE_UP.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/WAKE_UP.jpg\" alt=\"You Monster\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: You Monster\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou Monster\u003c/strong\u003e\u003cbr/\u003e\n    Reunite with GLaDOS\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 05, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/LASER.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/LASER.jpg\" alt=\"Undiscouraged\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Undiscouraged\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUndiscouraged\u003c/strong\u003e\u003cbr/\u003e\n    Complete the first Thermal Discouragement Beam test\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 07, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/BRIDGE.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/BRIDGE.jpg\" alt=\"Bridge Over Troubling Water\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bridge Over Troubling Water\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBridge Over Troubling Water\u003c/strong\u003e\u003cbr/\u003e\n    Complete the first Hard Light Bridge test\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 09, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/BREAK_OUT.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/BREAK_OUT.jpg\" alt=\"SaBOTour\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: SaBOTour\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSaBOTour\u003c/strong\u003e\u003cbr/\u003e\n    Make a break for it\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 17, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/STALEMATE_ASSOCIATE.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/STALEMATE_ASSOCIATE.jpg\" alt=\"Stalemate Associate\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Stalemate Associate\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStalemate Associate\u003c/strong\u003e\u003cbr/\u003e\n    Press the button!\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 17, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/ADDICTED_TO_SPUDS.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/ADDICTED_TO_SPUDS.jpg\" alt=\"Tater Tote\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tater Tote\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTater Tote\u003c/strong\u003e\u003cbr/\u003e\n    Carry science forward\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 18, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/BLUE_GEL.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/BLUE_GEL.jpg\" alt=\"Vertically Unchallenged\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Vertically Unchallenged\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVertically Unchallenged\u003c/strong\u003e\u003cbr/\u003e\n    Master the Repulsion Gel\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 18, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/ORANGE_GEL.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/ORANGE_GEL.jpg\" alt=\"Stranger Than Friction\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Stranger Than Friction\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStranger Than Friction\u003c/strong\u003e\u003cbr/\u003e\n    Master the Propulsion Gel\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 22, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/WHITE_GEL.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/WHITE_GEL.jpg\" alt=\"White Out\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: White Out\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhite Out\u003c/strong\u003e\u003cbr/\u003e\n    Complete the first Conversion Gel test\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 22, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/TRACTOR_BEAM.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/TRACTOR_BEAM.jpg\" alt=\"Tunnel of Funnel\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tunnel of Funnel\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTunnel of Funnel\u003c/strong\u003e\u003cbr/\u003e\n    Master the Excursion Funnel\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 25, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/TRIVIAL_TEST.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/TRIVIAL_TEST.jpg\" alt=\"Dual Pit Experiment\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Dual Pit Experiment\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDual Pit Experiment\u003c/strong\u003e\u003cbr/\u003e\n    Do the same test twice\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 22, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/WHEATLEY_TRIES_TO.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/WHEATLEY_TRIES_TO.jpg\" alt=\"The Part Where He Kills You\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Part Where He Kills You\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Part Where He Kills You\u003c/strong\u003e\u003cbr/\u003e\n    This is that part\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 21, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/SHOOT_THE_MOON.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/SHOOT_THE_MOON.jpg\" alt=\"Lunacy\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Lunacy\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLunacy\u003c/strong\u003e\u003cbr/\u003e\n    That just happened\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 21, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/BOX_HOLE_IN_ONE.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/BOX_HOLE_IN_ONE.jpg\" alt=\"Drop Box\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Drop Box\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDrop Box\u003c/strong\u003e\u003cbr/\u003e\n    Place a cube on a button without touching the cube\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 07, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/NOT_THE_DROID.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/NOT_THE_DROID.jpg\" alt=\"Scanned Alone\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Scanned Alone\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eScanned Alone\u003c/strong\u003e\u003cbr/\u003e\n    Stand in a defective turret detector\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 17, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/SAVE_REDEMPTION_TURRET.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/SAVE_REDEMPTION_TURRET.jpg\" alt=\"No Hard Feelings\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: No Hard Feelings\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNo Hard Feelings\u003c/strong\u003e\u003cbr/\u003e\n    Save a turret from redemption\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 17, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/NO_BOAT.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/NO_BOAT.jpg\" alt=\"Ship Overboard\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ship Overboard\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShip Overboard\u003c/strong\u003e\u003cbr/\u003e\n    Discover the missing experiment\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 18, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/A3_DOORS.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/A3_DOORS.jpg\" alt=\"Door Prize\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Door Prize\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDoor Prize\u003c/strong\u003e\u003cbr/\u003e\n    Examine all the vitrified test chamber doors\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 18, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/HI_FIVE_YOUR_PARTNER.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/HI_FIVE_YOUR_PARTNER.jpg\" alt=\"High Five\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: High Five\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHigh Five\u003c/strong\u003e\u003cbr/\u003e\n    Celebrate your cooperative calibration success\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 03, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/TEAM_BUILDING.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/TEAM_BUILDING.jpg\" alt=\"Team Building\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Team Building\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTeam Building\u003c/strong\u003e\u003cbr/\u003e\n    Complete all test chambers in the Team Building co-op course\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/MASS_AND_VELOCITY.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/MASS_AND_VELOCITY.jpg\" alt=\"Confidence Building\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Confidence Building\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eConfidence Building\u003c/strong\u003e\u003cbr/\u003e\n    Complete all test chambers in the Mass and Velocity co-op course\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 10, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/WITH_STYLE.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/WITH_STYLE.jpg\" alt=\"Air Show\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Air Show\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAir Show\u003c/strong\u003e\u003cbr/\u003e\n    Perform 2 aerial gestures before touching the ground in co-op\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 03, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (28)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/SPEED_RUN_LEVEL_BW.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/SPEED_RUN_LEVEL_BW.jpg\" alt=\"Overclocker\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Overclocker\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOverclocker\u003c/strong\u003e\u003cbr/\u003e\n    Complete Test Chamber 10 in 70 seconds\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/COMPLIANT_BW.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/COMPLIANT_BW.jpg\" alt=\"Pit Boss\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Pit Boss\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePit Boss\u003c/strong\u003e\u003cbr/\u003e\n    Show that pit who\u0026#39;s boss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/SAVE_CUBE_BW.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/SAVE_CUBE_BW.jpg\" alt=\"Preservation of Mass\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Preservation of Mass\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePreservation of Mass\u003c/strong\u003e\u003cbr/\u003e\n    Break the rules in Test Chamber 07\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/LAUNCH_TURRET_BW.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/LAUNCH_TURRET_BW.jpg\" alt=\"Pturretdactyl\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Pturretdactyl\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePturretdactyl\u003c/strong\u003e\u003cbr/\u003e\n    Use an Aerial Faith Plate to launch a turret\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/CLEAN_UP_BW.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/CLEAN_UP_BW.jpg\" alt=\"Final Transmission\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Final Transmission\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFinal Transmission\u003c/strong\u003e\u003cbr/\u003e\n    Find the hidden signal in one of the Rat Man\u0026#39;s dens\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/REENTER_TEST_CHAMBERS_BW.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/REENTER_TEST_CHAMBERS_BW.jpg\" alt=\"Good Listener\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Good Listener\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGood Listener\u003c/strong\u003e\u003cbr/\u003e\n    Take GLaDOS\u0026#39; escape advice\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/CATCH_CRAZY_BOX_BW.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/CATCH_CRAZY_BOX_BW.jpg\" alt=\"Schrodinger\u0026#39;s Catch\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Schrodinger\u0026#39;s Catch\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSchrodinger\u0026#39;s Catch\u003c/strong\u003e\u003cbr/\u003e\n    Catch a blue-painted box before it touches the ground\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/PORTRAIT_BW.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/PORTRAIT_BW.jpg\" alt=\"Portrait of a Lady\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Portrait of a Lady\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePortrait of a Lady\u003c/strong\u003e\u003cbr/\u003e\n    Find a hidden portrait\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/DEFIANT_BW.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/DEFIANT_BW.jpg\" alt=\"You Made Your Point\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: You Made Your Point\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou Made Your Point\u003c/strong\u003e\u003cbr/\u003e\n    Refuse to solve the first test in Chapter 8\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/BREAK_MONITORS_BW.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/BREAK_MONITORS_BW.jpg\" alt=\"Smash TV\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Smash TV\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSmash TV\u003c/strong\u003e\u003cbr/\u003e\n    Break 11 test chamber monitors\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/HUG_NAME_BW.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/HUG_NAME_BW.jpg\" alt=\"Bridge Building\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bridge Building\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBridge Building\u003c/strong\u003e\u003cbr/\u003e\n    Complete all test chambers in the Hard-Light Surfaces co-op course\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/EXCURSION_FUNNELS_BW.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/EXCURSION_FUNNELS_BW.jpg\" alt=\"Obstacle Building\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Obstacle Building\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eObstacle Building\u003c/strong\u003e\u003cbr/\u003e\n    Complete all test chambers in the Excursion Funnels co-op course\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/NEW_BLOOD_BW.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/NEW_BLOOD_BW.jpg\" alt=\"You Saved Science\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: You Saved Science\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou Saved Science\u003c/strong\u003e\u003cbr/\u003e\n    Complete all test chambers in all courses of co-op\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/NICE_CATCH_BW.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/NICE_CATCH_BW.jpg\" alt=\"Iron Grip\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Iron Grip\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIron Grip\u003c/strong\u003e\u003cbr/\u003e\n    Never lose a cube in Chamber 6 of the Mass and Velocity co-op course\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/TAUNTS_BW.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/TAUNTS_BW.jpg\" alt=\"Gesticul-8\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Gesticul-8\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGesticul-8\u003c/strong\u003e\u003cbr/\u003e\n    Perform all 8 gestures of your own volition in co-op\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/YOU_MONSTER_BW.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/YOU_MONSTER_BW.jpg\" alt=\"Can\u0026#39;t Touch This\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Can\u0026#39;t Touch This\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCan\u0026#39;t Touch This\u003c/strong\u003e\u003cbr/\u003e\n    Dance in front of a turret blocked by a hard light bridge in co-op\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/PARTNER_DROP_BW.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/PARTNER_DROP_BW.jpg\" alt=\"Empty Gesture\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Empty Gesture\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEmpty Gesture\u003c/strong\u003e\u003cbr/\u003e\n    Drop your co-op partner in goo while they are gesturing by removing the bridge under them\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/PARTY_OF_THREE_BW.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/PARTY_OF_THREE_BW.jpg\" alt=\"Party of Three\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Party of Three\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eParty of Three\u003c/strong\u003e\u003cbr/\u003e\n    Find the hidden companion cube in co-op test chamber\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/PORTAL_TAUNT_BW.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/PORTAL_TAUNT_BW.jpg\" alt=\"Narbacular Drop\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Narbacular Drop\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNarbacular Drop\u003c/strong\u003e\u003cbr/\u003e\n    Place a portal under your co-op partner while they are gesturing\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/TEACHER_BW.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/TEACHER_BW.jpg\" alt=\"Professor Portal\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Professor Portal\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eProfessor Portal\u003c/strong\u003e\u003cbr/\u003e\n    After completing co-op, complete Calibration Course online with a friend who hasn’t played before\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/LIMITED_PORTALS_BW.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/LIMITED_PORTALS_BW.jpg\" alt=\"Portal Conservation Society\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Portal Conservation Society\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePortal Conservation Society\u003c/strong\u003e\u003cbr/\u003e\n    Complete Chamber 3 in the Hard-Light Surfaces co-op course using only 5 total portal placements\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/FOUR_PORTALS_BW.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/FOUR_PORTALS_BW.jpg\" alt=\"Four Ring Circus\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Four Ring Circus\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFour Ring Circus\u003c/strong\u003e\u003cbr/\u003e\n    Enter 4 different portals without touching the ground in co-op\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/SPEED_RUN_COOP_BW.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/SPEED_RUN_COOP_BW.jpg\" alt=\"Triple Crown\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Triple Crown\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTriple Crown\u003c/strong\u003e\u003cbr/\u003e\n    Solve 3 co-op chambers in the Mass and Velocity course in under 60 seconds each\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/STAYING_ALIVE_BW.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/STAYING_ALIVE_BW.jpg\" alt=\"Still Alive\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Still Alive\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStill Alive\u003c/strong\u003e\u003cbr/\u003e\n    Complete Course 4 with neither you nor your co-op partner dying\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/TAUNT_CAMERA_BW.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/TAUNT_CAMERA_BW.jpg\" alt=\"Asking for Trouble\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Asking for Trouble\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAsking for Trouble\u003c/strong\u003e\u003cbr/\u003e\n    Taunt GLaDOS in front of a camera in each of the five co-op courses\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/ROCK_CRUSHES_ROBOT_BW.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/ROCK_CRUSHES_ROBOT_BW.jpg\" alt=\"Rock Portal Scissors\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Rock Portal Scissors\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRock Portal Scissors\u003c/strong\u003e\u003cbr/\u003e\n    Win 3 co-op games of rock-paper-scissors in a row\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/SPREAD_THE_LOVE_BW.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/SPREAD_THE_LOVE_BW.jpg\" alt=\"Friends List With Benefits\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Friends List With Benefits\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFriends List With Benefits\u003c/strong\u003e\u003cbr/\u003e\n    While playing co-op, hug 3 different people on your friends list\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/0c3f74f5015862a388cd141002f7d9e4627f4c65.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/0c3f74f5015862a388cd141002f7d9e4627f4c65.jpg\" alt=\"Talent Show\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Talent Show\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTalent Show\u003c/strong\u003e\u003cbr/\u003e\n    Never lose a cube in Chamber 6 of the Mobility Gels co-op course\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/620/library_600x900.jpg\" alt=\"Portal 2 box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/620/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003ePortal 2\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 45.1%\"\u003e\n        45.1%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e23/51 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e131.4h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2023-12-24\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (23)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/SURVIVE_CONTAINER_RIDE.jpg\" alt=\"Wake Up Call\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWake Up Call\u003c/strong\u003e\u003cbr\u003e\n    Survive the manual override\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 05, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/WAKE_UP.jpg\" alt=\"You Monster\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou Monster\u003c/strong\u003e\u003cbr\u003e\n    Reunite with GLaDOS\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 05, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/LASER.jpg\" alt=\"Undiscouraged\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUndiscouraged\u003c/strong\u003e\u003cbr\u003e\n    Complete the first Thermal Discouragement Beam test\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 07, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/BRIDGE.jpg\" alt=\"Bridge Over Troubling Water\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBridge Over Troubling Water\u003c/strong\u003e\u003cbr\u003e\n    Complete the first Hard Light Bridge test\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 09, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/BREAK_OUT.jpg\" alt=\"SaBOTour\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSaBOTour\u003c/strong\u003e\u003cbr\u003e\n    Make a break for it\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 17, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/STALEMATE_ASSOCIATE.jpg\" alt=\"Stalemate Associate\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStalemate Associate\u003c/strong\u003e\u003cbr\u003e\n    Press the button!\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 17, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/ADDICTED_TO_SPUDS.jpg\" alt=\"Tater Tote\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTater Tote\u003c/strong\u003e\u003cbr\u003e\n    Carry science forward\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 18, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/BLUE_GEL.jpg\" alt=\"Vertically Unchallenged\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVertically Unchallenged\u003c/strong\u003e\u003cbr\u003e\n    Master the Repulsion Gel\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 18, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/ORANGE_GEL.jpg\" alt=\"Stranger Than Friction\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStranger Than Friction\u003c/strong\u003e\u003cbr\u003e\n    Master the Propulsion Gel\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 22, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/WHITE_GEL.jpg\" alt=\"White Out\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhite Out\u003c/strong\u003e\u003cbr\u003e\n    Complete the first Conversion Gel test\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 22, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/TRACTOR_BEAM.jpg\" alt=\"Tunnel of Funnel\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTunnel of Funnel\u003c/strong\u003e\u003cbr\u003e\n    Master the Excursion Funnel\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 25, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/TRIVIAL_TEST.jpg\" alt=\"Dual Pit Experiment\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDual Pit Experiment\u003c/strong\u003e\u003cbr\u003e\n    Do the same test twice\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 22, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/WHEATLEY_TRIES_TO.jpg\" alt=\"The Part Where He Kills You\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Part Where He Kills You\u003c/strong\u003e\u003cbr\u003e\n    This is that part\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 21, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/SHOOT_THE_MOON.jpg\" alt=\"Lunacy\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLunacy\u003c/strong\u003e\u003cbr\u003e\n    That just happened\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 21, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/BOX_HOLE_IN_ONE.jpg\" alt=\"Drop Box\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDrop Box\u003c/strong\u003e\u003cbr\u003e\n    Place a cube on a button without touching the cube\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 07, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/NOT_THE_DROID.jpg\" alt=\"Scanned Alone\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eScanned Alone\u003c/strong\u003e\u003cbr\u003e\n    Stand in a defective turret detector\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 17, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/SAVE_REDEMPTION_TURRET.jpg\" alt=\"No Hard Feelings\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNo Hard Feelings\u003c/strong\u003e\u003cbr\u003e\n    Save a turret from redemption\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 17, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/NO_BOAT.jpg\" alt=\"Ship Overboard\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShip Overboard\u003c/strong\u003e\u003cbr\u003e\n    Discover the missing experiment\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 18, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/A3_DOORS.jpg\" alt=\"Door Prize\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDoor Prize\u003c/strong\u003e\u003cbr\u003e\n    Examine all the vitrified test chamber doors\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 18, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/HI_FIVE_YOUR_PARTNER.jpg\" alt=\"High Five\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHigh Five\u003c/strong\u003e\u003cbr\u003e\n    Celebrate your cooperative calibration success\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 03, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/TEAM_BUILDING.jpg\" alt=\"Team Building\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTeam Building\u003c/strong\u003e\u003cbr\u003e\n    Complete all test chambers in the Team Building co-op course\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/MASS_AND_VELOCITY.jpg\" alt=\"Confidence Building\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eConfidence Building\u003c/strong\u003e\u003cbr\u003e\n    Complete all test chambers in the Mass and Velocity co-op course\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 10, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/WITH_STYLE.jpg\" alt=\"Air Show\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAir Show\u003c/strong\u003e\u003cbr\u003e\n    Perform 2 aerial gestures before touching the ground in co-op\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 03, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (28)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/SPEED_RUN_LEVEL_BW.jpg\" alt=\"Overclocker\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOverclocker\u003c/strong\u003e\u003cbr\u003e\n    Complete Test Chamber 10 in 70 seconds\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/COMPLIANT_BW.jpg\" alt=\"Pit Boss\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePit Boss\u003c/strong\u003e\u003cbr\u003e\n    Show that pit who's boss\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/SAVE_CUBE_BW.jpg\" alt=\"Preservation of Mass\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePreservation of Mass\u003c/strong\u003e\u003cbr\u003e\n    Break the rules in Test Chamber 07\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/LAUNCH_TURRET_BW.jpg\" alt=\"Pturretdactyl\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePturretdactyl\u003c/strong\u003e\u003cbr\u003e\n    Use an Aerial Faith Plate to launch a turret\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/CLEAN_UP_BW.jpg\" alt=\"Final Transmission\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFinal Transmission\u003c/strong\u003e\u003cbr\u003e\n    Find the hidden signal in one of the Rat Man's dens\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/REENTER_TEST_CHAMBERS_BW.jpg\" alt=\"Good Listener\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGood Listener\u003c/strong\u003e\u003cbr\u003e\n    Take GLaDOS' escape advice\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/CATCH_CRAZY_BOX_BW.jpg\" alt=\"Schrodinger's Catch\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSchrodinger's Catch\u003c/strong\u003e\u003cbr\u003e\n    Catch a blue-painted box before it touches the ground\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/PORTRAIT_BW.jpg\" alt=\"Portrait of a Lady\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePortrait of a Lady\u003c/strong\u003e\u003cbr\u003e\n    Find a hidden portrait\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/DEFIANT_BW.jpg\" alt=\"You Made Your Point\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou Made Your Point\u003c/strong\u003e\u003cbr\u003e\n    Refuse to solve the first test in Chapter 8\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/BREAK_MONITORS_BW.jpg\" alt=\"Smash TV\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSmash TV\u003c/strong\u003e\u003cbr\u003e\n    Break 11 test chamber monitors\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/HUG_NAME_BW.jpg\" alt=\"Bridge Building\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBridge Building\u003c/strong\u003e\u003cbr\u003e\n    Complete all test chambers in the Hard-Light Surfaces co-op course\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/EXCURSION_FUNNELS_BW.jpg\" alt=\"Obstacle Building\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eObstacle Building\u003c/strong\u003e\u003cbr\u003e\n    Complete all test chambers in the Excursion Funnels co-op course\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/NEW_BLOOD_BW.jpg\" alt=\"You Saved Science\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou Saved Science\u003c/strong\u003e\u003cbr\u003e\n    Complete all test chambers in all courses of co-op\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/NICE_CATCH_BW.jpg\" alt=\"Iron Grip\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIron Grip\u003c/strong\u003e\u003cbr\u003e\n    Never lose a cube in Chamber 6 of the Mass and Velocity co-op course\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/TAUNTS_BW.jpg\" alt=\"Gesticul-8\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGesticul-8\u003c/strong\u003e\u003cbr\u003e\n    Perform all 8 gestures of your own volition in co-op\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/YOU_MONSTER_BW.jpg\" alt=\"Can't Touch This\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCan't Touch This\u003c/strong\u003e\u003cbr\u003e\n    Dance in front of a turret blocked by a hard light bridge in co-op\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/PARTNER_DROP_BW.jpg\" alt=\"Empty Gesture\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEmpty Gesture\u003c/strong\u003e\u003cbr\u003e\n    Drop your co-op partner in goo while they are gesturing by removing the bridge under them\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/PARTY_OF_THREE_BW.jpg\" alt=\"Party of Three\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eParty of Three\u003c/strong\u003e\u003cbr\u003e\n    Find the hidden companion cube in co-op test chamber\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/PORTAL_TAUNT_BW.jpg\" alt=\"Narbacular Drop\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNarbacular Drop\u003c/strong\u003e\u003cbr\u003e\n    Place a portal under your co-op partner while they are gesturing\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/TEACHER_BW.jpg\" alt=\"Professor Portal\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eProfessor Portal\u003c/strong\u003e\u003cbr\u003e\n    After completing co-op, complete Calibration Course online with a friend who hasn’t played before\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/LIMITED_PORTALS_BW.jpg\" alt=\"Portal Conservation Society\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePortal Conservation Society\u003c/strong\u003e\u003cbr\u003e\n    Complete Chamber 3 in the Hard-Light Surfaces co-op course using only 5 total portal placements\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/FOUR_PORTALS_BW.jpg\" alt=\"Four Ring Circus\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFour Ring Circus\u003c/strong\u003e\u003cbr\u003e\n    Enter 4 different portals without touching the ground in co-op\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/SPEED_RUN_COOP_BW.jpg\" alt=\"Triple Crown\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTriple Crown\u003c/strong\u003e\u003cbr\u003e\n    Solve 3 co-op chambers in the Mass and Velocity course in under 60 seconds each\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/STAYING_ALIVE_BW.jpg\" alt=\"Still Alive\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStill Alive\u003c/strong\u003e\u003cbr\u003e\n    Complete Course 4 with neither you nor your co-op partner dying\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/TAUNT_CAMERA_BW.jpg\" alt=\"Asking for Trouble\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAsking for Trouble\u003c/strong\u003e\u003cbr\u003e\n    Taunt GLaDOS in front of a camera in each of the five co-op courses\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/ROCK_CRUSHES_ROBOT_BW.jpg\" alt=\"Rock Portal Scissors\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRock Portal Scissors\u003c/strong\u003e\u003cbr\u003e\n    Win 3 co-op games of rock-paper-scissors in a row\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/SPREAD_THE_LOVE_BW.jpg\" alt=\"Friends List With Benefits\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFriends List With Benefits\u003c/strong\u003e\u003cbr\u003e\n    While playing co-op, hug 3 different people on your friends list\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/620/0c3f74f5015862a388cd141002f7d9e4627f4c65.jpg\" alt=\"Talent Show\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTalent Show\u003c/strong\u003e\u003cbr\u003e\n    Never lose a cube in Chamber 6 of the Mobility Gels co-op course\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Portal 2 - 45.1% complete with 23/51 achievements unlocked.",
      "date_published": "2023-12-24T00:00:00Z",
      "date_modified": "2023-12-24T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "portal-2"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/mxgp3---the-official-motocross-videogame/",
      "url": "https://go.waylonwalker.com/steam/mxgp3---the-official-motocross-videogame/",
      "title": "MXGP3 - The Official Motocross Videogame",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/561600/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/561600/library_600x900.jpg\" alt=\"MXGP3 - The Official Motocross Videogame box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/561600/header.jpg\u0026#39;\"/ data-glightbox=\"description: MXGP3 - The Official Motocross Videogame box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eMXGP3 - The Official Motocross Videogame\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 2.78%\"\u003e\n        2.78%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e1/36 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e6.5h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2023-12-24\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (1)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/041292e4cab3c18aeff5720fd4973e374d1dfbea.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/041292e4cab3c18aeff5720fd4973e374d1dfbea.jpg\" alt=\"Get back up\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Get back up\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGet back up\u003c/strong\u003e\u003cbr/\u003e\n    Fall for the first time\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 22, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (35)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/df2182db26db4fe5db157948c8e42f6589d76d35.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/df2182db26db4fe5db157948c8e42f6589d76d35.jpg\" alt=\"Such finesse!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Such finesse!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSuch finesse!\u003c/strong\u003e\u003cbr/\u003e\n    Make your first purchase in the rider customisation page\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/936bf0d9ee0303964c1c35507f23e28bdcb509e2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/936bf0d9ee0303964c1c35507f23e28bdcb509e2.jpg\" alt=\"Holeshot!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Holeshot!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHoleshot!\u003c/strong\u003e\u003cbr/\u003e\n    Get a Holeshot in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/7f1afea76051689dcad6c39976a6a83d5cfc099d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/7f1afea76051689dcad6c39976a6a83d5cfc099d.jpg\" alt=\"Déjà vu\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Déjà vu\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDéjà vu\u003c/strong\u003e\u003cbr/\u003e\n    Use the Rewind for the first time\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/9a5fd6dcd3073d52ebdcaf83fe01882d512187c0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/9a5fd6dcd3073d52ebdcaf83fe01882d512187c0.jpg\" alt=\"Desert marauder\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Desert marauder\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDesert marauder\u003c/strong\u003e\u003cbr/\u003e\n    Win a race at Losail in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/7073d753cf4b81931d9e5806e5230d9f3c204ec5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/7073d753cf4b81931d9e5806e5230d9f3c204ec5.jpg\" alt=\"The golden temple\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The golden temple\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe golden temple\u003c/strong\u003e\u003cbr/\u003e\n    Win a race at Suphan Buri in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/fcee8f1aa8497e6767344d9a02d1d7445b2e620f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/fcee8f1aa8497e6767344d9a02d1d7445b2e620f.jpg\" alt=\"The Flying Dutchman\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Flying Dutchman\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Flying Dutchman\u003c/strong\u003e\u003cbr/\u003e\n    Win a race at Valkenswaard in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/547e8d997181c6ce931816492784434c842d7171.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/547e8d997181c6ce931816492784434c842d7171.jpg\" alt=\"Tango at Neuquen\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tango at Neuquen\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTango at Neuquen\u003c/strong\u003e\u003cbr/\u003e\n    Win a race at Neuquen in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/a7d292eb41abf79ef1f2fc5b00280cc508a0ca3b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/a7d292eb41abf79ef1f2fc5b00280cc508a0ca3b.jpg\" alt=\"El Mariachi\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: El Mariachi\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEl Mariachi\u003c/strong\u003e\u003cbr/\u003e\n    Win a race at Leon in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/8757664c0761451604330f8e40643d2657aec90f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/8757664c0761451604330f8e40643d2657aec90f.jpg\" alt=\"King of Kegums\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: King of Kegums\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Kegums\u003c/strong\u003e\u003cbr/\u003e\n    Win a race at Kegums in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/aa87e4dea01f25d6fe4a7ee94dfdbaf8a7cf5a32.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/aa87e4dea01f25d6fe4a7ee94dfdbaf8a7cf5a32.jpg\" alt=\"Teutonic Master\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Teutonic Master\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTeutonic Master\u003c/strong\u003e\u003cbr/\u003e\n    Win a race at Teutschenthal in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/a32eb30dee0a7b0d82f38dcbfc4349eb22c5a750.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/a32eb30dee0a7b0d82f38dcbfc4349eb22c5a750.jpg\" alt=\"Where eagles dare\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Where eagles dare\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhere eagles dare\u003c/strong\u003e\u003cbr/\u003e\n    Win a race at Pietramurata in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/942f5a7979e7a58155db53651a7e9fc0d6f1f322.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/942f5a7979e7a58155db53651a7e9fc0d6f1f322.jpg\" alt=\"Spanish royalty\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Spanish royalty\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpanish royalty\u003c/strong\u003e\u003cbr/\u003e\n    Win a race at Talavera de la Reina in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/5a83b609fd5236f650ff7ee14a01d4d0c75ab8bb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/5a83b609fd5236f650ff7ee14a01d4d0c75ab8bb.jpg\" alt=\"Mind-blowing\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mind-blowing\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMind-blowing\u003c/strong\u003e\u003cbr/\u003e\n    Win a race at Saint-Jean-d\u0026#39;Angély in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/06606472beaa74464de70f30cd6e4fc408331eaa.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/06606472beaa74464de70f30cd6e4fc408331eaa.jpg\" alt=\"Tea time\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tea time\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTea time\u003c/strong\u003e\u003cbr/\u003e\n    Win a race at Matterley Basin in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/af7144062149c359c8eebdae7f60129a26ebe31d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/af7144062149c359c8eebdae7f60129a26ebe31d.jpg\" alt=\"Battle of the titans\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Battle of the titans\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBattle of the titans\u003c/strong\u003e\u003cbr/\u003e\n    Win a race at Mantua in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/29d461a308a93958b794a3c1407cae2d5bf35ac1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/29d461a308a93958b794a3c1407cae2d5bf35ac1.jpg\" alt=\"Conquering Loket\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Conquering Loket\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eConquering Loket\u003c/strong\u003e\u003cbr/\u003e\n    Win a race at Loket in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/ccff4dd54288311a53a54c6c9df6a10d7778dc28.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/ccff4dd54288311a53a54c6c9df6a10d7778dc28.jpg\" alt=\"The swamp forest\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The swamp forest\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe swamp forest\u003c/strong\u003e\u003cbr/\u003e\n    Win a race at Lommel in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/57edc00e2bf393ba4bb76d7e30a666722d182494.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/57edc00e2bf393ba4bb76d7e30a666722d182494.jpg\" alt=\"The lion is free\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The lion is free\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe lion is free\u003c/strong\u003e\u003cbr/\u003e\n    Win a race at Frauenfeld-Gachnang in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/b9fcaca43282828b5d5c4d7cf64fa79c47dd3cd3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/b9fcaca43282828b5d5c4d7cf64fa79c47dd3cd3.jpg\" alt=\"In the land of the windmills\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: In the land of the windmills\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIn the land of the windmills\u003c/strong\u003e\u003cbr/\u003e\n    Win a race at Assen in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/d19db16eba34dc79cb27da8c4c665583fbdfd922.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/d19db16eba34dc79cb27da8c4c665583fbdfd922.jpg\" alt=\"The whole package\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The whole package\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe whole package\u003c/strong\u003e\u003cbr/\u003e\n    Win a race at Charlotte in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/71518dd26b15c9491929544820d143fd58e23fb0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/71518dd26b15c9491929544820d143fd58e23fb0.jpg\" alt=\"Victory in the Old West\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Victory in the Old West\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVictory in the Old West\u003c/strong\u003e\u003cbr/\u003e\n    Win a race at Glen Helen in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/e79e9ed48c9cff0ddcc95fd8fb209f1da83968c1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/e79e9ed48c9cff0ddcc95fd8fb209f1da83968c1.jpg\" alt=\"Perfect balance\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Perfect balance\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePerfect balance\u003c/strong\u003e\u003cbr/\u003e\n    Win a race without taking a fall in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/f6e71ba165889f0bb00d93785778f4aed09ac72c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/f6e71ba165889f0bb00d93785778f4aed09ac72c.jpg\" alt=\"No cheats!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: No cheats!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNo cheats!\u003c/strong\u003e\u003cbr/\u003e\n    Win a race without using the Rewind in any Single Player game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/896d00ff41b7c8c85552d4bae15dc9634ccd06bd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/896d00ff41b7c8c85552d4bae15dc9634ccd06bd.jpg\" alt=\"You\u0026#39;re too pro\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: You\u0026#39;re too pro\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou\u0026#39;re too pro\u003c/strong\u003e\u003cbr/\u003e\n    Win a race with Pro Physics in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/ce4af3ddcf69aae7bb85d401311355d82914b487.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/ce4af3ddcf69aae7bb85d401311355d82914b487.jpg\" alt=\"Winning alliance\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Winning alliance\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWinning alliance\u003c/strong\u003e\u003cbr/\u003e\n    Win a race with your Custom Team in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/b2b20f4c55e3eb73ad13a5a97a81bf29b76e5da7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/b2b20f4c55e3eb73ad13a5a97a81bf29b76e5da7.jpg\" alt=\"Eat my dust!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Eat my dust!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEat my dust!\u003c/strong\u003e\u003cbr/\u003e\n    Get 10 Holeshots in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/4a6623155f3ed47c7432b8f33040debd57c483d7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/4a6623155f3ed47c7432b8f33040debd57c483d7.jpg\" alt=\"Green fire\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Green fire\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGreen fire\u003c/strong\u003e\u003cbr/\u003e\n    Win a Monster Energy FIM MXoN with any of the available nations\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/17cd939f833a1d55d68652377b3a9a603b865085.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/17cd939f833a1d55d68652377b3a9a603b865085.jpg\" alt=\"The cock crows again\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The cock crows again\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe cock crows again\u003c/strong\u003e\u003cbr/\u003e\n    Win a Monster Energy FIM MXoN with France\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/3f132f4ceacc2ebe888ec8c429a1e6a27ad0ceab.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/3f132f4ceacc2ebe888ec8c429a1e6a27ad0ceab.jpg\" alt=\"Rookie rider\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Rookie rider\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRookie rider\u003c/strong\u003e\u003cbr/\u003e\n    Cover a total of 50 km (31 miles) with any bike \n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/1968f3f01203b7cb0e6e4c5972878b398f7f0ff4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/1968f3f01203b7cb0e6e4c5972878b398f7f0ff4.jpg\" alt=\"Expert rider\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Expert rider\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert rider\u003c/strong\u003e\u003cbr/\u003e\n    Cover a total of 150 km (93 miles) with any bike\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/b6b093cc258d677f082b119e1e00e1efb1e601c9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/b6b093cc258d677f082b119e1e00e1efb1e601c9.jpg\" alt=\"Professional rider\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Professional rider\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eProfessional rider\u003c/strong\u003e\u003cbr/\u003e\n    Cover a total of 300 km (186 miles) with any bike\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/a4f3ef7479ca311a1b3df8f7d83b9ac952dce810.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/a4f3ef7479ca311a1b3df8f7d83b9ac952dce810.jpg\" alt=\"My treasures\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: My treasures\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMy treasures\u003c/strong\u003e\u003cbr/\u003e\n    Purchase at least one custom bike from each manufacturer\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/9d15a716b7ce50c1b3b6d2fd08f458a81affd551.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/9d15a716b7ce50c1b3b6d2fd08f458a81affd551.jpg\" alt=\"A natural talent\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A natural talent\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA natural talent\u003c/strong\u003e\u003cbr/\u003e\n    Sign a contract with an Official Team of the MXGP class in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/dbfd35d248d9c9c8735f8b97d9b88485b4b7c840.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/dbfd35d248d9c9c8735f8b97d9b88485b4b7c840.jpg\" alt=\"I\u0026#39;m unstoppable!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: I\u0026#39;m unstoppable!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI\u0026#39;m unstoppable!\u003c/strong\u003e\u003cbr/\u003e\n    Win 50 Grand Prix in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/b8d2f033db58290a614831d7a07e128fd4298b22.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/b8d2f033db58290a614831d7a07e128fd4298b22.jpg\" alt=\"Undisputed champion\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Undisputed champion\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUndisputed champion\u003c/strong\u003e\u003cbr/\u003e\n    Become world champion in the MXGP class in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/561600/library_600x900.jpg\" alt=\"MXGP3 - The Official Motocross Videogame box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/561600/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eMXGP3 - The Official Motocross Videogame\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 2.78%\"\u003e\n        2.78%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e1/36 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e6.5h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2023-12-24\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (1)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/041292e4cab3c18aeff5720fd4973e374d1dfbea.jpg\" alt=\"Get back up\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGet back up\u003c/strong\u003e\u003cbr\u003e\n    Fall for the first time\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 22, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (35)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/df2182db26db4fe5db157948c8e42f6589d76d35.jpg\" alt=\"Such finesse!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSuch finesse!\u003c/strong\u003e\u003cbr\u003e\n    Make your first purchase in the rider customisation page\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/936bf0d9ee0303964c1c35507f23e28bdcb509e2.jpg\" alt=\"Holeshot!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHoleshot!\u003c/strong\u003e\u003cbr\u003e\n    Get a Holeshot in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/7f1afea76051689dcad6c39976a6a83d5cfc099d.jpg\" alt=\"Déjà vu\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDéjà vu\u003c/strong\u003e\u003cbr\u003e\n    Use the Rewind for the first time\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/9a5fd6dcd3073d52ebdcaf83fe01882d512187c0.jpg\" alt=\"Desert marauder\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDesert marauder\u003c/strong\u003e\u003cbr\u003e\n    Win a race at Losail in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/7073d753cf4b81931d9e5806e5230d9f3c204ec5.jpg\" alt=\"The golden temple\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe golden temple\u003c/strong\u003e\u003cbr\u003e\n    Win a race at Suphan Buri in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/fcee8f1aa8497e6767344d9a02d1d7445b2e620f.jpg\" alt=\"The Flying Dutchman\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Flying Dutchman\u003c/strong\u003e\u003cbr\u003e\n    Win a race at Valkenswaard in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/547e8d997181c6ce931816492784434c842d7171.jpg\" alt=\"Tango at Neuquen\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTango at Neuquen\u003c/strong\u003e\u003cbr\u003e\n    Win a race at Neuquen in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/a7d292eb41abf79ef1f2fc5b00280cc508a0ca3b.jpg\" alt=\"El Mariachi\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEl Mariachi\u003c/strong\u003e\u003cbr\u003e\n    Win a race at Leon in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/8757664c0761451604330f8e40643d2657aec90f.jpg\" alt=\"King of Kegums\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Kegums\u003c/strong\u003e\u003cbr\u003e\n    Win a race at Kegums in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/aa87e4dea01f25d6fe4a7ee94dfdbaf8a7cf5a32.jpg\" alt=\"Teutonic Master\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTeutonic Master\u003c/strong\u003e\u003cbr\u003e\n    Win a race at Teutschenthal in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/a32eb30dee0a7b0d82f38dcbfc4349eb22c5a750.jpg\" alt=\"Where eagles dare\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhere eagles dare\u003c/strong\u003e\u003cbr\u003e\n    Win a race at Pietramurata in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/942f5a7979e7a58155db53651a7e9fc0d6f1f322.jpg\" alt=\"Spanish royalty\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpanish royalty\u003c/strong\u003e\u003cbr\u003e\n    Win a race at Talavera de la Reina in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/5a83b609fd5236f650ff7ee14a01d4d0c75ab8bb.jpg\" alt=\"Mind-blowing\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMind-blowing\u003c/strong\u003e\u003cbr\u003e\n    Win a race at Saint-Jean-d'Angély in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/06606472beaa74464de70f30cd6e4fc408331eaa.jpg\" alt=\"Tea time\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTea time\u003c/strong\u003e\u003cbr\u003e\n    Win a race at Matterley Basin in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/af7144062149c359c8eebdae7f60129a26ebe31d.jpg\" alt=\"Battle of the titans\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBattle of the titans\u003c/strong\u003e\u003cbr\u003e\n    Win a race at Mantua in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/29d461a308a93958b794a3c1407cae2d5bf35ac1.jpg\" alt=\"Conquering Loket\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eConquering Loket\u003c/strong\u003e\u003cbr\u003e\n    Win a race at Loket in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/ccff4dd54288311a53a54c6c9df6a10d7778dc28.jpg\" alt=\"The swamp forest\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe swamp forest\u003c/strong\u003e\u003cbr\u003e\n    Win a race at Lommel in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/57edc00e2bf393ba4bb76d7e30a666722d182494.jpg\" alt=\"The lion is free\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe lion is free\u003c/strong\u003e\u003cbr\u003e\n    Win a race at Frauenfeld-Gachnang in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/b9fcaca43282828b5d5c4d7cf64fa79c47dd3cd3.jpg\" alt=\"In the land of the windmills\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIn the land of the windmills\u003c/strong\u003e\u003cbr\u003e\n    Win a race at Assen in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/d19db16eba34dc79cb27da8c4c665583fbdfd922.jpg\" alt=\"The whole package\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe whole package\u003c/strong\u003e\u003cbr\u003e\n    Win a race at Charlotte in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/71518dd26b15c9491929544820d143fd58e23fb0.jpg\" alt=\"Victory in the Old West\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVictory in the Old West\u003c/strong\u003e\u003cbr\u003e\n    Win a race at Glen Helen in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/e79e9ed48c9cff0ddcc95fd8fb209f1da83968c1.jpg\" alt=\"Perfect balance\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePerfect balance\u003c/strong\u003e\u003cbr\u003e\n    Win a race without taking a fall in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/f6e71ba165889f0bb00d93785778f4aed09ac72c.jpg\" alt=\"No cheats!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNo cheats!\u003c/strong\u003e\u003cbr\u003e\n    Win a race without using the Rewind in any Single Player game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/896d00ff41b7c8c85552d4bae15dc9634ccd06bd.jpg\" alt=\"You're too pro\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou're too pro\u003c/strong\u003e\u003cbr\u003e\n    Win a race with Pro Physics in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/ce4af3ddcf69aae7bb85d401311355d82914b487.jpg\" alt=\"Winning alliance\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWinning alliance\u003c/strong\u003e\u003cbr\u003e\n    Win a race with your Custom Team in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/b2b20f4c55e3eb73ad13a5a97a81bf29b76e5da7.jpg\" alt=\"Eat my dust!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEat my dust!\u003c/strong\u003e\u003cbr\u003e\n    Get 10 Holeshots in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/4a6623155f3ed47c7432b8f33040debd57c483d7.jpg\" alt=\"Green fire\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGreen fire\u003c/strong\u003e\u003cbr\u003e\n    Win a Monster Energy FIM MXoN with any of the available nations\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/17cd939f833a1d55d68652377b3a9a603b865085.jpg\" alt=\"The cock crows again\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe cock crows again\u003c/strong\u003e\u003cbr\u003e\n    Win a Monster Energy FIM MXoN with France\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/3f132f4ceacc2ebe888ec8c429a1e6a27ad0ceab.jpg\" alt=\"Rookie rider\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRookie rider\u003c/strong\u003e\u003cbr\u003e\n    Cover a total of 50 km (31 miles) with any bike \n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/1968f3f01203b7cb0e6e4c5972878b398f7f0ff4.jpg\" alt=\"Expert rider\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert rider\u003c/strong\u003e\u003cbr\u003e\n    Cover a total of 150 km (93 miles) with any bike\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/b6b093cc258d677f082b119e1e00e1efb1e601c9.jpg\" alt=\"Professional rider\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eProfessional rider\u003c/strong\u003e\u003cbr\u003e\n    Cover a total of 300 km (186 miles) with any bike\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/a4f3ef7479ca311a1b3df8f7d83b9ac952dce810.jpg\" alt=\"My treasures\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMy treasures\u003c/strong\u003e\u003cbr\u003e\n    Purchase at least one custom bike from each manufacturer\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/9d15a716b7ce50c1b3b6d2fd08f458a81affd551.jpg\" alt=\"A natural talent\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA natural talent\u003c/strong\u003e\u003cbr\u003e\n    Sign a contract with an Official Team of the MXGP class in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/dbfd35d248d9c9c8735f8b97d9b88485b4b7c840.jpg\" alt=\"I'm unstoppable!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI'm unstoppable!\u003c/strong\u003e\u003cbr\u003e\n    Win 50 Grand Prix in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/561600/b8d2f033db58290a614831d7a07e128fd4298b22.jpg\" alt=\"Undisputed champion\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUndisputed champion\u003c/strong\u003e\u003cbr\u003e\n    Become world champion in the MXGP class in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for MXGP3 - The Official Motocross Videogame - 2.78% complete with 1/36 achievements unlocked.",
      "date_published": "2023-12-24T00:00:00Z",
      "date_modified": "2023-12-24T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "mxgp3---the-official-motocross-videogame"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/monster-energy-supercross---the-official-videogame/",
      "url": "https://go.waylonwalker.com/steam/monster-energy-supercross---the-official-videogame/",
      "title": "Monster Energy Supercross - The Official Videogame",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/711750/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/711750/library_600x900.jpg\" alt=\"Monster Energy Supercross - The Official Videogame box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/711750/header.jpg\u0026#39;\"/ data-glightbox=\"description: Monster Energy Supercross - The Official Videogame box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eMonster Energy Supercross - The Official Videogame\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 40.0%\"\u003e\n        40.0%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e20/50 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e26.6h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2023-12-16\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (20)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/52c25f86f80b31aaf4464d5c8196691983ebde10.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/52c25f86f80b31aaf4464d5c8196691983ebde10.jpg\" alt=\"Apprentice\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Apprentice\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eApprentice\u003c/strong\u003e\u003cbr/\u003e\n    Reach Prestige Level 25\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 27, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/634ff383a70dc18fca6eb3a4d81d4dcbd7ecf839.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/634ff383a70dc18fca6eb3a4d81d4dcbd7ecf839.jpg\" alt=\"Model Student\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Model Student\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eModel Student\u003c/strong\u003e\u003cbr/\u003e\n    Reach Prestige Level 50\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 01, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/ab7715dfe0a76f2265eca5e9ab8aa8c0885eebcf.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/ab7715dfe0a76f2265eca5e9ab8aa8c0885eebcf.jpg\" alt=\"West Coast Champion\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: West Coast Champion\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWest Coast Champion\u003c/strong\u003e\u003cbr/\u003e\n    Reach the podium in the 250 West Championship in Career mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 27, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/1fd9f9c42abd5f7a0745ac024de1fbf68cd3c017.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/1fd9f9c42abd5f7a0745ac024de1fbf68cd3c017.jpg\" alt=\"Anaheim 1 Event\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Anaheim 1 Event\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAnaheim 1 Event\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event at Anaheim 1 in any game mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 26, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/dc9cbfc5a18e53cd155120e261a8e2247d24da1c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/dc9cbfc5a18e53cd155120e261a8e2247d24da1c.jpg\" alt=\"San Diego Event\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: San Diego Event\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSan Diego Event\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event at San Diego in any game mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 26, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/77e1ebf4294f47540aac90748e9c73a3c619a060.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/77e1ebf4294f47540aac90748e9c73a3c619a060.jpg\" alt=\"Glendale Event\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Glendale Event\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGlendale Event\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event at Glendale in any game mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 26, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/7fb0d6133c57a1cc75ce47a895ce5e8d62d8b35b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/7fb0d6133c57a1cc75ce47a895ce5e8d62d8b35b.jpg\" alt=\"Oakland Event\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Oakland Event\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOakland Event\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event at Oakland in any game mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 27, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/79892137801465f0e73235349794d87abda9ac0e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/79892137801465f0e73235349794d87abda9ac0e.jpg\" alt=\"Minneapolis Event\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Minneapolis Event\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMinneapolis Event\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event at Minneapolis in any game mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 02, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/57c189054b2136c72388b121ee561723a93ee679.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/57c189054b2136c72388b121ee561723a93ee679.jpg\" alt=\"Atlanta Event\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Atlanta Event\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAtlanta Event\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event at Atlanta in any game mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 30, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/61881c988a04cc24b64e82db35879ef0f25afa3d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/61881c988a04cc24b64e82db35879ef0f25afa3d.jpg\" alt=\"Seattle Event\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Seattle Event\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSeattle Event\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event at Seattle in any game mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 27, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/3baaf750712aa474de483d57cc8777c180146cad.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/3baaf750712aa474de483d57cc8777c180146cad.jpg\" alt=\"Salt Lake City Event\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Salt Lake City Event\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSalt Lake City Event\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event at Salt Lake City in any game mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 27, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/9d00da04c098fe9c3e97f323028bbab3aa0b1765.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/9d00da04c098fe9c3e97f323028bbab3aa0b1765.jpg\" alt=\"Las Vegas Event\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Las Vegas Event\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLas Vegas Event\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event at Las Vegas in any game mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 26, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/4e2bdd310a53aa5829af21fb2b2d439c54222b67.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/4e2bdd310a53aa5829af21fb2b2d439c54222b67.jpg\" alt=\"Tightrope walker\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tightrope walker\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTightrope walker\u003c/strong\u003e\u003cbr/\u003e\n    Complete a race without taking a fall in any game mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 30, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/fb1a84f6a4efd90a07c69c4bbfe1ce232bfd8556.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/fb1a84f6a4efd90a07c69c4bbfe1ce232bfd8556.jpg\" alt=\"What\u0026#39;s done is done\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: What\u0026#39;s done is done\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhat\u0026#39;s done is done\u003c/strong\u003e\u003cbr/\u003e\n    Complete a race without using Rewind in any game mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 26, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/0d75cf49ca95990f5fb02bdfa9a12690b12b01bc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/0d75cf49ca95990f5fb02bdfa9a12690b12b01bc.jpg\" alt=\"Professional Rider\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Professional Rider\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eProfessional Rider\u003c/strong\u003e\u003cbr/\u003e\n    Complete a race with Normal Physics in any game mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 26, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/75d441ed78dfc28667afa9b91369d3b86bc9666b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/75d441ed78dfc28667afa9b91369d3b86bc9666b.jpg\" alt=\"A good first take\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A good first take\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA good first take\u003c/strong\u003e\u003cbr/\u003e\n    Complete a race without taking a fall or using Rewind in any game mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 30, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/40cb3902526557d8675a78717a75c3767572c553.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/40cb3902526557d8675a78717a75c3767572c553.jpg\" alt=\"Keep it up!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Keep it up!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKeep it up!\u003c/strong\u003e\u003cbr/\u003e\n    Race a total of 50 miles (80 km) with any bike \u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 28, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/75a13a0311f923408cfd3b8e82d1be36d8be4ce9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/75a13a0311f923408cfd3b8e82d1be36d8be4ce9.jpg\" alt=\"All that glitters\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: All that glitters\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAll that glitters\u003c/strong\u003e\u003cbr/\u003e\n    Earn a total of 500,000 SX Credits\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 01, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/2addd9402ed91c51e46a725889e75a9242c4aedd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/2addd9402ed91c51e46a725889e75a9242c4aedd.jpg\" alt=\"The first of many\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The first of many\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe first of many\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event in any game mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 26, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/75c7720a934921c99bf6608097fc0eb4ddd0fd0d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/75c7720a934921c99bf6608097fc0eb4ddd0fd0d.jpg\" alt=\"May the journey begin\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: May the journey begin\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMay the journey begin\u003c/strong\u003e\u003cbr/\u003e\n    Create your Custom Rider\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 26, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (30)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/0a0e4284ac30b2afa4c68d925d16e6c452bd6dce.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/0a0e4284ac30b2afa4c68d925d16e6c452bd6dce.jpg\" alt=\"Maestro\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Maestro\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaestro\u003c/strong\u003e\u003cbr/\u003e\n    Reach Prestige Level 100\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/7d6556e2e5e2f1bd2a678b7639be17312a3a5152.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/7d6556e2e5e2f1bd2a678b7639be17312a3a5152.jpg\" alt=\"East Coast Champion\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: East Coast Champion\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEast Coast Champion\u003c/strong\u003e\u003cbr/\u003e\n    Reach the podium in the 250 East Championship in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/2c2c81d1d5ab0632b6fa21804832370073659b86.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/2c2c81d1d5ab0632b6fa21804832370073659b86.jpg\" alt=\"On top of the world\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: On top of the world\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOn top of the world\u003c/strong\u003e\u003cbr/\u003e\n    Reach the podium in the 450 Championship in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/b1a0753b21edcb09389adf180668cdaa9a714626.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/b1a0753b21edcb09389adf180668cdaa9a714626.jpg\" alt=\"Until the last breath\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Until the last breath\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUntil the last breath\u003c/strong\u003e\u003cbr/\u003e\n    Pass a Last Chance Qualifier session in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/da0e8039cb0ac3fc53462b046686712eda195df8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/da0e8039cb0ac3fc53462b046686712eda195df8.jpg\" alt=\"Anaheim 2 Event\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Anaheim 2 Event\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAnaheim 2 Event\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event at Anaheim 2 in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/58dbb824f2625e211ac45227a269c60d925376c9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/58dbb824f2625e211ac45227a269c60d925376c9.jpg\" alt=\"Arlington Event\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Arlington Event\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArlington Event\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event at Arlington in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/f1952f862faa0e06f2cf843ef4ba105e8e13763f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/f1952f862faa0e06f2cf843ef4ba105e8e13763f.jpg\" alt=\"Toronto Event\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Toronto Event\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eToronto Event\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event at Toronto in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/db3759436f2bc994c5cf9bce06ee959eba180762.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/db3759436f2bc994c5cf9bce06ee959eba180762.jpg\" alt=\"Daytona Beach Event\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Daytona Beach Event\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDaytona Beach Event\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event at Daytona Beach in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/3f07d169cd0ee2b7e9a0dd515dd02edb3a96feee.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/3f07d169cd0ee2b7e9a0dd515dd02edb3a96feee.jpg\" alt=\"Indianapolis Event\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Indianapolis Event\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIndianapolis Event\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event at Indianapolis in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/ba6db0cad25013de000af728a5efee7e4e3d7efa.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/ba6db0cad25013de000af728a5efee7e4e3d7efa.jpg\" alt=\"Detroit Event\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Detroit Event\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDetroit Event\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event at Detroit in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/0c38600a1f746ff95aebbcb2ac7a09d326f6c1c1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/0c38600a1f746ff95aebbcb2ac7a09d326f6c1c1.jpg\" alt=\"St. Louis Event\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: St. Louis Event\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSt. Louis Event\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event at St. Louis in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/c06f1e42afde896eef7f1dc389db83938022ffb5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/c06f1e42afde896eef7f1dc389db83938022ffb5.jpg\" alt=\"East Rutherford Event\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: East Rutherford Event\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEast Rutherford Event\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event at East Rutherford in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/c0915765cd4df4b4b0a1637ae8be0bf621b6cb2c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/c0915765cd4df4b4b0a1637ae8be0bf621b6cb2c.jpg\" alt=\"American kangaroo\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: American kangaroo\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAmerican kangaroo\u003c/strong\u003e\u003cbr/\u003e\n    Make 50 successive jumps without taking a fall or using Rewind in Time Attack mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/19baf9e061c053d599f2748d19236bfadb00de8e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/19baf9e061c053d599f2748d19236bfadb00de8e.jpg\" alt=\"Tireless\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tireless\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTireless\u003c/strong\u003e\u003cbr/\u003e\n    Race a total of 150 miles (241 km) with any bike\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/c1927b772e7beb80ba87855af4110dad6b2775d5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/c1927b772e7beb80ba87855af4110dad6b2775d5.jpg\" alt=\"Inexhaustible\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Inexhaustible\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInexhaustible\u003c/strong\u003e\u003cbr/\u003e\n    Race a total of 300 miles (482 km) with any bike\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/8cf9c7db85dc0a454ce6713279ae8e31b1abca77.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/8cf9c7db85dc0a454ce6713279ae8e31b1abca77.jpg\" alt=\"Hoarder\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hoarder\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHoarder\u003c/strong\u003e\u003cbr/\u003e\n    Earn a total of 1,500,000 SX Credits\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/89054a0df35522fca8f97fd5dcbfa1e8fbda45b9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/89054a0df35522fca8f97fd5dcbfa1e8fbda45b9.jpg\" alt=\"Lap of luxury\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Lap of luxury\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLap of luxury\u003c/strong\u003e\u003cbr/\u003e\n    Earn a total of 3,000,000 SX Credits\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/cbd2cf67cb345c2e98383ca3fdaf8e48866c3c3c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/cbd2cf67cb345c2e98383ca3fdaf8e48866c3c3c.jpg\" alt=\"Noteworthy\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Noteworthy\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNoteworthy\u003c/strong\u003e\u003cbr/\u003e\n    Win a total of 25 Main Events in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/9acdfea0c4df5cfd3636a7c1bc9e6db76c42592a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/9acdfea0c4df5cfd3636a7c1bc9e6db76c42592a.jpg\" alt=\"Standing Ovation\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Standing Ovation\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStanding Ovation\u003c/strong\u003e\u003cbr/\u003e\n    Win a total of 50 Main Events in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/1b968808b46be01769c35b04d7fe950cc8494536.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/1b968808b46be01769c35b04d7fe950cc8494536.jpg\" alt=\"Perfect start\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Perfect start\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePerfect start\u003c/strong\u003e\u003cbr/\u003e\n    Get a Holeshot in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/c1655c9274387c12f54ac4137fe591828b0079d7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/c1655c9274387c12f54ac4137fe591828b0079d7.jpg\" alt=\"Ten little Holeshots\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ten little Holeshots\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTen little Holeshots\u003c/strong\u003e\u003cbr/\u003e\n    Get a total of 10 Holeshots in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/73f0fa9bf103c55e1a71bf2b552d71d47a0b2880.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/73f0fa9bf103c55e1a71bf2b552d71d47a0b2880.jpg\" alt=\"Where do I sign?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Where do I sign?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhere do I sign?\u003c/strong\u003e\u003cbr/\u003e\n    Sign a contract with any 450 Sponsor in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/b0ab3b3756c5de65ea2983acade389ba95fb1dc5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/b0ab3b3756c5de65ea2983acade389ba95fb1dc5.jpg\" alt=\"Fashion Victim\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fashion Victim\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFashion Victim\u003c/strong\u003e\u003cbr/\u003e\n    Make your first purchase in the rider customisation page\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/684b444abced74d9290a08ec02c11863b8e0c220.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/684b444abced74d9290a08ec02c11863b8e0c220.jpg\" alt=\"My way\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: My way\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMy way\u003c/strong\u003e\u003cbr/\u003e\n    Create your first Custom Track\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/e270a7ca4e574d26cdddaa3aedb9104236f0f370.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/e270a7ca4e574d26cdddaa3aedb9104236f0f370.jpg\" alt=\"Seems to be enjoying it\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Seems to be enjoying it\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSeems to be enjoying it\u003c/strong\u003e\u003cbr/\u003e\n    Create a total of 5 Custom Tracks\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/db0c7cb27908854f4ce694a42e9f129b9b4f8822.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/db0c7cb27908854f4ce694a42e9f129b9b4f8822.jpg\" alt=\"Thanks for coming!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Thanks for coming!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThanks for coming!\u003c/strong\u003e\u003cbr/\u003e\n    Complete a Main Event in a Custom Track created by another player\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/4488c9ec041862d923931030a9349fd332eecfcd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/4488c9ec041862d923931030a9349fd332eecfcd.jpg\" alt=\"Come back soon!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Come back soon!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCome back soon!\u003c/strong\u003e\u003cbr/\u003e\n    Complete a total of 10 Main Events in a Custom Track created by other players\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/8aca62d024bd90ceb3bc37329c7e43fef5a1740f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/8aca62d024bd90ceb3bc37329c7e43fef5a1740f.jpg\" alt=\"You\u0026#39;re finally home\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: You\u0026#39;re finally home\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou\u0026#39;re finally home\u003c/strong\u003e\u003cbr/\u003e\n    Complete a total of 30 Main Events in a Custom Track created by other players\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/a95dbdabfa1e1e8fd0624f7a656078a6b1c30cbc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/a95dbdabfa1e1e8fd0624f7a656078a6b1c30cbc.jpg\" alt=\"Following in the footsteps\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Following in the footsteps\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFollowing in the footsteps\u003c/strong\u003e\u003cbr/\u003e\n    Win a 450 Championship with R. Dungey in Official Mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/b3d4e7074f7c6730b41a0c7817b59cf5f5f5a374.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/b3d4e7074f7c6730b41a0c7817b59cf5f5f5a374.jpg\" alt=\"A remarkable feat\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A remarkable feat\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA remarkable feat\u003c/strong\u003e\u003cbr/\u003e\n    Complete any one of the SX Challenges \n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/711750/library_600x900.jpg\" alt=\"Monster Energy Supercross - The Official Videogame box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/711750/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eMonster Energy Supercross - The Official Videogame\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 40.0%\"\u003e\n        40.0%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e20/50 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e26.6h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2023-12-16\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (20)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/52c25f86f80b31aaf4464d5c8196691983ebde10.jpg\" alt=\"Apprentice\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eApprentice\u003c/strong\u003e\u003cbr\u003e\n    Reach Prestige Level 25\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 27, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/634ff383a70dc18fca6eb3a4d81d4dcbd7ecf839.jpg\" alt=\"Model Student\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eModel Student\u003c/strong\u003e\u003cbr\u003e\n    Reach Prestige Level 50\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 01, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/ab7715dfe0a76f2265eca5e9ab8aa8c0885eebcf.jpg\" alt=\"West Coast Champion\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWest Coast Champion\u003c/strong\u003e\u003cbr\u003e\n    Reach the podium in the 250 West Championship in Career mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 27, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/1fd9f9c42abd5f7a0745ac024de1fbf68cd3c017.jpg\" alt=\"Anaheim 1 Event\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAnaheim 1 Event\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event at Anaheim 1 in any game mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 26, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/dc9cbfc5a18e53cd155120e261a8e2247d24da1c.jpg\" alt=\"San Diego Event\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSan Diego Event\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event at San Diego in any game mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 26, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/77e1ebf4294f47540aac90748e9c73a3c619a060.jpg\" alt=\"Glendale Event\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGlendale Event\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event at Glendale in any game mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 26, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/7fb0d6133c57a1cc75ce47a895ce5e8d62d8b35b.jpg\" alt=\"Oakland Event\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOakland Event\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event at Oakland in any game mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 27, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/79892137801465f0e73235349794d87abda9ac0e.jpg\" alt=\"Minneapolis Event\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMinneapolis Event\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event at Minneapolis in any game mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 02, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/57c189054b2136c72388b121ee561723a93ee679.jpg\" alt=\"Atlanta Event\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAtlanta Event\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event at Atlanta in any game mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 30, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/61881c988a04cc24b64e82db35879ef0f25afa3d.jpg\" alt=\"Seattle Event\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSeattle Event\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event at Seattle in any game mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 27, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/3baaf750712aa474de483d57cc8777c180146cad.jpg\" alt=\"Salt Lake City Event\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSalt Lake City Event\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event at Salt Lake City in any game mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 27, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/9d00da04c098fe9c3e97f323028bbab3aa0b1765.jpg\" alt=\"Las Vegas Event\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLas Vegas Event\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event at Las Vegas in any game mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 26, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/4e2bdd310a53aa5829af21fb2b2d439c54222b67.jpg\" alt=\"Tightrope walker\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTightrope walker\u003c/strong\u003e\u003cbr\u003e\n    Complete a race without taking a fall in any game mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 30, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/fb1a84f6a4efd90a07c69c4bbfe1ce232bfd8556.jpg\" alt=\"What's done is done\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhat's done is done\u003c/strong\u003e\u003cbr\u003e\n    Complete a race without using Rewind in any game mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 26, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/0d75cf49ca95990f5fb02bdfa9a12690b12b01bc.jpg\" alt=\"Professional Rider\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eProfessional Rider\u003c/strong\u003e\u003cbr\u003e\n    Complete a race with Normal Physics in any game mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 26, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/75d441ed78dfc28667afa9b91369d3b86bc9666b.jpg\" alt=\"A good first take\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA good first take\u003c/strong\u003e\u003cbr\u003e\n    Complete a race without taking a fall or using Rewind in any game mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 30, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/40cb3902526557d8675a78717a75c3767572c553.jpg\" alt=\"Keep it up!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKeep it up!\u003c/strong\u003e\u003cbr\u003e\n    Race a total of 50 miles (80 km) with any bike \u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 28, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/75a13a0311f923408cfd3b8e82d1be36d8be4ce9.jpg\" alt=\"All that glitters\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAll that glitters\u003c/strong\u003e\u003cbr\u003e\n    Earn a total of 500,000 SX Credits\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 01, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/2addd9402ed91c51e46a725889e75a9242c4aedd.jpg\" alt=\"The first of many\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe first of many\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event in any game mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 26, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/75c7720a934921c99bf6608097fc0eb4ddd0fd0d.jpg\" alt=\"May the journey begin\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMay the journey begin\u003c/strong\u003e\u003cbr\u003e\n    Create your Custom Rider\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 26, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (30)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/0a0e4284ac30b2afa4c68d925d16e6c452bd6dce.jpg\" alt=\"Maestro\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaestro\u003c/strong\u003e\u003cbr\u003e\n    Reach Prestige Level 100\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/7d6556e2e5e2f1bd2a678b7639be17312a3a5152.jpg\" alt=\"East Coast Champion\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEast Coast Champion\u003c/strong\u003e\u003cbr\u003e\n    Reach the podium in the 250 East Championship in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/2c2c81d1d5ab0632b6fa21804832370073659b86.jpg\" alt=\"On top of the world\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOn top of the world\u003c/strong\u003e\u003cbr\u003e\n    Reach the podium in the 450 Championship in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/b1a0753b21edcb09389adf180668cdaa9a714626.jpg\" alt=\"Until the last breath\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUntil the last breath\u003c/strong\u003e\u003cbr\u003e\n    Pass a Last Chance Qualifier session in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/da0e8039cb0ac3fc53462b046686712eda195df8.jpg\" alt=\"Anaheim 2 Event\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAnaheim 2 Event\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event at Anaheim 2 in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/58dbb824f2625e211ac45227a269c60d925376c9.jpg\" alt=\"Arlington Event\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArlington Event\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event at Arlington in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/f1952f862faa0e06f2cf843ef4ba105e8e13763f.jpg\" alt=\"Toronto Event\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eToronto Event\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event at Toronto in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/db3759436f2bc994c5cf9bce06ee959eba180762.jpg\" alt=\"Daytona Beach Event\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDaytona Beach Event\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event at Daytona Beach in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/3f07d169cd0ee2b7e9a0dd515dd02edb3a96feee.jpg\" alt=\"Indianapolis Event\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIndianapolis Event\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event at Indianapolis in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/ba6db0cad25013de000af728a5efee7e4e3d7efa.jpg\" alt=\"Detroit Event\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDetroit Event\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event at Detroit in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/0c38600a1f746ff95aebbcb2ac7a09d326f6c1c1.jpg\" alt=\"St. Louis Event\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSt. Louis Event\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event at St. Louis in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/c06f1e42afde896eef7f1dc389db83938022ffb5.jpg\" alt=\"East Rutherford Event\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEast Rutherford Event\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event at East Rutherford in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/c0915765cd4df4b4b0a1637ae8be0bf621b6cb2c.jpg\" alt=\"American kangaroo\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAmerican kangaroo\u003c/strong\u003e\u003cbr\u003e\n    Make 50 successive jumps without taking a fall or using Rewind in Time Attack mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/19baf9e061c053d599f2748d19236bfadb00de8e.jpg\" alt=\"Tireless\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTireless\u003c/strong\u003e\u003cbr\u003e\n    Race a total of 150 miles (241 km) with any bike\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/c1927b772e7beb80ba87855af4110dad6b2775d5.jpg\" alt=\"Inexhaustible\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInexhaustible\u003c/strong\u003e\u003cbr\u003e\n    Race a total of 300 miles (482 km) with any bike\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/8cf9c7db85dc0a454ce6713279ae8e31b1abca77.jpg\" alt=\"Hoarder\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHoarder\u003c/strong\u003e\u003cbr\u003e\n    Earn a total of 1,500,000 SX Credits\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/89054a0df35522fca8f97fd5dcbfa1e8fbda45b9.jpg\" alt=\"Lap of luxury\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLap of luxury\u003c/strong\u003e\u003cbr\u003e\n    Earn a total of 3,000,000 SX Credits\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/cbd2cf67cb345c2e98383ca3fdaf8e48866c3c3c.jpg\" alt=\"Noteworthy\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNoteworthy\u003c/strong\u003e\u003cbr\u003e\n    Win a total of 25 Main Events in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/9acdfea0c4df5cfd3636a7c1bc9e6db76c42592a.jpg\" alt=\"Standing Ovation\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStanding Ovation\u003c/strong\u003e\u003cbr\u003e\n    Win a total of 50 Main Events in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/1b968808b46be01769c35b04d7fe950cc8494536.jpg\" alt=\"Perfect start\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePerfect start\u003c/strong\u003e\u003cbr\u003e\n    Get a Holeshot in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/c1655c9274387c12f54ac4137fe591828b0079d7.jpg\" alt=\"Ten little Holeshots\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTen little Holeshots\u003c/strong\u003e\u003cbr\u003e\n    Get a total of 10 Holeshots in any game mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/73f0fa9bf103c55e1a71bf2b552d71d47a0b2880.jpg\" alt=\"Where do I sign?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhere do I sign?\u003c/strong\u003e\u003cbr\u003e\n    Sign a contract with any 450 Sponsor in Career mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/b0ab3b3756c5de65ea2983acade389ba95fb1dc5.jpg\" alt=\"Fashion Victim\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFashion Victim\u003c/strong\u003e\u003cbr\u003e\n    Make your first purchase in the rider customisation page\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/684b444abced74d9290a08ec02c11863b8e0c220.jpg\" alt=\"My way\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMy way\u003c/strong\u003e\u003cbr\u003e\n    Create your first Custom Track\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/e270a7ca4e574d26cdddaa3aedb9104236f0f370.jpg\" alt=\"Seems to be enjoying it\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSeems to be enjoying it\u003c/strong\u003e\u003cbr\u003e\n    Create a total of 5 Custom Tracks\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/db0c7cb27908854f4ce694a42e9f129b9b4f8822.jpg\" alt=\"Thanks for coming!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThanks for coming!\u003c/strong\u003e\u003cbr\u003e\n    Complete a Main Event in a Custom Track created by another player\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/4488c9ec041862d923931030a9349fd332eecfcd.jpg\" alt=\"Come back soon!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCome back soon!\u003c/strong\u003e\u003cbr\u003e\n    Complete a total of 10 Main Events in a Custom Track created by other players\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/8aca62d024bd90ceb3bc37329c7e43fef5a1740f.jpg\" alt=\"You're finally home\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou're finally home\u003c/strong\u003e\u003cbr\u003e\n    Complete a total of 30 Main Events in a Custom Track created by other players\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/a95dbdabfa1e1e8fd0624f7a656078a6b1c30cbc.jpg\" alt=\"Following in the footsteps\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFollowing in the footsteps\u003c/strong\u003e\u003cbr\u003e\n    Win a 450 Championship with R. Dungey in Official Mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/711750/b3d4e7074f7c6730b41a0c7817b59cf5f5f5a374.jpg\" alt=\"A remarkable feat\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA remarkable feat\u003c/strong\u003e\u003cbr\u003e\n    Complete any one of the SX Challenges \n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Monster Energy Supercross - The Official Videogame - 40.0% complete with 20/50 achievements unlocked.",
      "date_published": "2023-12-16T00:00:00Z",
      "date_modified": "2023-12-16T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "monster-energy-supercross---the-official-videogame"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/monster-energy-supercross---the-official-videogame-5/",
      "url": "https://go.waylonwalker.com/steam/monster-energy-supercross---the-official-videogame-5/",
      "title": "Monster Energy Supercross - The Official Videogame 5",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/1610460/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/1610460/library_600x900.jpg\" alt=\"Monster Energy Supercross - The Official Videogame 5 box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/1610460/header.jpg\u0026#39;\"/ data-glightbox=\"description: Monster Energy Supercross - The Official Videogame 5 box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eMonster Energy Supercross - The Official Videogame 5\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 66.0%\"\u003e\n        66.0%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e33/50 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e49.5h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2023-12-16\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (33)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/302bca18c63079712f5ad646971f763f0fceb1ee.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/302bca18c63079712f5ad646971f763f0fceb1ee.jpg\" alt=\"Welcome to the Team\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Welcome to the Team\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWelcome to the Team\u003c/strong\u003e\u003cbr/\u003e\n    Accept the contract of a Team you asked to join\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 03, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/0f114662431e037608c2a5346e1e903fb8572aa9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/0f114662431e037608c2a5346e1e903fb8572aa9.jpg\" alt=\"You\u0026#39;ve cleaned out, buddy!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: You\u0026#39;ve cleaned out, buddy!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou\u0026#39;ve cleaned out, buddy!\u003c/strong\u003e\u003cbr/\u003e\n    Earn a total of 1,000,000 SX Credits\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 23, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/0a87ec09445c7c951cbf701d23bad2ecac386b09.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/0a87ec09445c7c951cbf701d23bad2ecac386b09.jpg\" alt=\"Fulminating\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fulminating\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFulminating\u003c/strong\u003e\u003cbr/\u003e\n    Get a Holeshot in any game mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/d6cf517f6a90aec93dd2edab1316df1c805e247e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/d6cf517f6a90aec93dd2edab1316df1c805e247e.jpg\" alt=\"13 is the magic number\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: 13 is the magic number\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e13 is the magic number\u003c/strong\u003e\u003cbr/\u003e\n    Get a total of 13 Holeshots in any game mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 06, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/7cc40044f472890a34cefa140ea28bdeb0990aea.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/7cc40044f472890a34cefa140ea28bdeb0990aea.jpg\" alt=\"Future young promise\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Future young promise\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFuture young promise\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Futures chapter in Career Mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 30, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/428d5fdfc5506a3ea75e695860dd22ea0f5793f2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/428d5fdfc5506a3ea75e695860dd22ea0f5793f2.jpg\" alt=\"Rookie of the year\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Rookie of the year\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRookie of the year\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Rookie chapter in Career Mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 23, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/5bf187b9aaa3663ace38ae5910fd486fca3a0028.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/5bf187b9aaa3663ace38ae5910fd486fca3a0028.jpg\" alt=\"It\u0026#39;s only the beginning\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: It\u0026#39;s only the beginning\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt\u0026#39;s only the beginning\u003c/strong\u003e\u003cbr/\u003e\n    Reach Prestige level 20\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/9a8972ecf36a7ac831e3fc4eef88de71dc1affd9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/9a8972ecf36a7ac831e3fc4eef88de71dc1affd9.jpg\" alt=\"Well done!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Well done!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWell done!\u003c/strong\u003e\u003cbr/\u003e\n    Meet a Contract Objective of an Official Team in Career mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 23, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/a5381f9a89149c6879b37b21f511da2226cf068d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/a5381f9a89149c6879b37b21f511da2226cf068d.jpg\" alt=\"Outdoor enthusiast\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Outdoor enthusiast\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOutdoor enthusiast\u003c/strong\u003e\u003cbr/\u003e\n    Complete a Main Event on any track of the Compound \u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 01, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/5c7c6768b008ca88d3bea3cefb203d36e24bd9fd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/5c7c6768b008ca88d3bea3cefb203d36e24bd9fd.jpg\" alt=\"Better than ever\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Better than ever\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBetter than ever\u003c/strong\u003e\u003cbr/\u003e\n    Totally get over any Injury\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 10, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/f30bddd4922241a2d354d1b7797576a2d380bacd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/f30bddd4922241a2d354d1b7797576a2d380bacd.jpg\" alt=\"10 out of 10\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: 10 out of 10\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e10 out of 10\u003c/strong\u003e\u003cbr/\u003e\n    Pass at least 10 Training Sessions with any result\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 12, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/8486f0ccb4779ac89081eb3f1d26408f0bd607e4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/8486f0ccb4779ac89081eb3f1d26408f0bd607e4.jpg\" alt=\"King of Houston 1\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: King of Houston 1\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Houston 1\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event at Houston 1 in any game mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 25, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/3080461ada3e53d6782ec4c8db6216174e09b2f0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/3080461ada3e53d6782ec4c8db6216174e09b2f0.jpg\" alt=\"King of Houston 2\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: King of Houston 2\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Houston 2\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event at Houston 2 in any game mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 26, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/80b5d0326877725296126396d4ce5a4b0a0fed1c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/80b5d0326877725296126396d4ce5a4b0a0fed1c.jpg\" alt=\"King of Houston 3\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: King of Houston 3\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Houston 3\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event at Houston 3 in any game mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 26, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/b732bcd28103ec05039aeafbec50b3ac65da39ce.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/b732bcd28103ec05039aeafbec50b3ac65da39ce.jpg\" alt=\"King of Indianapolis 1\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: King of Indianapolis 1\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Indianapolis 1\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event at Indianapolis 1 in any game mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 27, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/62c5573100309c2c3f2eb6176073c37927a5490e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/62c5573100309c2c3f2eb6176073c37927a5490e.jpg\" alt=\"King of Indianapolis 2\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: King of Indianapolis 2\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Indianapolis 2\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event at Indianapolis 2 in any game mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 27, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/be881c92e439902a3fe92707048f9f03f810dbf8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/be881c92e439902a3fe92707048f9f03f810dbf8.jpg\" alt=\"King of Indianapolis 3\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: King of Indianapolis 3\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Indianapolis 3\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event at Indianapolis 3 in any game mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 06, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/5a653f54415621cb70b103f69b600230eceda365.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/5a653f54415621cb70b103f69b600230eceda365.jpg\" alt=\"King of Orlando 1\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: King of Orlando 1\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Orlando 1\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event at Orlando 1 in any game mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 30, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/481002d7faa109ab049f39314f2d6af356d95b18.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/481002d7faa109ab049f39314f2d6af356d95b18.jpg\" alt=\"King of Orlando 2\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: King of Orlando 2\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Orlando 2\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event at Orlando 2 in any game mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 12, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/61842d2098c8ec716b7684b96b6f822d55f25f0f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/61842d2098c8ec716b7684b96b6f822d55f25f0f.jpg\" alt=\"King of Daytona Beach\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: King of Daytona Beach\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Daytona Beach\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event at Daytona Beach in any game mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 08, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/4313d30ff02f6825a95d4c18c9b3c5ff7087195a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/4313d30ff02f6825a95d4c18c9b3c5ff7087195a.jpg\" alt=\"King of Arlington 1\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: King of Arlington 1\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Arlington 1\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event at Arlington 1 in any game mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 10, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/d18a86fc9155565c62c94e58bfc29de5a4d6bce5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/d18a86fc9155565c62c94e58bfc29de5a4d6bce5.jpg\" alt=\"King of Arlington 2\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: King of Arlington 2\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Arlington 2\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event at Arlington 2 in any game mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 18, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/12484c4739991bd731c2b1d49e5f40b3312b1dc1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/12484c4739991bd731c2b1d49e5f40b3312b1dc1.jpg\" alt=\"King of Arlington 3\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: King of Arlington 3\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Arlington 3\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event at Arlington 3 in any game mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 11, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/96e3de65aa8921ced12fa399369af1a4c283755f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/96e3de65aa8921ced12fa399369af1a4c283755f.jpg\" alt=\"King of Atlanta 1\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: King of Atlanta 1\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Atlanta 1\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event at Atlanta 1 in any game mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 24, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/f4c2560c8f16bf30189f13a926ef232e6bc9760f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/f4c2560c8f16bf30189f13a926ef232e6bc9760f.jpg\" alt=\"King of Atlanta 2\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: King of Atlanta 2\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Atlanta 2\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event at Atlanta 2 in any game mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 23, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/a3fd3435665f2301d69504e3cf036a09bec94aa1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/a3fd3435665f2301d69504e3cf036a09bec94aa1.jpg\" alt=\"King of Atlanta 3\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: King of Atlanta 3\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Atlanta 3\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event at Atlanta 3 in any game mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 23, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/93f75fc27e79ee9dd8e0a6d57e0cffa54a58bf65.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/93f75fc27e79ee9dd8e0a6d57e0cffa54a58bf65.jpg\" alt=\"King of Salt Lake City 1\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: King of Salt Lake City 1\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Salt Lake City 1\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event at Salt Lake City 1 in any game mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 31, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/60062bebe366a0c7c27df2c69513eddd6eb38f18.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/60062bebe366a0c7c27df2c69513eddd6eb38f18.jpg\" alt=\"King of Salt Lake City 2\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: King of Salt Lake City 2\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Salt Lake City 2\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event at Salt Lake City 2 in any game mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 23, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/1882cb5f4f81719e6fe64101a453cf75ae9ba969.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/1882cb5f4f81719e6fe64101a453cf75ae9ba969.jpg\" alt=\"Rivals forever\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Rivals forever\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRivals forever\u003c/strong\u003e\u003cbr/\u003e\n    Beat a Rival in Career Mode in any race\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 31, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/dc83803099aeb311dd79a7f4daf00d547cf7ce29.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/dc83803099aeb311dd79a7f4daf00d547cf7ce29.jpg\" alt=\"It\u0026#39;s easy at the beginning\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: It\u0026#39;s easy at the beginning\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt\u0026#39;s easy at the beginning\u003c/strong\u003e\u003cbr/\u003e\n    Complete your first Journal Challenge\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/20c268dce2b95217963665d71a2f1daaa2c032aa.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/20c268dce2b95217963665d71a2f1daaa2c032aa.jpg\" alt=\"Engineer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Engineer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEngineer\u003c/strong\u003e\u003cbr/\u003e\n    Save a custom Bike Setup\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 07, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/87a7387be18975b3961e3a281bea0569dab35962.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/87a7387be18975b3961e3a281bea0569dab35962.jpg\" alt=\"Double victory\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Double victory\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDouble victory\u003c/strong\u003e\u003cbr/\u003e\n    Get a Holeshot and victory in the same Main Event in any mode\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 29, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/b19895ac64c353037e3fd0caf9e21081a1c4de42.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/b19895ac64c353037e3fd0caf9e21081a1c4de42.jpg\" alt=\"Master of the Scrubverse\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Master of the Scrubverse\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaster of the Scrubverse\u003c/strong\u003e\u003cbr/\u003e\n    Complete a total of at least 100 scrubs\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 23, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (17)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/166cf93ae5726e867557d72526ab442aca64beb3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/166cf93ae5726e867557d72526ab442aca64beb3.jpg\" alt=\"Sharing is the key\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sharing is the key\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSharing is the key\u003c/strong\u003e\u003cbr/\u003e\n    Complete a Main Event in a Custom Track created by another player\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/ccfb72e5a9c5b4a9d0c40d9cb64aa1c2384afe91.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/ccfb72e5a9c5b4a9d0c40d9cb64aa1c2384afe91.jpg\" alt=\"The Real Champ\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Real Champ\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Real Champ\u003c/strong\u003e\u003cbr/\u003e\n    Win a Main Event with the Event Type option set on \u0026#34;The Real Thing\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/ea428567fbf53134c65c5380fb89335fd9bd3a7c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/ea428567fbf53134c65c5380fb89335fd9bd3a7c.jpg\" alt=\"Influencer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Influencer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInfluencer\u003c/strong\u003e\u003cbr/\u003e\n    Purchase a total of 10 components for your Rider Customization\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/93932a1695bafb9ce34ea73d8d465ece3c2c763b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/93932a1695bafb9ce34ea73d8d465ece3c2c763b.jpg\" alt=\"Real professional\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Real professional\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eReal professional\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Pro chapter in Career Mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/491dbc2d86c8ad9e9458eb47cb57bea82b19c5d0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/491dbc2d86c8ad9e9458eb47cb57bea82b19c5d0.jpg\" alt=\"And that\u0026#39;s 100!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: And that\u0026#39;s 100!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAnd that\u0026#39;s 100!\u003c/strong\u003e\u003cbr/\u003e\n    Reach the podium in 100 Main Events in any mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/861c32b1644147e29ad0677c51fb248196c4d596.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/861c32b1644147e29ad0677c51fb248196c4d596.jpg\" alt=\"Almost there\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Almost there\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAlmost there\u003c/strong\u003e\u003cbr/\u003e\n    Reach Prestige level 60\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/03d5c57665ded5edfa53a371c8f761ca03d64f1e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/03d5c57665ded5edfa53a371c8f761ca03d64f1e.jpg\" alt=\"You\u0026#39;re a legend!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: You\u0026#39;re a legend!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou\u0026#39;re a legend!\u003c/strong\u003e\u003cbr/\u003e\n    Reach Prestige level 100\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/df3a9e1ca9c95ab14c5fb76c99d206a50f0e4bf0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/df3a9e1ca9c95ab14c5fb76c99d206a50f0e4bf0.jpg\" alt=\"Get back in shape!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Get back in shape!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGet back in shape!\u003c/strong\u003e\u003cbr/\u003e\n    Complete all 3 Objectives of a Workout Session\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/fea4bc3744d65f87033ea84538d5646f57ead974.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/fea4bc3744d65f87033ea84538d5646f57ead974.jpg\" alt=\"Veteran\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Veteran\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVeteran\u003c/strong\u003e\u003cbr/\u003e\n    Complete all challenges in the Journal\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/fd73a8eb09dfab67e03af17bb681054a54a095ad.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/fd73a8eb09dfab67e03af17bb681054a54a095ad.jpg\" alt=\"The greatest\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The greatest\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe greatest\u003c/strong\u003e\u003cbr/\u003e\n    Complete the entire Skill Tree\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/cf619ef169c150e69109ccfc319fb16233849dbc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/cf619ef169c150e69109ccfc319fb16233849dbc.jpg\" alt=\"The Rock\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Rock\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Rock\u003c/strong\u003e\u003cbr/\u003e\n    Complete all the Training Sessions with the maximum result\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/5d0f93295be7091aec151cb36e57188b1f3db6e5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/5d0f93295be7091aec151cb36e57188b1f3db6e5.jpg\" alt=\"Traveler\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Traveler\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTraveler\u003c/strong\u003e\u003cbr/\u003e\n    Ride 100 miles (160 km) in offline Free Roaming in the Compound\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/cbdf79b0d7e93467c01722024f217b044e6ec330.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/cbdf79b0d7e93467c01722024f217b044e6ec330.jpg\" alt=\"Fashion Week Lover\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fashion Week Lover\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFashion Week Lover\u003c/strong\u003e\u003cbr/\u003e\n    Change the color of the nickname on the suit of your custom rider\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/6403218f121cf6e8c45396f4c27001e70f9a1b79.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/6403218f121cf6e8c45396f4c27001e70f9a1b79.jpg\" alt=\"Officially champion!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Officially champion!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOfficially champion!\u003c/strong\u003e\u003cbr/\u003e\n    Complete an Official Championship of any class in Championship mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/da0fa5c61cc68b79790c098cabd6819966ed1b2a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/da0fa5c61cc68b79790c098cabd6819966ed1b2a.jpg\" alt=\"Who\u0026#39;s next?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Who\u0026#39;s next?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWho\u0026#39;s next?\u003c/strong\u003e\u003cbr/\u003e\n    Beat the time of the Ghost of another player in Time Attack mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/c2760548c3b687378ffd46b9eceb5d2f1670adbc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/c2760548c3b687378ffd46b9eceb5d2f1670adbc.jpg\" alt=\"Only 2 more to go\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Only 2 more to go\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOnly 2 more to go\u003c/strong\u003e\u003cbr/\u003e\n    Complete at least two SX Challenges of the SX Profile\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/36a17b4ec523dac8edc2a13d01377308304d1582.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/36a17b4ec523dac8edc2a13d01377308304d1582.jpg\" alt=\"Go with the flow\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Go with the flow\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGo with the flow\u003c/strong\u003e\u003cbr/\u003e\n    Complete a lap with the Dynamic Flow Aid activated\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/1610460/library_600x900.jpg\" alt=\"Monster Energy Supercross - The Official Videogame 5 box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/1610460/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eMonster Energy Supercross - The Official Videogame 5\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 66.0%\"\u003e\n        66.0%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e33/50 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e49.5h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2023-12-16\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (33)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/302bca18c63079712f5ad646971f763f0fceb1ee.jpg\" alt=\"Welcome to the Team\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWelcome to the Team\u003c/strong\u003e\u003cbr\u003e\n    Accept the contract of a Team you asked to join\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 03, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/0f114662431e037608c2a5346e1e903fb8572aa9.jpg\" alt=\"You've cleaned out, buddy!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou've cleaned out, buddy!\u003c/strong\u003e\u003cbr\u003e\n    Earn a total of 1,000,000 SX Credits\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 23, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/0a87ec09445c7c951cbf701d23bad2ecac386b09.jpg\" alt=\"Fulminating\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFulminating\u003c/strong\u003e\u003cbr\u003e\n    Get a Holeshot in any game mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/d6cf517f6a90aec93dd2edab1316df1c805e247e.jpg\" alt=\"13 is the magic number\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e13 is the magic number\u003c/strong\u003e\u003cbr\u003e\n    Get a total of 13 Holeshots in any game mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 06, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/7cc40044f472890a34cefa140ea28bdeb0990aea.jpg\" alt=\"Future young promise\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFuture young promise\u003c/strong\u003e\u003cbr\u003e\n    Complete the Futures chapter in Career Mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 30, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/428d5fdfc5506a3ea75e695860dd22ea0f5793f2.jpg\" alt=\"Rookie of the year\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRookie of the year\u003c/strong\u003e\u003cbr\u003e\n    Complete the Rookie chapter in Career Mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 23, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/5bf187b9aaa3663ace38ae5910fd486fca3a0028.jpg\" alt=\"It's only the beginning\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt's only the beginning\u003c/strong\u003e\u003cbr\u003e\n    Reach Prestige level 20\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/9a8972ecf36a7ac831e3fc4eef88de71dc1affd9.jpg\" alt=\"Well done!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWell done!\u003c/strong\u003e\u003cbr\u003e\n    Meet a Contract Objective of an Official Team in Career mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 23, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/a5381f9a89149c6879b37b21f511da2226cf068d.jpg\" alt=\"Outdoor enthusiast\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOutdoor enthusiast\u003c/strong\u003e\u003cbr\u003e\n    Complete a Main Event on any track of the Compound \u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 01, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/5c7c6768b008ca88d3bea3cefb203d36e24bd9fd.jpg\" alt=\"Better than ever\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBetter than ever\u003c/strong\u003e\u003cbr\u003e\n    Totally get over any Injury\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 10, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/f30bddd4922241a2d354d1b7797576a2d380bacd.jpg\" alt=\"10 out of 10\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e10 out of 10\u003c/strong\u003e\u003cbr\u003e\n    Pass at least 10 Training Sessions with any result\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 12, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/8486f0ccb4779ac89081eb3f1d26408f0bd607e4.jpg\" alt=\"King of Houston 1\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Houston 1\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event at Houston 1 in any game mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 25, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/3080461ada3e53d6782ec4c8db6216174e09b2f0.jpg\" alt=\"King of Houston 2\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Houston 2\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event at Houston 2 in any game mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 26, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/80b5d0326877725296126396d4ce5a4b0a0fed1c.jpg\" alt=\"King of Houston 3\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Houston 3\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event at Houston 3 in any game mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 26, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/b732bcd28103ec05039aeafbec50b3ac65da39ce.jpg\" alt=\"King of Indianapolis 1\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Indianapolis 1\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event at Indianapolis 1 in any game mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 27, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/62c5573100309c2c3f2eb6176073c37927a5490e.jpg\" alt=\"King of Indianapolis 2\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Indianapolis 2\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event at Indianapolis 2 in any game mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 27, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/be881c92e439902a3fe92707048f9f03f810dbf8.jpg\" alt=\"King of Indianapolis 3\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Indianapolis 3\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event at Indianapolis 3 in any game mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 06, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/5a653f54415621cb70b103f69b600230eceda365.jpg\" alt=\"King of Orlando 1\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Orlando 1\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event at Orlando 1 in any game mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 30, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/481002d7faa109ab049f39314f2d6af356d95b18.jpg\" alt=\"King of Orlando 2\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Orlando 2\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event at Orlando 2 in any game mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 12, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/61842d2098c8ec716b7684b96b6f822d55f25f0f.jpg\" alt=\"King of Daytona Beach\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Daytona Beach\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event at Daytona Beach in any game mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 08, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/4313d30ff02f6825a95d4c18c9b3c5ff7087195a.jpg\" alt=\"King of Arlington 1\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Arlington 1\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event at Arlington 1 in any game mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 10, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/d18a86fc9155565c62c94e58bfc29de5a4d6bce5.jpg\" alt=\"King of Arlington 2\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Arlington 2\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event at Arlington 2 in any game mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 18, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/12484c4739991bd731c2b1d49e5f40b3312b1dc1.jpg\" alt=\"King of Arlington 3\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Arlington 3\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event at Arlington 3 in any game mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 11, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/96e3de65aa8921ced12fa399369af1a4c283755f.jpg\" alt=\"King of Atlanta 1\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Atlanta 1\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event at Atlanta 1 in any game mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 24, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/f4c2560c8f16bf30189f13a926ef232e6bc9760f.jpg\" alt=\"King of Atlanta 2\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Atlanta 2\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event at Atlanta 2 in any game mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 23, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/a3fd3435665f2301d69504e3cf036a09bec94aa1.jpg\" alt=\"King of Atlanta 3\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Atlanta 3\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event at Atlanta 3 in any game mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 23, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/93f75fc27e79ee9dd8e0a6d57e0cffa54a58bf65.jpg\" alt=\"King of Salt Lake City 1\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Salt Lake City 1\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event at Salt Lake City 1 in any game mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 31, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/60062bebe366a0c7c27df2c69513eddd6eb38f18.jpg\" alt=\"King of Salt Lake City 2\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of Salt Lake City 2\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event at Salt Lake City 2 in any game mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 23, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/1882cb5f4f81719e6fe64101a453cf75ae9ba969.jpg\" alt=\"Rivals forever\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRivals forever\u003c/strong\u003e\u003cbr\u003e\n    Beat a Rival in Career Mode in any race\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 31, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/dc83803099aeb311dd79a7f4daf00d547cf7ce29.jpg\" alt=\"It's easy at the beginning\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt's easy at the beginning\u003c/strong\u003e\u003cbr\u003e\n    Complete your first Journal Challenge\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/20c268dce2b95217963665d71a2f1daaa2c032aa.jpg\" alt=\"Engineer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEngineer\u003c/strong\u003e\u003cbr\u003e\n    Save a custom Bike Setup\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 07, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/87a7387be18975b3961e3a281bea0569dab35962.jpg\" alt=\"Double victory\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDouble victory\u003c/strong\u003e\u003cbr\u003e\n    Get a Holeshot and victory in the same Main Event in any mode\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 29, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/b19895ac64c353037e3fd0caf9e21081a1c4de42.jpg\" alt=\"Master of the Scrubverse\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaster of the Scrubverse\u003c/strong\u003e\u003cbr\u003e\n    Complete a total of at least 100 scrubs\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 23, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (17)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/166cf93ae5726e867557d72526ab442aca64beb3.jpg\" alt=\"Sharing is the key\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSharing is the key\u003c/strong\u003e\u003cbr\u003e\n    Complete a Main Event in a Custom Track created by another player\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/ccfb72e5a9c5b4a9d0c40d9cb64aa1c2384afe91.jpg\" alt=\"The Real Champ\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Real Champ\u003c/strong\u003e\u003cbr\u003e\n    Win a Main Event with the Event Type option set on \"The Real Thing\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/ea428567fbf53134c65c5380fb89335fd9bd3a7c.jpg\" alt=\"Influencer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInfluencer\u003c/strong\u003e\u003cbr\u003e\n    Purchase a total of 10 components for your Rider Customization\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/93932a1695bafb9ce34ea73d8d465ece3c2c763b.jpg\" alt=\"Real professional\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eReal professional\u003c/strong\u003e\u003cbr\u003e\n    Complete the Pro chapter in Career Mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/491dbc2d86c8ad9e9458eb47cb57bea82b19c5d0.jpg\" alt=\"And that's 100!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAnd that's 100!\u003c/strong\u003e\u003cbr\u003e\n    Reach the podium in 100 Main Events in any mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/861c32b1644147e29ad0677c51fb248196c4d596.jpg\" alt=\"Almost there\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAlmost there\u003c/strong\u003e\u003cbr\u003e\n    Reach Prestige level 60\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/03d5c57665ded5edfa53a371c8f761ca03d64f1e.jpg\" alt=\"You're a legend!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou're a legend!\u003c/strong\u003e\u003cbr\u003e\n    Reach Prestige level 100\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/df3a9e1ca9c95ab14c5fb76c99d206a50f0e4bf0.jpg\" alt=\"Get back in shape!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGet back in shape!\u003c/strong\u003e\u003cbr\u003e\n    Complete all 3 Objectives of a Workout Session\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/fea4bc3744d65f87033ea84538d5646f57ead974.jpg\" alt=\"Veteran\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVeteran\u003c/strong\u003e\u003cbr\u003e\n    Complete all challenges in the Journal\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/fd73a8eb09dfab67e03af17bb681054a54a095ad.jpg\" alt=\"The greatest\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe greatest\u003c/strong\u003e\u003cbr\u003e\n    Complete the entire Skill Tree\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/cf619ef169c150e69109ccfc319fb16233849dbc.jpg\" alt=\"The Rock\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Rock\u003c/strong\u003e\u003cbr\u003e\n    Complete all the Training Sessions with the maximum result\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/5d0f93295be7091aec151cb36e57188b1f3db6e5.jpg\" alt=\"Traveler\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTraveler\u003c/strong\u003e\u003cbr\u003e\n    Ride 100 miles (160 km) in offline Free Roaming in the Compound\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/cbdf79b0d7e93467c01722024f217b044e6ec330.jpg\" alt=\"Fashion Week Lover\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFashion Week Lover\u003c/strong\u003e\u003cbr\u003e\n    Change the color of the nickname on the suit of your custom rider\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/6403218f121cf6e8c45396f4c27001e70f9a1b79.jpg\" alt=\"Officially champion!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOfficially champion!\u003c/strong\u003e\u003cbr\u003e\n    Complete an Official Championship of any class in Championship mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/da0fa5c61cc68b79790c098cabd6819966ed1b2a.jpg\" alt=\"Who's next?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWho's next?\u003c/strong\u003e\u003cbr\u003e\n    Beat the time of the Ghost of another player in Time Attack mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/c2760548c3b687378ffd46b9eceb5d2f1670adbc.jpg\" alt=\"Only 2 more to go\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOnly 2 more to go\u003c/strong\u003e\u003cbr\u003e\n    Complete at least two SX Challenges of the SX Profile\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1610460/36a17b4ec523dac8edc2a13d01377308304d1582.jpg\" alt=\"Go with the flow\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGo with the flow\u003c/strong\u003e\u003cbr\u003e\n    Complete a lap with the Dynamic Flow Aid activated\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Monster Energy Supercross - The Official Videogame 5 - 66.0% complete with 33/50 achievements unlocked.",
      "date_published": "2023-12-16T00:00:00Z",
      "date_modified": "2023-12-16T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "monster-energy-supercross---the-official-videogame-5"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/escape-simulator/",
      "url": "https://go.waylonwalker.com/steam/escape-simulator/",
      "title": "Escape Simulator",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/1435790/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/1435790/library_600x900.jpg\" alt=\"Escape Simulator box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/1435790/header.jpg\u0026#39;\"/ data-glightbox=\"description: Escape Simulator box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eEscape Simulator\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 20.0%\"\u003e\n        20.0%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e5/25 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e26.6h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2023-12-07\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (5)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/ae3917f6b2a929dd8bb57113f44b9b0d3f7cc53d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/ae3917f6b2a929dd8bb57113f44b9b0d3f7cc53d.jpg\" alt=\"Destroyer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Destroyer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDestroyer\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 17, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/a2d789e374a941b5ecdb9b9f21e9fa5568138cf2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/a2d789e374a941b5ecdb9b9f21e9fa5568138cf2.jpg\" alt=\"Escape Together\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Escape Together\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEscape Together\u003c/strong\u003e\u003cbr/\u003e\n    Finish one room in co-op\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 17, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/3b1d163f382dfbe915e1867a6d8a13440bc81999.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/3b1d163f382dfbe915e1867a6d8a13440bc81999.jpg\" alt=\"First in Collection\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: First in Collection\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFirst in Collection\u003c/strong\u003e\u003cbr/\u003e\n    Find one token\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 17, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/aba636ca6b6d444131146e42bb811441d6ab7267.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/aba636ca6b6d444131146e42bb811441d6ab7267.jpg\" alt=\"Pockets With Holes\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Pockets With Holes\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePockets With Holes\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: September 14, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/cbc29754786df6b2c380b8b285df73ea6842dfe2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/cbc29754786df6b2c380b8b285df73ea6842dfe2.jpg\" alt=\"Good Throw\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Good Throw\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGood Throw\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 18, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (20)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/46bca6b8b53dde734eb2555d5e5a734de126b01b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/46bca6b8b53dde734eb2555d5e5a734de126b01b.jpg\" alt=\"Great Tower\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Great Tower\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGreat Tower\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/996b96fdfb996b44c2cb8584e848a4b4d0fc10cf.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/996b96fdfb996b44c2cb8584e848a4b4d0fc10cf.jpg\" alt=\"Cleaner\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cleaner\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCleaner\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/11306c271dd69948413434e38277ead52f326f8e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/11306c271dd69948413434e38277ead52f326f8e.jpg\" alt=\"Break Out\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Break Out\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBreak Out\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/2912477749396c4fbc775a6fa366437f882f5d2d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/2912477749396c4fbc775a6fa366437f882f5d2d.jpg\" alt=\"Escape Room\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Escape Room\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEscape Room\u003c/strong\u003e\u003cbr/\u003e\n    Finish one room\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/f0b552769ecc6c70742e52058b89dae0dad232bc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/f0b552769ecc6c70742e52058b89dae0dad232bc.jpg\" alt=\"Egypt Escapist\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Egypt Escapist\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEgypt Escapist\u003c/strong\u003e\u003cbr/\u003e\n    Get a trophy in every Egypt room\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/c9fe372e8c5c33c9280cdb5595d1be170cde1c39.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/c9fe372e8c5c33c9280cdb5595d1be170cde1c39.jpg\" alt=\"Egypt Collector\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Egypt Collector\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEgypt Collector\u003c/strong\u003e\u003cbr/\u003e\n    Find all tokens in Egypt rooms\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/5ccd09338e3da23022125f6b61ea6b0915b0072a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/5ccd09338e3da23022125f6b61ea6b0915b0072a.jpg\" alt=\"Space Escapist\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Space Escapist\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpace Escapist\u003c/strong\u003e\u003cbr/\u003e\n    Get a trophy in every Space room\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/2701b4ff729c5332cfcfae167d7497384b07c98b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/2701b4ff729c5332cfcfae167d7497384b07c98b.jpg\" alt=\"Space Collector\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Space Collector\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpace Collector\u003c/strong\u003e\u003cbr/\u003e\n    Find all tokens in Space rooms\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/fa409fd929b4fa53e90410a0d942042ebf40f2c7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/fa409fd929b4fa53e90410a0d942042ebf40f2c7.jpg\" alt=\"Victorian Escapist\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Victorian Escapist\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVictorian Escapist\u003c/strong\u003e\u003cbr/\u003e\n    Get a trophy in every Victorian room\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/48027667bc02df718424bff4b809ef14904b3cd8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/48027667bc02df718424bff4b809ef14904b3cd8.jpg\" alt=\"Victorian Collector\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Victorian Collector\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVictorian Collector\u003c/strong\u003e\u003cbr/\u003e\n    Find all tokens in Victorian rooms\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/d202f865b39875e7fc16409d853669e6371a643c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/d202f865b39875e7fc16409d853669e6371a643c.jpg\" alt=\"Mystic Toy\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mystic Toy\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMystic Toy\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/3aad89d4682d3698d1c29391d2a6e49d269e36c9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/3aad89d4682d3698d1c29391d2a6e49d269e36c9.jpg\" alt=\"Make it Yourself\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Make it Yourself\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMake it Yourself\u003c/strong\u003e\u003cbr/\u003e\n    Create room in the level editor\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/9705ad60eeeb5035a6e81a22b266abed4d6b7110.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/9705ad60eeeb5035a6e81a22b266abed4d6b7110.jpg\" alt=\"Clumsy Escapist\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Clumsy Escapist\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eClumsy Escapist\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/759f4d7d60196c3992771d40039ecdd0cda9e1ad.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/759f4d7d60196c3992771d40039ecdd0cda9e1ad.jpg\" alt=\"D\u0026#39;oh!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: D\u0026#39;oh!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eD\u0026#39;oh!\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/930593cf8c3e156941f23b0a33a183c246c033d5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/930593cf8c3e156941f23b0a33a183c246c033d5.jpg\" alt=\"Jack Beanstalk\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Jack Beanstalk\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJack Beanstalk\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/d318f28afd84cb162a0a11da040798fcefe3f01f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/d318f28afd84cb162a0a11da040798fcefe3f01f.jpg\" alt=\"Writer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Writer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWriter\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/2c7010e6685037c90d613f49d57ef028b4bac58d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/2c7010e6685037c90d613f49d57ef028b4bac58d.jpg\" alt=\"Don\u0026#39;t Look at The Sun!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Don\u0026#39;t Look at The Sun!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDon\u0026#39;t Look at The Sun!\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/f81ac22ebd659f55573e4848737a895f08ace492.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/f81ac22ebd659f55573e4848737a895f08ace492.jpg\" alt=\"Safety Precautions\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Safety Precautions\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSafety Precautions\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/f96c9e4dc85369f3bce1ad92b1e53bd10ecfcdf1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/f96c9e4dc85369f3bce1ad92b1e53bd10ecfcdf1.jpg\" alt=\"Holy Mug\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Holy Mug\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHoly Mug\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/a2a3c93f6cdcaa09cecc7d11763bff62304212aa.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/a2a3c93f6cdcaa09cecc7d11763bff62304212aa.jpg\" alt=\"Uber Skull\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Uber Skull\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUber Skull\u003c/strong\u003e\u003cbr/\u003e\n    Throw skull in the fire\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/1435790/library_600x900.jpg\" alt=\"Escape Simulator box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/1435790/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eEscape Simulator\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 20.0%\"\u003e\n        20.0%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e5/25 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e26.6h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2023-12-07\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (5)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/ae3917f6b2a929dd8bb57113f44b9b0d3f7cc53d.jpg\" alt=\"Destroyer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDestroyer\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 17, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/a2d789e374a941b5ecdb9b9f21e9fa5568138cf2.jpg\" alt=\"Escape Together\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEscape Together\u003c/strong\u003e\u003cbr\u003e\n    Finish one room in co-op\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 17, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/3b1d163f382dfbe915e1867a6d8a13440bc81999.jpg\" alt=\"First in Collection\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFirst in Collection\u003c/strong\u003e\u003cbr\u003e\n    Find one token\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 17, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/aba636ca6b6d444131146e42bb811441d6ab7267.jpg\" alt=\"Pockets With Holes\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePockets With Holes\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: September 14, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/cbc29754786df6b2c380b8b285df73ea6842dfe2.jpg\" alt=\"Good Throw\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGood Throw\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 18, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (20)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/46bca6b8b53dde734eb2555d5e5a734de126b01b.jpg\" alt=\"Great Tower\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGreat Tower\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/996b96fdfb996b44c2cb8584e848a4b4d0fc10cf.jpg\" alt=\"Cleaner\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCleaner\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/11306c271dd69948413434e38277ead52f326f8e.jpg\" alt=\"Break Out\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBreak Out\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/2912477749396c4fbc775a6fa366437f882f5d2d.jpg\" alt=\"Escape Room\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEscape Room\u003c/strong\u003e\u003cbr\u003e\n    Finish one room\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/f0b552769ecc6c70742e52058b89dae0dad232bc.jpg\" alt=\"Egypt Escapist\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEgypt Escapist\u003c/strong\u003e\u003cbr\u003e\n    Get a trophy in every Egypt room\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/c9fe372e8c5c33c9280cdb5595d1be170cde1c39.jpg\" alt=\"Egypt Collector\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEgypt Collector\u003c/strong\u003e\u003cbr\u003e\n    Find all tokens in Egypt rooms\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/5ccd09338e3da23022125f6b61ea6b0915b0072a.jpg\" alt=\"Space Escapist\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpace Escapist\u003c/strong\u003e\u003cbr\u003e\n    Get a trophy in every Space room\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/2701b4ff729c5332cfcfae167d7497384b07c98b.jpg\" alt=\"Space Collector\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpace Collector\u003c/strong\u003e\u003cbr\u003e\n    Find all tokens in Space rooms\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/fa409fd929b4fa53e90410a0d942042ebf40f2c7.jpg\" alt=\"Victorian Escapist\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVictorian Escapist\u003c/strong\u003e\u003cbr\u003e\n    Get a trophy in every Victorian room\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/48027667bc02df718424bff4b809ef14904b3cd8.jpg\" alt=\"Victorian Collector\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVictorian Collector\u003c/strong\u003e\u003cbr\u003e\n    Find all tokens in Victorian rooms\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/d202f865b39875e7fc16409d853669e6371a643c.jpg\" alt=\"Mystic Toy\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMystic Toy\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/3aad89d4682d3698d1c29391d2a6e49d269e36c9.jpg\" alt=\"Make it Yourself\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMake it Yourself\u003c/strong\u003e\u003cbr\u003e\n    Create room in the level editor\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/9705ad60eeeb5035a6e81a22b266abed4d6b7110.jpg\" alt=\"Clumsy Escapist\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eClumsy Escapist\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/759f4d7d60196c3992771d40039ecdd0cda9e1ad.jpg\" alt=\"D'oh!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eD'oh!\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/930593cf8c3e156941f23b0a33a183c246c033d5.jpg\" alt=\"Jack Beanstalk\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJack Beanstalk\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/d318f28afd84cb162a0a11da040798fcefe3f01f.jpg\" alt=\"Writer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWriter\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/2c7010e6685037c90d613f49d57ef028b4bac58d.jpg\" alt=\"Don't Look at The Sun!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDon't Look at The Sun!\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/f81ac22ebd659f55573e4848737a895f08ace492.jpg\" alt=\"Safety Precautions\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSafety Precautions\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/f96c9e4dc85369f3bce1ad92b1e53bd10ecfcdf1.jpg\" alt=\"Holy Mug\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHoly Mug\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1435790/a2a3c93f6cdcaa09cecc7d11763bff62304212aa.jpg\" alt=\"Uber Skull\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUber Skull\u003c/strong\u003e\u003cbr\u003e\n    Throw skull in the fire\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Escape Simulator - 20.0% complete with 5/25 achievements unlocked.",
      "date_published": "2023-12-07T00:00:00Z",
      "date_modified": "2023-12-07T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "escape-simulator"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/patagonia/",
      "url": "https://go.waylonwalker.com/steam/patagonia/",
      "title": "Patagonia",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/1057090/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/1057090/library_600x900.jpg\" alt=\"Patagonia box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/1057090/header.jpg\u0026#39;\"/ data-glightbox=\"description: Patagonia box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003ePatagonia\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 2.7%\"\u003e\n        2.7%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e1/37 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e8.0h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2023-11-29\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (1)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/74ed77f296a8b35dbcf22b11d34231c80b9111aa.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/74ed77f296a8b35dbcf22b11d34231c80b9111aa.jpg\" alt=\"Close Call\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Close Call\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eClose Call\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 07, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (36)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/b45669f6e4af8e718bd31601fe165197acf20921.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/b45669f6e4af8e718bd31601fe165197acf20921.jpg\" alt=\"Take the Bug by the Horn\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Take the Bug by the Horn\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTake the Bug by the Horn\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/f13bb36186d1470bb6cd1924629fc6aeb59653ff.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/f13bb36186d1470bb6cd1924629fc6aeb59653ff.jpg\" alt=\"Laser Brain\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Laser Brain\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLaser Brain\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/0854cd37c57bdc99b46351506887f8dc3c84ae0a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/0854cd37c57bdc99b46351506887f8dc3c84ae0a.jpg\" alt=\"Home Sweet Home\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Home Sweet Home\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHome Sweet Home\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/b94930b6989c2943d71bc7d0bdf53bad01267e91.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/b94930b6989c2943d71bc7d0bdf53bad01267e91.jpg\" alt=\"Let the Waters Flow\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Let the Waters Flow\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLet the Waters Flow\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/4b810930cbea5d7ee121a83a3a0b517f9a15cc34.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/4b810930cbea5d7ee121a83a3a0b517f9a15cc34.jpg\" alt=\"Icy Escape\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Icy Escape\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIcy Escape\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/76c65817990269c3acfc1f5921b2f66458bb1a9f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/76c65817990269c3acfc1f5921b2f66458bb1a9f.jpg\" alt=\"Dark Triumph\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Dark Triumph\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDark Triumph\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/21b4864ce0af545453e17a29658ce90bcfb50e09.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/21b4864ce0af545453e17a29658ce90bcfb50e09.jpg\" alt=\"Guardian\u0026#39;s Rest\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Guardian\u0026#39;s Rest\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGuardian\u0026#39;s Rest\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/92b1cf30b796024e13b01596fc7a2d2addee0a06.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/92b1cf30b796024e13b01596fc7a2d2addee0a06.jpg\" alt=\"Quick Sand\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Quick Sand\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eQuick Sand\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/c38d5fe0033e6053e62746650af1232daec2131b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/c38d5fe0033e6053e62746650af1232daec2131b.jpg\" alt=\"Stone Cold\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Stone Cold\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStone Cold\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/2bdf2df03918e5190cb83563fc28d86eeae085cf.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/2bdf2df03918e5190cb83563fc28d86eeae085cf.jpg\" alt=\"Destiny\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Destiny\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDestiny\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Game\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/a42b0bbe72578f71078caba25868161fd7924613.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/a42b0bbe72578f71078caba25868161fd7924613.jpg\" alt=\"Hardcore Fan\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hardcore Fan\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHardcore Fan\u003c/strong\u003e\u003cbr/\u003e\n    Complete Hard Mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/b8a2db9e88a5bc7546e3016e074e087d8d3b66be.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/b8a2db9e88a5bc7546e3016e074e087d8d3b66be.jpg\" alt=\"Tools of the Trade\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tools of the Trade\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTools of the Trade\u003c/strong\u003e\u003cbr/\u003e\n    Unlock all Abilities\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/4aae25af4774b66378e162a5d350e06c100ee2cd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/4aae25af4774b66378e162a5d350e06c100ee2cd.jpg\" alt=\"Mad Skills\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mad Skills\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMad Skills\u003c/strong\u003e\u003cbr/\u003e\n    Upgrade all Abilities\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/db0d3394464d18a7eb734ed44825606416b44520.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/db0d3394464d18a7eb734ed44825606416b44520.jpg\" alt=\"Fully Slotted\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fully Slotted\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFully Slotted\u003c/strong\u003e\u003cbr/\u003e\n    Upgrade all Shard Slots\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/6db75251ec7638952e7c86480edcce625b1cd518.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/6db75251ec7638952e7c86480edcce625b1cd518.jpg\" alt=\"Shard Hunter\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Shard Hunter\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShard Hunter\u003c/strong\u003e\u003cbr/\u003e\n    Unlock all Shards\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/7947656c68a538e30c3d6358a7284ceafa59abb9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/7947656c68a538e30c3d6358a7284ceafa59abb9.jpg\" alt=\"Shard Specialist\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Shard Specialist\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShard Specialist\u003c/strong\u003e\u003cbr/\u003e\n    Upgrade all Shards\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/bb345a967f8830474d74221587de8f52ab3cf254.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/bb345a967f8830474d74221587de8f52ab3cf254.jpg\" alt=\"Powerful\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Powerful\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePowerful\u003c/strong\u003e\u003cbr/\u003e\n    Max out Energy\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/7055503d534016ad4bdd1b93fb183739c4bd3879.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/7055503d534016ad4bdd1b93fb183739c4bd3879.jpg\" alt=\"Cartographer\u0026#39;s Protégé\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cartographer\u0026#39;s Protégé\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCartographer\u0026#39;s Protégé\u003c/strong\u003e\u003cbr/\u003e\n    Buy all Maps from Lupo\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/9ba14939d059239ea226a798ea8cf9f59a19f389.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/9ba14939d059239ea226a798ea8cf9f59a19f389.jpg\" alt=\"Shrine Bright\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Shrine Bright\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShrine Bright\u003c/strong\u003e\u003cbr/\u003e\n    Complete all Spirit Shrines\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/269367d8eae8ad28b7e094e34176d8654deb3920.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/269367d8eae8ad28b7e094e34176d8654deb3920.jpg\" alt=\"Lost and Found\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Lost and Found\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLost and Found\u003c/strong\u003e\u003cbr/\u003e\n    Find all Collectibles\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/4205510a452d68def013a83d16304ed18da25895.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/4205510a452d68def013a83d16304ed18da25895.jpg\" alt=\"Mark of the Trader\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mark of the Trader\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMark of the Trader\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Trade Sequence Quest\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/997591f3eb08baa1b80a1d567dc261852ba050ff.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/997591f3eb08baa1b80a1d567dc261852ba050ff.jpg\" alt=\"Completionist\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Completionist\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompletionist\u003c/strong\u003e\u003cbr/\u003e\n    Complete every Side Quest\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/4c31896f8b3deb606055bff475f485a81177da4b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/4c31896f8b3deb606055bff475f485a81177da4b.jpg\" alt=\"Fixer Upper\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fixer Upper\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFixer Upper\u003c/strong\u003e\u003cbr/\u003e\n    Complete all Wellspring Glades Projects\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/16ba4adde26212df58e562d39b88c7e42a0c1b40.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/16ba4adde26212df58e562d39b88c7e42a0c1b40.jpg\" alt=\"Speed Demon\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Speed Demon\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpeed Demon\u003c/strong\u003e\u003cbr/\u003e\n    Complete all Spirit Trials\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/c35a4b81ed57a47b1b20c623910b61a0c1431390.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/c35a4b81ed57a47b1b20c623910b61a0c1431390.jpg\" alt=\"Healthy\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Healthy\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHealthy\u003c/strong\u003e\u003cbr/\u003e\n    Max out Life\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/6dfdf03bc25ff64cf6a81ed6ffd39a13181c6c46.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/6dfdf03bc25ff64cf6a81ed6ffd39a13181c6c46.jpg\" alt=\"Untouchable\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Untouchable\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUntouchable\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/261b7d234adb6405e4c2d155875cda93f517281c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/261b7d234adb6405e4c2d155875cda93f517281c.jpg\" alt=\"Timely Demise\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Timely Demise\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTimely Demise\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/d9cccf2326281559bd88859df1213b7ca286f54a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/d9cccf2326281559bd88859df1213b7ca286f54a.jpg\" alt=\"Juggling Act\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Juggling Act\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJuggling Act\u003c/strong\u003e\u003cbr/\u003e\n    Juggle 3 or More Projectiles in the Air for Over 5 Seconds\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/edd3a0410aec1589be460f94a8a856246e59fb49.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/edd3a0410aec1589be460f94a8a856246e59fb49.jpg\" alt=\"Bring it On\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bring it On\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBring it On\u003c/strong\u003e\u003cbr/\u003e\n    Defeat 5 Enemies Without Touching the Ground\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/ebb8a22d4cf712f6dc8c9fff33a8b698b72f8828.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/ebb8a22d4cf712f6dc8c9fff33a8b698b72f8828.jpg\" alt=\"High and Dry\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: High and Dry\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHigh and Dry\u003c/strong\u003e\u003cbr/\u003e\n    Avoid Touching any Corrupted Water\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/6b2f62fe98d5f1ebd55106eee6dce1f8874bd420.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/6b2f62fe98d5f1ebd55106eee6dce1f8874bd420.jpg\" alt=\"Damage Spike\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Damage Spike\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDamage Spike\u003c/strong\u003e\u003cbr/\u003e\n    Defeat 3 Enemies with a Single Spike\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/12edbb6f4c449f35149671c2ca34ac7a6422f145.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/12edbb6f4c449f35149671c2ca34ac7a6422f145.jpg\" alt=\"Did I Do That?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Did I Do That?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDid I Do That?\u003c/strong\u003e\u003cbr/\u003e\n    Defeat 10 Enemies using Environmental Hazards\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/bc03aadb118ffca4783528ae22e60044c3c5e675.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/bc03aadb118ffca4783528ae22e60044c3c5e675.jpg\" alt=\"Shardless\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Shardless\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShardless\u003c/strong\u003e\u003cbr/\u003e\n    Beat the Game Without Equipping a Shard\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/24b2d8ca55cd8258c1e0e464897efe0cbf3cba5e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/24b2d8ca55cd8258c1e0e464897efe0cbf3cba5e.jpg\" alt=\"Lightless\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Lightless\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLightless\u003c/strong\u003e\u003cbr/\u003e\n    Beat the Game Without Spending any Spirit Light\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/50e370f236ea3331214f9ca1350ab70af9e8a50a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/50e370f236ea3331214f9ca1350ab70af9e8a50a.jpg\" alt=\"Look at the Time\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Look at the Time\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLook at the Time\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Game in Under 4 Hours\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/1532d056157fb826a821ba21745e5e6b667ba4fc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/1532d056157fb826a821ba21745e5e6b667ba4fc.jpg\" alt=\"Immortal\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Immortal\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eImmortal\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Game without Dying\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/1057090/library_600x900.jpg\" alt=\"Patagonia box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/1057090/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003ePatagonia\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 2.7%\"\u003e\n        2.7%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e1/37 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e8.0h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2023-11-29\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (1)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/74ed77f296a8b35dbcf22b11d34231c80b9111aa.jpg\" alt=\"Close Call\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eClose Call\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 07, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (36)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/b45669f6e4af8e718bd31601fe165197acf20921.jpg\" alt=\"Take the Bug by the Horn\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTake the Bug by the Horn\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/f13bb36186d1470bb6cd1924629fc6aeb59653ff.jpg\" alt=\"Laser Brain\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLaser Brain\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/0854cd37c57bdc99b46351506887f8dc3c84ae0a.jpg\" alt=\"Home Sweet Home\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHome Sweet Home\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/b94930b6989c2943d71bc7d0bdf53bad01267e91.jpg\" alt=\"Let the Waters Flow\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLet the Waters Flow\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/4b810930cbea5d7ee121a83a3a0b517f9a15cc34.jpg\" alt=\"Icy Escape\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIcy Escape\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/76c65817990269c3acfc1f5921b2f66458bb1a9f.jpg\" alt=\"Dark Triumph\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDark Triumph\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/21b4864ce0af545453e17a29658ce90bcfb50e09.jpg\" alt=\"Guardian's Rest\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGuardian's Rest\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/92b1cf30b796024e13b01596fc7a2d2addee0a06.jpg\" alt=\"Quick Sand\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eQuick Sand\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/c38d5fe0033e6053e62746650af1232daec2131b.jpg\" alt=\"Stone Cold\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStone Cold\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/2bdf2df03918e5190cb83563fc28d86eeae085cf.jpg\" alt=\"Destiny\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDestiny\u003c/strong\u003e\u003cbr\u003e\n    Complete the Game\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/a42b0bbe72578f71078caba25868161fd7924613.jpg\" alt=\"Hardcore Fan\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHardcore Fan\u003c/strong\u003e\u003cbr\u003e\n    Complete Hard Mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/b8a2db9e88a5bc7546e3016e074e087d8d3b66be.jpg\" alt=\"Tools of the Trade\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTools of the Trade\u003c/strong\u003e\u003cbr\u003e\n    Unlock all Abilities\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/4aae25af4774b66378e162a5d350e06c100ee2cd.jpg\" alt=\"Mad Skills\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMad Skills\u003c/strong\u003e\u003cbr\u003e\n    Upgrade all Abilities\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/db0d3394464d18a7eb734ed44825606416b44520.jpg\" alt=\"Fully Slotted\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFully Slotted\u003c/strong\u003e\u003cbr\u003e\n    Upgrade all Shard Slots\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/6db75251ec7638952e7c86480edcce625b1cd518.jpg\" alt=\"Shard Hunter\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShard Hunter\u003c/strong\u003e\u003cbr\u003e\n    Unlock all Shards\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/7947656c68a538e30c3d6358a7284ceafa59abb9.jpg\" alt=\"Shard Specialist\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShard Specialist\u003c/strong\u003e\u003cbr\u003e\n    Upgrade all Shards\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/bb345a967f8830474d74221587de8f52ab3cf254.jpg\" alt=\"Powerful\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePowerful\u003c/strong\u003e\u003cbr\u003e\n    Max out Energy\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/7055503d534016ad4bdd1b93fb183739c4bd3879.jpg\" alt=\"Cartographer's Protégé\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCartographer's Protégé\u003c/strong\u003e\u003cbr\u003e\n    Buy all Maps from Lupo\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/9ba14939d059239ea226a798ea8cf9f59a19f389.jpg\" alt=\"Shrine Bright\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShrine Bright\u003c/strong\u003e\u003cbr\u003e\n    Complete all Spirit Shrines\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/269367d8eae8ad28b7e094e34176d8654deb3920.jpg\" alt=\"Lost and Found\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLost and Found\u003c/strong\u003e\u003cbr\u003e\n    Find all Collectibles\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/4205510a452d68def013a83d16304ed18da25895.jpg\" alt=\"Mark of the Trader\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMark of the Trader\u003c/strong\u003e\u003cbr\u003e\n    Complete the Trade Sequence Quest\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/997591f3eb08baa1b80a1d567dc261852ba050ff.jpg\" alt=\"Completionist\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompletionist\u003c/strong\u003e\u003cbr\u003e\n    Complete every Side Quest\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/4c31896f8b3deb606055bff475f485a81177da4b.jpg\" alt=\"Fixer Upper\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFixer Upper\u003c/strong\u003e\u003cbr\u003e\n    Complete all Wellspring Glades Projects\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/16ba4adde26212df58e562d39b88c7e42a0c1b40.jpg\" alt=\"Speed Demon\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpeed Demon\u003c/strong\u003e\u003cbr\u003e\n    Complete all Spirit Trials\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/c35a4b81ed57a47b1b20c623910b61a0c1431390.jpg\" alt=\"Healthy\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHealthy\u003c/strong\u003e\u003cbr\u003e\n    Max out Life\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/6dfdf03bc25ff64cf6a81ed6ffd39a13181c6c46.jpg\" alt=\"Untouchable\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUntouchable\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/261b7d234adb6405e4c2d155875cda93f517281c.jpg\" alt=\"Timely Demise\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTimely Demise\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/d9cccf2326281559bd88859df1213b7ca286f54a.jpg\" alt=\"Juggling Act\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJuggling Act\u003c/strong\u003e\u003cbr\u003e\n    Juggle 3 or More Projectiles in the Air for Over 5 Seconds\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/edd3a0410aec1589be460f94a8a856246e59fb49.jpg\" alt=\"Bring it On\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBring it On\u003c/strong\u003e\u003cbr\u003e\n    Defeat 5 Enemies Without Touching the Ground\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/ebb8a22d4cf712f6dc8c9fff33a8b698b72f8828.jpg\" alt=\"High and Dry\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHigh and Dry\u003c/strong\u003e\u003cbr\u003e\n    Avoid Touching any Corrupted Water\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/6b2f62fe98d5f1ebd55106eee6dce1f8874bd420.jpg\" alt=\"Damage Spike\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDamage Spike\u003c/strong\u003e\u003cbr\u003e\n    Defeat 3 Enemies with a Single Spike\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/12edbb6f4c449f35149671c2ca34ac7a6422f145.jpg\" alt=\"Did I Do That?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDid I Do That?\u003c/strong\u003e\u003cbr\u003e\n    Defeat 10 Enemies using Environmental Hazards\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/bc03aadb118ffca4783528ae22e60044c3c5e675.jpg\" alt=\"Shardless\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShardless\u003c/strong\u003e\u003cbr\u003e\n    Beat the Game Without Equipping a Shard\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/24b2d8ca55cd8258c1e0e464897efe0cbf3cba5e.jpg\" alt=\"Lightless\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLightless\u003c/strong\u003e\u003cbr\u003e\n    Beat the Game Without Spending any Spirit Light\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/50e370f236ea3331214f9ca1350ab70af9e8a50a.jpg\" alt=\"Look at the Time\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLook at the Time\u003c/strong\u003e\u003cbr\u003e\n    Complete the Game in Under 4 Hours\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1057090/1532d056157fb826a821ba21745e5e6b667ba4fc.jpg\" alt=\"Immortal\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eImmortal\u003c/strong\u003e\u003cbr\u003e\n    Complete the Game without Dying\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Patagonia - 2.7% complete with 1/37 achievements unlocked.",
      "date_published": "2023-11-29T00:00:00Z",
      "date_modified": "2023-11-29T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "patagonia"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/fokais/",
      "url": "https://go.waylonwalker.com/fokais/",
      "title": "Hosted Platform Brainstorm",
      "content_html": "\u003cp\u003e\u003ca href=\"http://localhost:8000/shot/?url=https://asdf.com\u0026amp;height=450\u0026amp;width=800\u0026amp;scaled_width=800\u0026amp;scaled_height=450\u0026amp;selectors=\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"http://localhost:8000/shot/?url=https://asdf.com\u0026amp;height=450\u0026amp;width=800\u0026amp;scaled_width=800\u0026amp;scaled_height=450\u0026amp;selectors=\" alt=\"Screenshot of https://asdf.com\" style=\"width: 800px; height: 450px;\"/ data-glightbox=\"description: Screenshot of https://asdf.com\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ca href=\"http://localhost:8000/shot/?url=https://asdf.com\u0026amp;height=450\u0026amp;width=800\u0026amp;scaled_width=800\u0026amp;scaled_height=450\u0026amp;selectors=\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" height=\"450\" width=\"800\" src=\"http://localhost:8000/shot/?url=https://asdf.com\u0026amp;height=450\u0026amp;width=800\u0026amp;scaled_width=800\u0026amp;scaled_height=450\u0026amp;selectors=\" alt=\"Screenshot of https://asdf.com\"/ data-glightbox=\"description: Screenshot of https://asdf.com\"\u003e\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eshots\n\u003cul\u003e\n\u003cli\u003eshots templates\u003c/li\u003e\n\u003cli\u003egradient backgrounds\u003c/li\u003e\n\u003cli\u003epremium feature upload your own background\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eogs\n\u003cul\u003e\n\u003cli\u003escrape \u003ca href=\"/og/\" class=\"glossary-term\" title=\"OG is short for open graph, a set of standard meta tags that are used for social media sharing. This is what tells other websites how to describe and display...\"\u003eog\u003c/a\u003e info, generate og image\u003c/li\u003e\n\u003cli\u003eog’s build on shots, they are just hosted template endpoints that get a screenshots\u003c/li\u003e\n\u003cli\u003epotentially auto approve og’s from rss\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003edrops\n\u003cul\u003e\n\u003cli\u003edrop a file to share\u003c/li\u003e\n\u003cli\u003elimited size, limited upload MB’s / month\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003earchives\n\u003cul\u003e\n\u003cli\u003edeep permalink a website\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://pypi.org/project/pywebcopy/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/pypi.org.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/pypi.org.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://pypi.org/project/pywebcopy/\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eog-links\u003c/li\u003e\n\u003cli\u003eai-covers\n\u003cul\u003e\n\u003cli\u003egive me an url, and a selector, I will read your article and give you an ai generated cover image\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eai-summaries\n\u003cul\u003e\n\u003cli\u003egive me an url, and a selector, I will read your article and give you an ai generated summary\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eai-voice - voices\n\u003cul\u003e\n\u003cli\u003egive me an url, and a selector, I will read your article and give you an ai generated voice\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eimage-optimization\n\u003cul\u003e\n\u003cli\u003euse the image optimization pipelie for shots to give you an optimized image\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eblur ups\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"community\"\u003eCommunity \u003ca href=\"#community\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003ehost it yourself\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ereader\u003c/li\u003e\n\u003cli\u003emarkata\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"limits\"\u003eLimits \u003ca href=\"#limits\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003ecloudflare file size 100mb \u003ca href=\"https://developers.cloudflare.com/cache/concepts/default-cache-behavior/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/developers.cloudflare.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/developers.cloudflare.com.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://developers.cloudflare.com/cache/concepts/default-cache-behavior/\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"free-tier\"\u003eFree Tier \u003ca href=\"#free-tier\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e100 shots\n\u003cul\u003e\n\u003cli\u003e100kb\u003c/li\u003e\n\u003cli\u003e1080p\u003c/li\u003e\n\u003cli\u003ewatermark\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e100 drops\n\u003cul\u003e\n\u003cli\u003e100kb\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e10 voice\n\u003cul\u003e\n\u003cli\u003e4096 characters\u003c/li\u003e\n\u003cli\u003epreroll add\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e10 summaries\n\u003cul\u003e\n\u003cli\u003e4096 characters\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e10 covers\n\u003cul\u003e\n\u003cli\u003e4096 characters\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"starter-tier-10\"\u003eStarter Tier $10 \u003ca href=\"#starter-tier-10\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e500 shots\n\u003cul\u003e\n\u003cli\u003e500kb\u003c/li\u003e\n\u003cli\u003e1080p\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e500 drops\n\u003cul\u003e\n\u003cli\u003e500kb\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"hobby-tier-25\"\u003eHobby Tier $25 \u003ca href=\"#hobby-tier-25\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e500 shots\n\u003cul\u003e\n\u003cli\u003e500kb\u003c/li\u003e\n\u003cli\u003e1080p\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e500 drops\n\u003cul\u003e\n\u003cli\u003e500kb\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e100 voice\n\u003cul\u003e\n\u003cli\u003e4096x10 characters\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e100 summaries\n\u003cul\u003e\n\u003cli\u003e4096x10 characters\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e100 covers\n\u003cul\u003e\n\u003cli\u003e4096x10 characters\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"pro-tier-50\"\u003ePro Tier $50 \u003ca href=\"#pro-tier-50\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e1000 shots\n\u003cul\u003e\n\u003cli\u003e1000kb\u003c/li\u003e\n\u003cli\u003e1080p\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e1000 drops\n\u003cul\u003e\n\u003cli\u003e1000kb\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e500 voice\n\u003cul\u003e\n\u003cli\u003e4096x50 characters\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e500 summaries\n\u003cul\u003e\n\u003cli\u003e4096x50 characters\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e500 covers\n\u003cul\u003e\n\u003cli\u003e4096x50 characters\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"existing-solutions\"\u003eexisting solutions \u003ca href=\"#existing-solutions\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eog-images, similar to shots \u003ca href=\"https://ogimage.org/templates\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/ogimage.org.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/ogimage.org.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://ogimage.org/templates\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e$49/mo $99 setupfee\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"roadmap-to-prod\"\u003eRoadmap to prod \u003ca href=\"#roadmap-to-prod\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch3 id=\"shots\"\u003eShots \u003ca href=\"#shots\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e Watermarks\u003c/li\u003e\n\u003c/ul\u003e\n\u003csvg version=\"1.1\" xmlns=\"https://www.w3.org/2000/svg\" viewBox=\"0 0 629.5838486947605 460.14269017839115\" width=\"629.5838486947605\" height=\"460.14269017839115\" filter=\"invert(93%) hue-rotate(180deg)\"\u003e\n  \u003c!-- svg-source:excalidraw --\u003e\n  \u003cdefs\u003e\n    \u003cstyle class=\"style-fonts\"\u003e\n      @font-face {\n        font-family: \u0026#34;Virgil\u0026#34;;\n        src: url(\u0026#34;https://excalidraw.com/Virgil.woff2\u0026#34;);\n      }\n      @font-face {\n        font-family: \u0026#34;Cascadia\u0026#34;;\n        src: url(\u0026#34;https://excalidraw.com/Cascadia.woff2\u0026#34;);\n      }\n      @font-face {\n        font-family: \u0026#34;Assistant\u0026#34;;\n        src: url(\u0026#34;https://excalidraw.com/Assistant-Regular.woff2\u0026#34;);\n      }\n    \u003c/style\u003e\n  \u003c/defs\u003e\n  \u003cg stroke-linecap=\"round\" transform=\"translate(16.31581243820466 10.963047496005004) rotate(359.81664177256994 301.28419440173326 219.10829759319057)\"\u003e\u003cpath d=\"M0 0 C209.95 -0.55, 419.3 0.15, 602.57 0 M0 0 C223.64 -1.39, 446.91 -1.33, 602.57 0 M602.57 0 C603.02 110.75, 604.73 223.25, 602.57 438.22 M602.57 0 C604.07 105.52, 603.42 210.48, 602.57 438.22 M602.57 438.22 C421.02 439.89, 238.63 441.25, 0 438.22 M602.57 438.22 C445.92 440.36, 289.84 440.56, 0 438.22 M0 438.22 C1.3 301.03, 2.26 163.72, 0 0 M0 438.22 C1.49 327.27, 0.98 215.61, 0 0\" stroke=\"#000000\" stroke-width=\"1\" fill=\"none\"\u003e\u003c/path\u003e\u003c/g\u003e\u003cg stroke-linecap=\"round\"\u003e\u003cg transform=\"translate(10.29357030063403 61.46721863495213) rotate(359.81664177256994 303.5413940742784 0)\"\u003e\u003cpath d=\"M-0.3 1.02 C100.98 1, 506.7 0.88, 607.83 0.85 M1.75 0.51 C102.92 0.08, 506.66 -0.57, 607.28 -0.83\" stroke=\"#000000\" stroke-width=\"1\" fill=\"none\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/g\u003e\u003cmask\u003e\u003c/mask\u003e\u003cg stroke-linecap=\"round\" transform=\"translate(36.45029269471485 31.949750067657817) rotate(359.81664177256994 11.784205635318813 11.784205635318813)\"\u003e\u003cpath d=\"M23.57 11.78 C23.57 12.47, 23.51 13.16, 23.39 13.83 C23.27 14.5, 23.09 15.17, 22.86 15.81 C22.62 16.46, 22.33 17.09, 21.99 17.68 C21.65 18.27, 21.25 18.84, 20.81 19.36 C20.37 19.88, 19.88 20.37, 19.36 20.81 C18.84 21.25, 18.27 21.65, 17.68 21.99 C17.09 22.33, 16.46 22.62, 15.81 22.86 C15.17 23.09, 14.5 23.27, 13.83 23.39 C13.16 23.51, 12.47 23.57, 11.78 23.57 C11.1 23.57, 10.41 23.51, 9.74 23.39 C9.07 23.27, 8.39 23.09, 7.75 22.86 C7.11 22.62, 6.48 22.33, 5.89 21.99 C5.3 21.65, 4.73 21.25, 4.21 20.81 C3.69 20.37, 3.2 19.88, 2.76 19.36 C2.32 18.84, 1.92 18.27, 1.58 17.68 C1.24 17.09, 0.94 16.46, 0.71 15.81 C0.48 15.17, 0.3 14.5, 0.18 13.83 C0.06 13.16, 0 12.47, 0 11.78 C0 11.1, 0.06 10.41, 0.18 9.74 C0.3 9.07, 0.48 8.39, 0.71 7.75 C0.94 7.11, 1.24 6.48, 1.58 5.89 C1.92 5.3, 2.32 4.73, 2.76 4.21 C3.2 3.69, 3.69 3.2, 4.21 2.76 C4.73 2.32, 5.3 1.92, 5.89 1.58 C6.48 1.24, 7.11 0.94, 7.75 0.71 C8.39 0.48, 9.07 0.3, 9.74 0.18 C10.41 0.06, 11.1 0, 11.78 0 C12.47 0, 13.16 0.06, 13.83 0.18 C14.5 0.3, 15.17 0.48, 15.81 0.71 C16.46 0.94, 17.09 1.24, 17.68 1.58 C18.27 1.92, 18.84 2.32, 19.36 2.76 C19.88 3.2, 20.37 3.69, 20.81 4.21 C21.25 4.73, 21.65 5.3, 21.99 5.89 C22.33 6.48, 22.62 7.11, 22.86 7.75 C23.09 8.39, 23.27 9.07, 23.39 9.74 C23.51 10.41, 23.54 11.44, 23.57 11.78 C23.6 12.13, 23.6 11.44, 23.57 11.78\" stroke=\"none\" stroke-width=\"0\" fill=\"#fa5252\"\u003e\u003c/path\u003e\u003cpath d=\"M23.57 11.78 C23.57 12.47, 23.51 13.16, 23.39 13.83 C23.27 14.5, 23.09 15.17, 22.86 15.81 C22.62 16.46, 22.33 17.09, 21.99 17.68 C21.65 18.27, 21.25 18.84, 20.81 19.36 C20.37 19.88, 19.88 20.37, 19.36 20.81 C18.84 21.25, 18.27 21.65, 17.68 21.99 C17.09 22.33, 16.46 22.62, 15.81 22.86 C15.17 23.09, 14.5 23.27, 13.83 23.39 C13.16 23.51, 12.47 23.57, 11.78 23.57 C11.1 23.57, 10.41 23.51, 9.74 23.39 C9.07 23.27, 8.39 23.09, 7.75 22.86 C7.11 22.62, 6.48 22.33, 5.89 21.99 C5.3 21.65, 4.73 21.25, 4.21 20.81 C3.69 20.37, 3.2 19.88, 2.76 19.36 C2.32 18.84, 1.92 18.27, 1.58 17.68 C1.24 17.09, 0.94 16.46, 0.71 15.81 C0.48 15.17, 0.3 14.5, 0.18 13.83 C0.06 13.16, 0 12.47, 0 11.78 C0 11.1, 0.06 10.41, 0.18 9.74 C0.3 9.07, 0.48 8.39, 0.71 7.75 C0.94 7.11, 1.24 6.48, 1.58 5.89 C1.92 5.3, 2.32 4.73, 2.76 4.21 C3.2 3.69, 3.69 3.2, 4.21 2.76 C4.73 2.32, 5.3 1.92, 5.89 1.58 C6.48 1.24, 7.11 0.94, 7.75 0.71 C8.39 0.48, 9.07 0.3, 9.74 0.18 C10.41 0.06, 11.1 0, 11.78 0 C12.47 0, 13.16 0.06, 13.83 0.18 C14.5 0.3, 15.17 0.48, 15.81 0.71 C16.46 0.94, 17.09 1.24, 17.68 1.58 C18.27 1.92, 18.84 2.32, 19.36 2.76 C19.88 3.2, 20.37 3.69, 20.81 4.21 C21.25 4.73, 21.65 5.3, 21.99 5.89 C22.33 6.48, 22.62 7.11, 22.86 7.75 C23.09 8.39, 23.27 9.07, 23.39 9.74 C23.51 10.41, 23.54 11.44, 23.57 11.78 C23.6 12.13, 23.6 11.44, 23.57 11.78\" stroke=\"#000000\" stroke-width=\"1\" fill=\"none\"\u003e\u003c/path\u003e\u003c/g\u003e\u003cg stroke-linecap=\"round\" transform=\"translate(84.80624071464496 31.795000603418544) rotate(359.81664177256994 11.784205635318813 11.784205635318813)\"\u003e\u003cpath d=\"M23.57 11.78 C23.57 12.47, 23.51 13.16, 23.39 13.83 C23.27 14.5, 23.09 15.17, 22.86 15.81 C22.62 16.46, 22.33 17.09, 21.99 17.68 C21.65 18.27, 21.25 18.84, 20.81 19.36 C20.37 19.88, 19.88 20.37, 19.36 20.81 C18.84 21.25, 18.27 21.65, 17.68 21.99 C17.09 22.33, 16.46 22.62, 15.81 22.86 C15.17 23.09, 14.5 23.27, 13.83 23.39 C13.16 23.51, 12.47 23.57, 11.78 23.57 C11.1 23.57, 10.41 23.51, 9.74 23.39 C9.07 23.27, 8.39 23.09, 7.75 22.86 C7.11 22.62, 6.48 22.33, 5.89 21.99 C5.3 21.65, 4.73 21.25, 4.21 20.81 C3.69 20.37, 3.2 19.88, 2.76 19.36 C2.32 18.84, 1.92 18.27, 1.58 17.68 C1.24 17.09, 0.94 16.46, 0.71 15.81 C0.48 15.17, 0.3 14.5, 0.18 13.83 C0.06 13.16, 0 12.47, 0 11.78 C0 11.1, 0.06 10.41, 0.18 9.74 C0.3 9.07, 0.48 8.39, 0.71 7.75 C0.94 7.11, 1.24 6.48, 1.58 5.89 C1.92 5.3, 2.32 4.73, 2.76 4.21 C3.2 3.69, 3.69 3.2, 4.21 2.76 C4.73 2.32, 5.3 1.92, 5.89 1.58 C6.48 1.24, 7.11 0.94, 7.75 0.71 C8.39 0.48, 9.07 0.3, 9.74 0.18 C10.41 0.06, 11.1 0, 11.78 0 C12.47 0, 13.16 0.06, 13.83 0.18 C14.5 0.3, 15.17 0.48, 15.81 0.71 C16.46 0.94, 17.09 1.24, 17.68 1.58 C18.27 1.92, 18.84 2.32, 19.36 2.76 C19.88 3.2, 20.37 3.69, 20.81 4.21 C21.25 4.73, 21.65 5.3, 21.99 5.89 C22.33 6.48, 22.62 7.11, 22.86 7.75 C23.09 8.39, 23.27 9.07, 23.39 9.74 C23.51 10.41, 23.54 11.44, 23.57 11.78 C23.6 12.13, 23.6 11.44, 23.57 11.78\" stroke=\"none\" stroke-width=\"0\" fill=\"#fab005\"\u003e\u003c/path\u003e\u003cpath d=\"M23.57 11.78 C23.57 12.47, 23.51 13.16, 23.39 13.83 C23.27 14.5, 23.09 15.17, 22.86 15.81 C22.62 16.46, 22.33 17.09, 21.99 17.68 C21.65 18.27, 21.25 18.84, 20.81 19.36 C20.37 19.88, 19.88 20.37, 19.36 20.81 C18.84 21.25, 18.27 21.65, 17.68 21.99 C17.09 22.33, 16.46 22.62, 15.81 22.86 C15.17 23.09, 14.5 23.27, 13.83 23.39 C13.16 23.51, 12.47 23.57, 11.78 23.57 C11.1 23.57, 10.41 23.51, 9.74 23.39 C9.07 23.27, 8.39 23.09, 7.75 22.86 C7.11 22.62, 6.48 22.33, 5.89 21.99 C5.3 21.65, 4.73 21.25, 4.21 20.81 C3.69 20.37, 3.2 19.88, 2.76 19.36 C2.32 18.84, 1.92 18.27, 1.58 17.68 C1.24 17.09, 0.94 16.46, 0.71 15.81 C0.48 15.17, 0.3 14.5, 0.18 13.83 C0.06 13.16, 0 12.47, 0 11.78 C0 11.1, 0.06 10.41, 0.18 9.74 C0.3 9.07, 0.48 8.39, 0.71 7.75 C0.94 7.11, 1.24 6.48, 1.58 5.89 C1.92 5.3, 2.32 4.73, 2.76 4.21 C3.2 3.69, 3.69 3.2, 4.21 2.76 C4.73 2.32, 5.3 1.92, 5.89 1.58 C6.48 1.24, 7.11 0.94, 7.75 0.71 C8.39 0.48, 9.07 0.3, 9.74 0.18 C10.41 0.06, 11.1 0, 11.78 0 C12.47 0, 13.16 0.06, 13.83 0.18 C14.5 0.3, 15.17 0.48, 15.81 0.71 C16.46 0.94, 17.09 1.24, 17.68 1.58 C18.27 1.92, 18.84 2.32, 19.36 2.76 C19.88 3.2, 20.37 3.69, 20.81 4.21 C21.25 4.73, 21.65 5.3, 21.99 5.89 C22.33 6.48, 22.62 7.11, 22.86 7.75 C23.09 8.39, 23.27 9.07, 23.39 9.74 C23.51 10.41, 23.54 11.44, 23.57 11.78 C23.6 12.13, 23.6 11.44, 23.57 11.78\" stroke=\"#000000\" stroke-width=\"1\" fill=\"none\"\u003e\u003c/path\u003e\u003c/g\u003e\u003cg stroke-linecap=\"round\" transform=\"translate(135.2927009322155 33.757170639198876) rotate(359.81664177256994 11.784205635318813 11.784205635318813)\"\u003e\u003cpath d=\"M23.57 11.78 C23.57 12.47, 23.51 13.16, 23.39 13.83 C23.27 14.5, 23.09 15.17, 22.86 15.81 C22.62 16.46, 22.33 17.09, 21.99 17.68 C21.65 18.27, 21.25 18.84, 20.81 19.36 C20.37 19.88, 19.88 20.37, 19.36 20.81 C18.84 21.25, 18.27 21.65, 17.68 21.99 C17.09 22.33, 16.46 22.62, 15.81 22.86 C15.17 23.09, 14.5 23.27, 13.83 23.39 C13.16 23.51, 12.47 23.57, 11.78 23.57 C11.1 23.57, 10.41 23.51, 9.74 23.39 C9.07 23.27, 8.39 23.09, 7.75 22.86 C7.11 22.62, 6.48 22.33, 5.89 21.99 C5.3 21.65, 4.73 21.25, 4.21 20.81 C3.69 20.37, 3.2 19.88, 2.76 19.36 C2.32 18.84, 1.92 18.27, 1.58 17.68 C1.24 17.09, 0.94 16.46, 0.71 15.81 C0.48 15.17, 0.3 14.5, 0.18 13.83 C0.06 13.16, 0 12.47, 0 11.78 C0 11.1, 0.06 10.41, 0.18 9.74 C0.3 9.07, 0.48 8.39, 0.71 7.75 C0.94 7.11, 1.24 6.48, 1.58 5.89 C1.92 5.3, 2.32 4.73, 2.76 4.21 C3.2 3.69, 3.69 3.2, 4.21 2.76 C4.73 2.32, 5.3 1.92, 5.89 1.58 C6.48 1.24, 7.11 0.94, 7.75 0.71 C8.39 0.48, 9.07 0.3, 9.74 0.18 C10.41 0.06, 11.1 0, 11.78 0 C12.47 0, 13.16 0.06, 13.83 0.18 C14.5 0.3, 15.17 0.48, 15.81 0.71 C16.46 0.94, 17.09 1.24, 17.68 1.58 C18.27 1.92, 18.84 2.32, 19.36 2.76 C19.88 3.2, 20.37 3.69, 20.81 4.21 C21.25 4.73, 21.65 5.3, 21.99 5.89 C22.33 6.48, 22.62 7.11, 22.86 7.75 C23.09 8.39, 23.27 9.07, 23.39 9.74 C23.51 10.41, 23.54 11.44, 23.57 11.78 C23.6 12.13, 23.6 11.44, 23.57 11.78\" stroke=\"none\" stroke-width=\"0\" fill=\"#40c057\"\u003e\u003c/path\u003e\u003cpath d=\"M23.57 11.78 C23.57 12.47, 23.51 13.16, 23.39 13.83 C23.27 14.5, 23.09 15.17, 22.86 15.81 C22.62 16.46, 22.33 17.09, 21.99 17.68 C21.65 18.27, 21.25 18.84, 20.81 19.36 C20.37 19.88, 19.88 20.37, 19.36 20.81 C18.84 21.25, 18.27 21.65, 17.68 21.99 C17.09 22.33, 16.46 22.62, 15.81 22.86 C15.17 23.09, 14.5 23.27, 13.83 23.39 C13.16 23.51, 12.47 23.57, 11.78 23.57 C11.1 23.57, 10.41 23.51, 9.74 23.39 C9.07 23.27, 8.39 23.09, 7.75 22.86 C7.11 22.62, 6.48 22.33, 5.89 21.99 C5.3 21.65, 4.73 21.25, 4.21 20.81 C3.69 20.37, 3.2 19.88, 2.76 19.36 C2.32 18.84, 1.92 18.27, 1.58 17.68 C1.24 17.09, 0.94 16.46, 0.71 15.81 C0.48 15.17, 0.3 14.5, 0.18 13.83 C0.06 13.16, 0 12.47, 0 11.78 C0 11.1, 0.06 10.41, 0.18 9.74 C0.3 9.07, 0.48 8.39, 0.71 7.75 C0.94 7.11, 1.24 6.48, 1.58 5.89 C1.92 5.3, 2.32 4.73, 2.76 4.21 C3.2 3.69, 3.69 3.2, 4.21 2.76 C4.73 2.32, 5.3 1.92, 5.89 1.58 C6.48 1.24, 7.11 0.94, 7.75 0.71 C8.39 0.48, 9.07 0.3, 9.74 0.18 C10.41 0.06, 11.1 0, 11.78 0 C12.47 0, 13.16 0.06, 13.83 0.18 C14.5 0.3, 15.17 0.48, 15.81 0.71 C16.46 0.94, 17.09 1.24, 17.68 1.58 C18.27 1.92, 18.84 2.32, 19.36 2.76 C19.88 3.2, 20.37 3.69, 20.81 4.21 C21.25 4.73, 21.65 5.3, 21.99 5.89 C22.33 6.48, 22.62 7.11, 22.86 7.75 C23.09 8.39, 23.27 9.07, 23.39 9.74 C23.51 10.41, 23.54 11.44, 23.57 11.78 C23.6 12.13, 23.6 11.44, 23.57 11.78\" stroke=\"#000000\" stroke-width=\"1\" fill=\"none\"\u003e\u003c/path\u003e\u003c/g\u003e\u003cg stroke-linecap=\"round\" transform=\"translate(59.20068387524731 89.05373466188496) rotate(0 267.09152149134246 161.74797108947757)\"\u003e\u003cpath d=\"M32 0 C129.07 0, 226.15 0, 502.18 0 M32 0 C127.19 0, 222.38 0, 502.18 0 M502.18 0 C523.52 0, 534.18 10.67, 534.18 32 M502.18 0 C523.52 0, 534.18 10.67, 534.18 32 M534.18 32 C534.18 110.31, 534.18 188.62, 534.18 291.5 M534.18 32 C534.18 122.55, 534.18 213.09, 534.18 291.5 M534.18 291.5 C534.18 312.83, 523.52 323.5, 502.18 323.5 M534.18 291.5 C534.18 312.83, 523.52 323.5, 502.18 323.5 M502.18 323.5 C402.29 323.5, 302.4 323.5, 32 323.5 M502.18 323.5 C402.71 323.5, 303.23 323.5, 32 323.5 M32 323.5 C10.67 323.5, 0 312.83, 0 291.5 M32 323.5 C10.67 323.5, 0 312.83, 0 291.5 M0 291.5 C0 195.86, 0 100.23, 0 32 M0 291.5 C0 233.9, 0 176.3, 0 32 M0 32 C0 10.67, 10.67 0, 32 0 M0 32 C0 10.67, 10.67 0, 32 0\" stroke=\"#1e1e1e\" stroke-width=\"1\" fill=\"none\"\u003e\u003c/path\u003e\u003c/g\u003e\u003cg stroke-linecap=\"round\" transform=\"translate(74.54600420937714 100.25167112192571) rotate(0 30.068533087146477 148.47634269239222)\"\u003e\u003cpath d=\"M15.03 0 C23.52 0, 32.01 0, 45.1 0 M45.1 0 C55.13 0, 60.14 5.01, 60.14 15.03 M60.14 15.03 C60.14 117.48, 60.14 219.93, 60.14 281.92 M60.14 281.92 C60.14 291.94, 55.13 296.95, 45.1 296.95 M45.1 296.95 C33.2 296.95, 21.3 296.95, 15.03 296.95 M15.03 296.95 C5.01 296.95, 0 291.94, 0 281.92 M0 281.92 C0 219.22, 0 156.51, 0 15.03 M0 15.03 C0 5.01, 5.01 0, 15.03 0\" stroke=\"#1e1e1e\" stroke-width=\"1.5\" fill=\"none\" stroke-dasharray=\"8 9\"\u003e\u003c/path\u003e\u003c/g\u003e\u003cg stroke-linecap=\"round\" transform=\"translate(144.53310708463192 100.25167112192571) rotate(0 184.14384400955907 147.85423511127885)\"\u003e\u003cpath d=\"M32 0 C131.19 0, 230.39 0, 336.29 0 M336.29 0 C357.62 0, 368.29 10.67, 368.29 32 M368.29 32 C368.29 86.42, 368.29 140.83, 368.29 263.71 M368.29 263.71 C368.29 285.04, 357.62 295.71, 336.29 295.71 M336.29 295.71 C248.5 295.71, 160.71 295.71, 32 295.71 M32 295.71 C10.67 295.71, 0 285.04, 0 263.71 M0 263.71 C0 214.52, 0 165.32, 0 32 M0 32 C0 10.67, 10.67 0, 32 0\" stroke=\"#1e1e1e\" stroke-width=\"1.5\" fill=\"none\" stroke-dasharray=\"8 9\"\u003e\u003c/path\u003e\u003c/g\u003e\u003cg stroke-linecap=\"round\" transform=\"translate(522.6708318047117 99.94061733136903) rotate(0 30.068533087146477 148.47634269239222)\"\u003e\u003cpath d=\"M15.03 0 C22.97 0, 30.91 0, 45.1 0 M45.1 0 C55.13 0, 60.14 5.01, 60.14 15.03 M60.14 15.03 C60.14 118.47, 60.14 221.9, 60.14 281.92 M60.14 281.92 C60.14 291.94, 55.13 296.95, 45.1 296.95 M45.1 296.95 C33.12 296.95, 21.14 296.95, 15.03 296.95 M15.03 296.95 C5.01 296.95, 0 291.94, 0 281.92 M0 281.92 C0 218.03, 0 154.15, 0 15.03 M0 15.03 C0 5.01, 5.01 0, 15.03 0\" stroke=\"#1e1e1e\" stroke-width=\"1.5\" fill=\"none\" stroke-dasharray=\"8 9\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/svg\u003e\n",
      "content_text": "\n\u003cimg\nsrc=\"http://localhost:8000/shot/?url=https://asdf.com\u0026height=450\u0026width=800\u0026scaled_width=800\u0026scaled_height=450\u0026selectors=\" alt=\"Screenshot of https://asdf.com\"\nstyle=\"width: 800px; height: 450px;\"\n/\u003e\n\n\u003cimg height=\"450\" width=\"800\" src=\"http://localhost:8000/shot/?url=https://asdf.com\u0026height=450\u0026width=800\u0026scaled_width=800\u0026scaled_height=450\u0026selectors=\" alt=\"Screenshot of https://asdf.com\"/\u003e\n\n- shots\n  - shots templates\n  - gradient backgrounds\n  - premium feature upload your own background\n- ogs\n  - scrape og info, generate og image\n  - og's build on shots, they are just hosted template endpoints that get a screenshots\n  - potentially auto approve og's from rss\n- drops\n  - drop a file to share\n  - limited size, limited upload MB's / month\n- archives\n  - deep permalink a website\n  - \u003chttps://pypi.org/project/pywebcopy/\u003e\n- og-links\n- ai-covers\n  - give me an url, and a selector, I will read your article and give you an ai generated cover image\n- ai-summaries\n  - give me an url, and a selector, I will read your article and give you an ai generated summary\n- ai-voice - voices\n  - give me an url, and a selector, I will read your article and give you an ai generated voice\n- image-optimization\n  - use the image optimization pipelie for shots to give you an optimized image\n- blur ups\n\n## Community\n\nhost it yourself\n\n- reader\n- markata\n\n## Limits\n\ncloudflare file size 100mb \u003chttps://developers.cloudflare.com/cache/concepts/default-cache-behavior/\u003e\n\n## Free Tier\n\n- 100 shots\n  - 100kb\n  - 1080p\n  - watermark\n- 100 drops\n  - 100kb\n- 10 voice\n  - 4096 characters\n  - preroll add\n- 10 summaries\n  - 4096 characters\n- 10 covers\n  - 4096 characters\n\n## Starter Tier $10\n\n- 500 shots\n  - 500kb\n  - 1080p\n- 500 drops\n  - 500kb\n\n## Hobby Tier $25\n\n- 500 shots\n  - 500kb\n  - 1080p\n- 500 drops\n  - 500kb\n- 100 voice\n  - 4096x10 characters\n- 100 summaries\n  - 4096x10 characters\n- 100 covers\n  - 4096x10 characters\n\n## Pro Tier $50\n\n- 1000 shots\n  - 1000kb\n  - 1080p\n- 1000 drops\n  - 1000kb\n- 500 voice\n  - 4096x50 characters\n- 500 summaries\n  - 4096x50 characters\n- 500 covers\n  - 4096x50 characters\n\n## existing solutions\n\n- og-images, similar to shots \u003chttps://ogimage.org/templates\u003e\n  - $49/mo $99 setupfee\n\n## Roadmap to prod\n\n### Shots\n\n- [ ] Watermarks\n\n\u003csvg version=\"1.1\" xmlns=\"https://www.w3.org/2000/svg\" viewBox=\"0 0 629.5838486947605 460.14269017839115\" width=\"629.5838486947605\" height=\"460.14269017839115\" filter=\"invert(93%) hue-rotate(180deg)\"\u003e\n  \u003c!-- svg-source:excalidraw --\u003e\n\n  \u003cdefs\u003e\n    \u003cstyle class=\"style-fonts\"\u003e\n      @font-face {\n        font-family: \"Virgil\";\n        src: url(\"https://excalidraw.com/Virgil.woff2\");\n      }\n      @font-face {\n        font-family: \"Cascadia\";\n        src: url(\"https://excalidraw.com/Cascadia.woff2\");\n      }\n      @font-face {\n        font-family: \"Assistant\";\n        src: url(\"https://excalidraw.com/Assistant-Regular.woff2\");\n      }\n    \u003c/style\u003e\n\n  \u003c/defs\u003e\n  \u003cg stroke-linecap=\"round\" transform=\"translate(16.31581243820466 10.963047496005004) rotate(359.81664177256994 301.28419440173326 219.10829759319057)\"\u003e\u003cpath d=\"M0 0 C209.95 -0.55, 419.3 0.15, 602.57 0 M0 0 C223.64 -1.39, 446.91 -1.33, 602.57 0 M602.57 0 C603.02 110.75, 604.73 223.25, 602.57 438.22 M602.57 0 C604.07 105.52, 603.42 210.48, 602.57 438.22 M602.57 438.22 C421.02 439.89, 238.63 441.25, 0 438.22 M602.57 438.22 C445.92 440.36, 289.84 440.56, 0 438.22 M0 438.22 C1.3 301.03, 2.26 163.72, 0 0 M0 438.22 C1.49 327.27, 0.98 215.61, 0 0\" stroke=\"#000000\" stroke-width=\"1\" fill=\"none\"\u003e\u003c/path\u003e\u003c/g\u003e\u003cg stroke-linecap=\"round\"\u003e\u003cg transform=\"translate(10.29357030063403 61.46721863495213) rotate(359.81664177256994 303.5413940742784 0)\"\u003e\u003cpath d=\"M-0.3 1.02 C100.98 1, 506.7 0.88, 607.83 0.85 M1.75 0.51 C102.92 0.08, 506.66 -0.57, 607.28 -0.83\" stroke=\"#000000\" stroke-width=\"1\" fill=\"none\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/g\u003e\u003cmask\u003e\u003c/mask\u003e\u003cg stroke-linecap=\"round\" transform=\"translate(36.45029269471485 31.949750067657817) rotate(359.81664177256994 11.784205635318813 11.784205635318813)\"\u003e\u003cpath d=\"M23.57 11.78 C23.57 12.47, 23.51 13.16, 23.39 13.83 C23.27 14.5, 23.09 15.17, 22.86 15.81 C22.62 16.46, 22.33 17.09, 21.99 17.68 C21.65 18.27, 21.25 18.84, 20.81 19.36 C20.37 19.88, 19.88 20.37, 19.36 20.81 C18.84 21.25, 18.27 21.65, 17.68 21.99 C17.09 22.33, 16.46 22.62, 15.81 22.86 C15.17 23.09, 14.5 23.27, 13.83 23.39 C13.16 23.51, 12.47 23.57, 11.78 23.57 C11.1 23.57, 10.41 23.51, 9.74 23.39 C9.07 23.27, 8.39 23.09, 7.75 22.86 C7.11 22.62, 6.48 22.33, 5.89 21.99 C5.3 21.65, 4.73 21.25, 4.21 20.81 C3.69 20.37, 3.2 19.88, 2.76 19.36 C2.32 18.84, 1.92 18.27, 1.58 17.68 C1.24 17.09, 0.94 16.46, 0.71 15.81 C0.48 15.17, 0.3 14.5, 0.18 13.83 C0.06 13.16, 0 12.47, 0 11.78 C0 11.1, 0.06 10.41, 0.18 9.74 C0.3 9.07, 0.48 8.39, 0.71 7.75 C0.94 7.11, 1.24 6.48, 1.58 5.89 C1.92 5.3, 2.32 4.73, 2.76 4.21 C3.2 3.69, 3.69 3.2, 4.21 2.76 C4.73 2.32, 5.3 1.92, 5.89 1.58 C6.48 1.24, 7.11 0.94, 7.75 0.71 C8.39 0.48, 9.07 0.3, 9.74 0.18 C10.41 0.06, 11.1 0, 11.78 0 C12.47 0, 13.16 0.06, 13.83 0.18 C14.5 0.3, 15.17 0.48, 15.81 0.71 C16.46 0.94, 17.09 1.24, 17.68 1.58 C18.27 1.92, 18.84 2.32, 19.36 2.76 C19.88 3.2, 20.37 3.69, 20.81 4.21 C21.25 4.73, 21.65 5.3, 21.99 5.89 C22.33 6.48, 22.62 7.11, 22.86 7.75 C23.09 8.39, 23.27 9.07, 23.39 9.74 C23.51 10.41, 23.54 11.44, 23.57 11.78 C23.6 12.13, 23.6 11.44, 23.57 11.78\" stroke=\"none\" stroke-width=\"0\" fill=\"#fa5252\"\u003e\u003c/path\u003e\u003cpath d=\"M23.57 11.78 C23.57 12.47, 23.51 13.16, 23.39 13.83 C23.27 14.5, 23.09 15.17, 22.86 15.81 C22.62 16.46, 22.33 17.09, 21.99 17.68 C21.65 18.27, 21.25 18.84, 20.81 19.36 C20.37 19.88, 19.88 20.37, 19.36 20.81 C18.84 21.25, 18.27 21.65, 17.68 21.99 C17.09 22.33, 16.46 22.62, 15.81 22.86 C15.17 23.09, 14.5 23.27, 13.83 23.39 C13.16 23.51, 12.47 23.57, 11.78 23.57 C11.1 23.57, 10.41 23.51, 9.74 23.39 C9.07 23.27, 8.39 23.09, 7.75 22.86 C7.11 22.62, 6.48 22.33, 5.89 21.99 C5.3 21.65, 4.73 21.25, 4.21 20.81 C3.69 20.37, 3.2 19.88, 2.76 19.36 C2.32 18.84, 1.92 18.27, 1.58 17.68 C1.24 17.09, 0.94 16.46, 0.71 15.81 C0.48 15.17, 0.3 14.5, 0.18 13.83 C0.06 13.16, 0 12.47, 0 11.78 C0 11.1, 0.06 10.41, 0.18 9.74 C0.3 9.07, 0.48 8.39, 0.71 7.75 C0.94 7.11, 1.24 6.48, 1.58 5.89 C1.92 5.3, 2.32 4.73, 2.76 4.21 C3.2 3.69, 3.69 3.2, 4.21 2.76 C4.73 2.32, 5.3 1.92, 5.89 1.58 C6.48 1.24, 7.11 0.94, 7.75 0.71 C8.39 0.48, 9.07 0.3, 9.74 0.18 C10.41 0.06, 11.1 0, 11.78 0 C12.47 0, 13.16 0.06, 13.83 0.18 C14.5 0.3, 15.17 0.48, 15.81 0.71 C16.46 0.94, 17.09 1.24, 17.68 1.58 C18.27 1.92, 18.84 2.32, 19.36 2.76 C19.88 3.2, 20.37 3.69, 20.81 4.21 C21.25 4.73, 21.65 5.3, 21.99 5.89 C22.33 6.48, 22.62 7.11, 22.86 7.75 C23.09 8.39, 23.27 9.07, 23.39 9.74 C23.51 10.41, 23.54 11.44, 23.57 11.78 C23.6 12.13, 23.6 11.44, 23.57 11.78\" stroke=\"#000000\" stroke-width=\"1\" fill=\"none\"\u003e\u003c/path\u003e\u003c/g\u003e\u003cg stroke-linecap=\"round\" transform=\"translate(84.80624071464496 31.795000603418544) rotate(359.81664177256994 11.784205635318813 11.784205635318813)\"\u003e\u003cpath d=\"M23.57 11.78 C23.57 12.47, 23.51 13.16, 23.39 13.83 C23.27 14.5, 23.09 15.17, 22.86 15.81 C22.62 16.46, 22.33 17.09, 21.99 17.68 C21.65 18.27, 21.25 18.84, 20.81 19.36 C20.37 19.88, 19.88 20.37, 19.36 20.81 C18.84 21.25, 18.27 21.65, 17.68 21.99 C17.09 22.33, 16.46 22.62, 15.81 22.86 C15.17 23.09, 14.5 23.27, 13.83 23.39 C13.16 23.51, 12.47 23.57, 11.78 23.57 C11.1 23.57, 10.41 23.51, 9.74 23.39 C9.07 23.27, 8.39 23.09, 7.75 22.86 C7.11 22.62, 6.48 22.33, 5.89 21.99 C5.3 21.65, 4.73 21.25, 4.21 20.81 C3.69 20.37, 3.2 19.88, 2.76 19.36 C2.32 18.84, 1.92 18.27, 1.58 17.68 C1.24 17.09, 0.94 16.46, 0.71 15.81 C0.48 15.17, 0.3 14.5, 0.18 13.83 C0.06 13.16, 0 12.47, 0 11.78 C0 11.1, 0.06 10.41, 0.18 9.74 C0.3 9.07, 0.48 8.39, 0.71 7.75 C0.94 7.11, 1.24 6.48, 1.58 5.89 C1.92 5.3, 2.32 4.73, 2.76 4.21 C3.2 3.69, 3.69 3.2, 4.21 2.76 C4.73 2.32, 5.3 1.92, 5.89 1.58 C6.48 1.24, 7.11 0.94, 7.75 0.71 C8.39 0.48, 9.07 0.3, 9.74 0.18 C10.41 0.06, 11.1 0, 11.78 0 C12.47 0, 13.16 0.06, 13.83 0.18 C14.5 0.3, 15.17 0.48, 15.81 0.71 C16.46 0.94, 17.09 1.24, 17.68 1.58 C18.27 1.92, 18.84 2.32, 19.36 2.76 C19.88 3.2, 20.37 3.69, 20.81 4.21 C21.25 4.73, 21.65 5.3, 21.99 5.89 C22.33 6.48, 22.62 7.11, 22.86 7.75 C23.09 8.39, 23.27 9.07, 23.39 9.74 C23.51 10.41, 23.54 11.44, 23.57 11.78 C23.6 12.13, 23.6 11.44, 23.57 11.78\" stroke=\"none\" stroke-width=\"0\" fill=\"#fab005\"\u003e\u003c/path\u003e\u003cpath d=\"M23.57 11.78 C23.57 12.47, 23.51 13.16, 23.39 13.83 C23.27 14.5, 23.09 15.17, 22.86 15.81 C22.62 16.46, 22.33 17.09, 21.99 17.68 C21.65 18.27, 21.25 18.84, 20.81 19.36 C20.37 19.88, 19.88 20.37, 19.36 20.81 C18.84 21.25, 18.27 21.65, 17.68 21.99 C17.09 22.33, 16.46 22.62, 15.81 22.86 C15.17 23.09, 14.5 23.27, 13.83 23.39 C13.16 23.51, 12.47 23.57, 11.78 23.57 C11.1 23.57, 10.41 23.51, 9.74 23.39 C9.07 23.27, 8.39 23.09, 7.75 22.86 C7.11 22.62, 6.48 22.33, 5.89 21.99 C5.3 21.65, 4.73 21.25, 4.21 20.81 C3.69 20.37, 3.2 19.88, 2.76 19.36 C2.32 18.84, 1.92 18.27, 1.58 17.68 C1.24 17.09, 0.94 16.46, 0.71 15.81 C0.48 15.17, 0.3 14.5, 0.18 13.83 C0.06 13.16, 0 12.47, 0 11.78 C0 11.1, 0.06 10.41, 0.18 9.74 C0.3 9.07, 0.48 8.39, 0.71 7.75 C0.94 7.11, 1.24 6.48, 1.58 5.89 C1.92 5.3, 2.32 4.73, 2.76 4.21 C3.2 3.69, 3.69 3.2, 4.21 2.76 C4.73 2.32, 5.3 1.92, 5.89 1.58 C6.48 1.24, 7.11 0.94, 7.75 0.71 C8.39 0.48, 9.07 0.3, 9.74 0.18 C10.41 0.06, 11.1 0, 11.78 0 C12.47 0, 13.16 0.06, 13.83 0.18 C14.5 0.3, 15.17 0.48, 15.81 0.71 C16.46 0.94, 17.09 1.24, 17.68 1.58 C18.27 1.92, 18.84 2.32, 19.36 2.76 C19.88 3.2, 20.37 3.69, 20.81 4.21 C21.25 4.73, 21.65 5.3, 21.99 5.89 C22.33 6.48, 22.62 7.11, 22.86 7.75 C23.09 8.39, 23.27 9.07, 23.39 9.74 C23.51 10.41, 23.54 11.44, 23.57 11.78 C23.6 12.13, 23.6 11.44, 23.57 11.78\" stroke=\"#000000\" stroke-width=\"1\" fill=\"none\"\u003e\u003c/path\u003e\u003c/g\u003e\u003cg stroke-linecap=\"round\" transform=\"translate(135.2927009322155 33.757170639198876) rotate(359.81664177256994 11.784205635318813 11.784205635318813)\"\u003e\u003cpath d=\"M23.57 11.78 C23.57 12.47, 23.51 13.16, 23.39 13.83 C23.27 14.5, 23.09 15.17, 22.86 15.81 C22.62 16.46, 22.33 17.09, 21.99 17.68 C21.65 18.27, 21.25 18.84, 20.81 19.36 C20.37 19.88, 19.88 20.37, 19.36 20.81 C18.84 21.25, 18.27 21.65, 17.68 21.99 C17.09 22.33, 16.46 22.62, 15.81 22.86 C15.17 23.09, 14.5 23.27, 13.83 23.39 C13.16 23.51, 12.47 23.57, 11.78 23.57 C11.1 23.57, 10.41 23.51, 9.74 23.39 C9.07 23.27, 8.39 23.09, 7.75 22.86 C7.11 22.62, 6.48 22.33, 5.89 21.99 C5.3 21.65, 4.73 21.25, 4.21 20.81 C3.69 20.37, 3.2 19.88, 2.76 19.36 C2.32 18.84, 1.92 18.27, 1.58 17.68 C1.24 17.09, 0.94 16.46, 0.71 15.81 C0.48 15.17, 0.3 14.5, 0.18 13.83 C0.06 13.16, 0 12.47, 0 11.78 C0 11.1, 0.06 10.41, 0.18 9.74 C0.3 9.07, 0.48 8.39, 0.71 7.75 C0.94 7.11, 1.24 6.48, 1.58 5.89 C1.92 5.3, 2.32 4.73, 2.76 4.21 C3.2 3.69, 3.69 3.2, 4.21 2.76 C4.73 2.32, 5.3 1.92, 5.89 1.58 C6.48 1.24, 7.11 0.94, 7.75 0.71 C8.39 0.48, 9.07 0.3, 9.74 0.18 C10.41 0.06, 11.1 0, 11.78 0 C12.47 0, 13.16 0.06, 13.83 0.18 C14.5 0.3, 15.17 0.48, 15.81 0.71 C16.46 0.94, 17.09 1.24, 17.68 1.58 C18.27 1.92, 18.84 2.32, 19.36 2.76 C19.88 3.2, 20.37 3.69, 20.81 4.21 C21.25 4.73, 21.65 5.3, 21.99 5.89 C22.33 6.48, 22.62 7.11, 22.86 7.75 C23.09 8.39, 23.27 9.07, 23.39 9.74 C23.51 10.41, 23.54 11.44, 23.57 11.78 C23.6 12.13, 23.6 11.44, 23.57 11.78\" stroke=\"none\" stroke-width=\"0\" fill=\"#40c057\"\u003e\u003c/path\u003e\u003cpath d=\"M23.57 11.78 C23.57 12.47, 23.51 13.16, 23.39 13.83 C23.27 14.5, 23.09 15.17, 22.86 15.81 C22.62 16.46, 22.33 17.09, 21.99 17.68 C21.65 18.27, 21.25 18.84, 20.81 19.36 C20.37 19.88, 19.88 20.37, 19.36 20.81 C18.84 21.25, 18.27 21.65, 17.68 21.99 C17.09 22.33, 16.46 22.62, 15.81 22.86 C15.17 23.09, 14.5 23.27, 13.83 23.39 C13.16 23.51, 12.47 23.57, 11.78 23.57 C11.1 23.57, 10.41 23.51, 9.74 23.39 C9.07 23.27, 8.39 23.09, 7.75 22.86 C7.11 22.62, 6.48 22.33, 5.89 21.99 C5.3 21.65, 4.73 21.25, 4.21 20.81 C3.69 20.37, 3.2 19.88, 2.76 19.36 C2.32 18.84, 1.92 18.27, 1.58 17.68 C1.24 17.09, 0.94 16.46, 0.71 15.81 C0.48 15.17, 0.3 14.5, 0.18 13.83 C0.06 13.16, 0 12.47, 0 11.78 C0 11.1, 0.06 10.41, 0.18 9.74 C0.3 9.07, 0.48 8.39, 0.71 7.75 C0.94 7.11, 1.24 6.48, 1.58 5.89 C1.92 5.3, 2.32 4.73, 2.76 4.21 C3.2 3.69, 3.69 3.2, 4.21 2.76 C4.73 2.32, 5.3 1.92, 5.89 1.58 C6.48 1.24, 7.11 0.94, 7.75 0.71 C8.39 0.48, 9.07 0.3, 9.74 0.18 C10.41 0.06, 11.1 0, 11.78 0 C12.47 0, 13.16 0.06, 13.83 0.18 C14.5 0.3, 15.17 0.48, 15.81 0.71 C16.46 0.94, 17.09 1.24, 17.68 1.58 C18.27 1.92, 18.84 2.32, 19.36 2.76 C19.88 3.2, 20.37 3.69, 20.81 4.21 C21.25 4.73, 21.65 5.3, 21.99 5.89 C22.33 6.48, 22.62 7.11, 22.86 7.75 C23.09 8.39, 23.27 9.07, 23.39 9.74 C23.51 10.41, 23.54 11.44, 23.57 11.78 C23.6 12.13, 23.6 11.44, 23.57 11.78\" stroke=\"#000000\" stroke-width=\"1\" fill=\"none\"\u003e\u003c/path\u003e\u003c/g\u003e\u003cg stroke-linecap=\"round\" transform=\"translate(59.20068387524731 89.05373466188496) rotate(0 267.09152149134246 161.74797108947757)\"\u003e\u003cpath d=\"M32 0 C129.07 0, 226.15 0, 502.18 0 M32 0 C127.19 0, 222.38 0, 502.18 0 M502.18 0 C523.52 0, 534.18 10.67, 534.18 32 M502.18 0 C523.52 0, 534.18 10.67, 534.18 32 M534.18 32 C534.18 110.31, 534.18 188.62, 534.18 291.5 M534.18 32 C534.18 122.55, 534.18 213.09, 534.18 291.5 M534.18 291.5 C534.18 312.83, 523.52 323.5, 502.18 323.5 M534.18 291.5 C534.18 312.83, 523.52 323.5, 502.18 323.5 M502.18 323.5 C402.29 323.5, 302.4 323.5, 32 323.5 M502.18 323.5 C402.71 323.5, 303.23 323.5, 32 323.5 M32 323.5 C10.67 323.5, 0 312.83, 0 291.5 M32 323.5 C10.67 323.5, 0 312.83, 0 291.5 M0 291.5 C0 195.86, 0 100.23, 0 32 M0 291.5 C0 233.9, 0 176.3, 0 32 M0 32 C0 10.67, 10.67 0, 32 0 M0 32 C0 10.67, 10.67 0, 32 0\" stroke=\"#1e1e1e\" stroke-width=\"1\" fill=\"none\"\u003e\u003c/path\u003e\u003c/g\u003e\u003cg stroke-linecap=\"round\" transform=\"translate(74.54600420937714 100.25167112192571) rotate(0 30.068533087146477 148.47634269239222)\"\u003e\u003cpath d=\"M15.03 0 C23.52 0, 32.01 0, 45.1 0 M45.1 0 C55.13 0, 60.14 5.01, 60.14 15.03 M60.14 15.03 C60.14 117.48, 60.14 219.93, 60.14 281.92 M60.14 281.92 C60.14 291.94, 55.13 296.95, 45.1 296.95 M45.1 296.95 C33.2 296.95, 21.3 296.95, 15.03 296.95 M15.03 296.95 C5.01 296.95, 0 291.94, 0 281.92 M0 281.92 C0 219.22, 0 156.51, 0 15.03 M0 15.03 C0 5.01, 5.01 0, 15.03 0\" stroke=\"#1e1e1e\" stroke-width=\"1.5\" fill=\"none\" stroke-dasharray=\"8 9\"\u003e\u003c/path\u003e\u003c/g\u003e\u003cg stroke-linecap=\"round\" transform=\"translate(144.53310708463192 100.25167112192571) rotate(0 184.14384400955907 147.85423511127885)\"\u003e\u003cpath d=\"M32 0 C131.19 0, 230.39 0, 336.29 0 M336.29 0 C357.62 0, 368.29 10.67, 368.29 32 M368.29 32 C368.29 86.42, 368.29 140.83, 368.29 263.71 M368.29 263.71 C368.29 285.04, 357.62 295.71, 336.29 295.71 M336.29 295.71 C248.5 295.71, 160.71 295.71, 32 295.71 M32 295.71 C10.67 295.71, 0 285.04, 0 263.71 M0 263.71 C0 214.52, 0 165.32, 0 32 M0 32 C0 10.67, 10.67 0, 32 0\" stroke=\"#1e1e1e\" stroke-width=\"1.5\" fill=\"none\" stroke-dasharray=\"8 9\"\u003e\u003c/path\u003e\u003c/g\u003e\u003cg stroke-linecap=\"round\" transform=\"translate(522.6708318047117 99.94061733136903) rotate(0 30.068533087146477 148.47634269239222)\"\u003e\u003cpath d=\"M15.03 0 C22.97 0, 30.91 0, 45.1 0 M45.1 0 C55.13 0, 60.14 5.01, 60.14 15.03 M60.14 15.03 C60.14 118.47, 60.14 221.9, 60.14 281.92 M60.14 281.92 C60.14 291.94, 55.13 296.95, 45.1 296.95 M45.1 296.95 C33.12 296.95, 21.14 296.95, 15.03 296.95 M15.03 296.95 C5.01 296.95, 0 291.94, 0 281.92 M0 281.92 C0 218.03, 0 154.15, 0 15.03 M0 15.03 C0 5.01, 5.01 0, 15.03 0\" stroke=\"#1e1e1e\" stroke-width=\"1.5\" fill=\"none\" stroke-dasharray=\"8 9\"\u003e\u003c/path\u003e\u003c/g\u003e\u003c/svg\u003e\n",
      "date_published": "2023-11-15T08:52:44Z",
      "date_modified": "2023-11-15T08:52:44Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/there-is-no-game-wrong-dimension/",
      "url": "https://go.waylonwalker.com/steam/there-is-no-game-wrong-dimension/",
      "title": "There Is No Game: Wrong Dimension",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/1240210/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/1240210/library_600x900.jpg\" alt=\"There Is No Game: Wrong Dimension box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/1240210/header.jpg\u0026#39;\"/ data-glightbox=\"description: There Is No Game: Wrong Dimension box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eThere Is No Game: Wrong Dimension\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 11.76%\"\u003e\n        11.76%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e4/34 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e3.4h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2023-10-14\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (4)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/b666d65c3cadf078eb10a2e571b913e4d72d2c08.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/b666d65c3cadf078eb10a2e571b913e4d72d2c08.jpg\" alt=\"There\u0026#39;s a bug in the soup\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: There\u0026#39;s a bug in the soup\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThere\u0026#39;s a bug in the soup\u003c/strong\u003e\u003cbr/\u003e\n    Finish chapter 1.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 13, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/be01d46b767180b6f4de08ea04e49fbdd958fcce.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/be01d46b767180b6f4de08ea04e49fbdd958fcce.jpg\" alt=\"Administrator\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Administrator\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAdministrator\u003c/strong\u003e\u003cbr/\u003e\n    Get past the computer security and gain the incredible power... to tell time.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 13, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/9f9f835691f6e0ae5d89c8bf3290d25a8e61ee56.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/9f9f835691f6e0ae5d89c8bf3290d25a8e61ee56.jpg\" alt=\"Have you no shame?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Have you no shame?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHave you no shame?\u003c/strong\u003e\u003cbr/\u003e\n    Find the naughty pictures.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 13, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/b3d701ca6d74f92ab1c287005ada6ba708d6e574.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/b3d701ca6d74f92ab1c287005ada6ba708d6e574.jpg\" alt=\"Private Detective\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Private Detective\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePrivate Detective\u003c/strong\u003e\u003cbr/\u003e\n    Go through the trash.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: October 13, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (30)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/8aeb081db9a0b4e9cfbdb2bfc972344b07fee900.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/8aeb081db9a0b4e9cfbdb2bfc972344b07fee900.jpg\" alt=\"Roshambo Addict\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Roshambo Addict\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRoshambo Addict\u003c/strong\u003e\u003cbr/\u003e\n    Become the world\u0026#39;s worst \n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/f3c359291daf96759b3e28965df878b94bdd5727.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/f3c359291daf96759b3e28965df878b94bdd5727.jpg\" alt=\"Conspiracy theorist\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Conspiracy theorist\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eConspiracy theorist\u003c/strong\u003e\u003cbr/\u003e\n    Read all the messages that reveal the real truth!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/18ce5c40b439de39bdcca993108bb37901d3c131.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/18ce5c40b439de39bdcca993108bb37901d3c131.jpg\" alt=\"A soundly led quest\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A soundly led quest\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA soundly led quest\u003c/strong\u003e\u003cbr/\u003e\n    Finish chapter 2.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/2c7d5676826ed88ad55b7ac09e9befa3e727af40.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/2c7d5676826ed88ad55b7ac09e9befa3e727af40.jpg\" alt=\"This is not a Beat\u0026#39;em up\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: This is not a Beat\u0026#39;em up\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThis is not a Beat\u0026#39;em up\u003c/strong\u003e\u003cbr/\u003e\n    Beat up an innocent bystander.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/ea8631cc3983a82325c82714f83d4a7cdc30b6d9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/ea8631cc3983a82325c82714f83d4a7cdc30b6d9.jpg\" alt=\"Spam\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Spam\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpam\u003c/strong\u003e\u003cbr/\u003e\n    Harass Sherlock Holmes over the Telettrophone.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/deca59c0d5f786aa565ee672d80f945f88c39815.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/deca59c0d5f786aa565ee672d80f945f88c39815.jpg\" alt=\"Wrong Dimension\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Wrong Dimension\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWrong Dimension\u003c/strong\u003e\u003cbr/\u003e\n    Call \u0026#34;you know who\u0026#34; on the Telettrophone.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/fdbb71e9185f56041ae9f03ffed262fce3912a2d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/fdbb71e9185f56041ae9f03ffed262fce3912a2d.jpg\" alt=\"Blue moon\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Blue moon\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlue moon\u003c/strong\u003e\u003cbr/\u003e\n    Get a blue moon... or almost.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/50840350004d737f149f7bb5a18e39ad2c83d66f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/50840350004d737f149f7bb5a18e39ad2c83d66f.jpg\" alt=\"Princess saver\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Princess saver\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePrincess saver\u003c/strong\u003e\u003cbr/\u003e\n    Finish chapter 3.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/a5292ff8f0d366ccc89b6c6c61309ca1ddb3ac97.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/a5292ff8f0d366ccc89b6c6c61309ca1ddb3ac97.jpg\" alt=\"Life sentence\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Life sentence\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLife sentence\u003c/strong\u003e\u003cbr/\u003e\n    Voluntarily drown the Hero.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/14781ceeb851526f0c51b219c2b1e88ce7daead1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/14781ceeb851526f0c51b219c2b1e88ce7daead1.jpg\" alt=\"Honey, I blew up the Hero\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Honey, I blew up the Hero\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHoney, I blew up the Hero\u003c/strong\u003e\u003cbr/\u003e\n    In the house, turn the Hero into a giant without using the monocle.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/2e831dcae5491183aa397475f1d19f735c87dd57.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/2e831dcae5491183aa397475f1d19f735c87dd57.jpg\" alt=\"Raiders of the lost game\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Raiders of the lost game\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRaiders of the lost game\u003c/strong\u003e\u003cbr/\u003e\n    \u0026#34;Snakes...Why did it have to be snakes?\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/1b8e68780469e1eaeaef3a926cfd9cb1fb9dd448.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/1b8e68780469e1eaeaef3a926cfd9cb1fb9dd448.jpg\" alt=\"Random luck!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Random luck!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRandom luck!\u003c/strong\u003e\u003cbr/\u003e\n    In the dimensional temple, find the combination without reading the runes.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/e067bf257845d5dcdc06d1ba6770a9d90dc7b477.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/e067bf257845d5dcdc06d1ba6770a9d90dc7b477.jpg\" alt=\"The end of the ordeal\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The end of the ordeal\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe end of the ordeal\u003c/strong\u003e\u003cbr/\u003e\n    Finish chapter 4.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/8463dc80a2a8c383a3b8d7429a1d1daacff67bce.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/8463dc80a2a8c383a3b8d7429a1d1daacff67bce.jpg\" alt=\"Serial Clicker\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Serial Clicker\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSerial Clicker\u003c/strong\u003e\u003cbr/\u003e\n    Click, click, click. More clicks. Even more clicks!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/0eb1c9a9992b95d3cb9a89640a401a90b619d198.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/0eb1c9a9992b95d3cb9a89640a401a90b619d198.jpg\" alt=\"Follow the guide!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Follow the guide!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFollow the guide!\u003c/strong\u003e\u003cbr/\u003e\n    Find the squirrel hiding in the Verdant Landscape.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/21b2d325b3f17b7b323ee706bdc4e64ac329c9d0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/21b2d325b3f17b7b323ee706bdc4e64ac329c9d0.jpg\" alt=\"To infinity and beyond!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: To infinity and beyond!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTo infinity and beyond!\u003c/strong\u003e\u003cbr/\u003e\n    Make some 600 lb armor fly.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/f66c2267569cda0ea55bafbc204fcff08846a128.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/f66c2267569cda0ea55bafbc204fcff08846a128.jpg\" alt=\"One Punch Man\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: One Punch Man\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOne Punch Man\u003c/strong\u003e\u003cbr/\u003e\n    Get rid of a super bad guy with a single hit.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/876293e709491111a1e415de11b8bc61b5568cff.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/876293e709491111a1e415de11b8bc61b5568cff.jpg\" alt=\"It\u0026#39;s not over yet\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: It\u0026#39;s not over yet\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt\u0026#39;s not over yet\u003c/strong\u003e\u003cbr/\u003e\n    Finish chapter 5.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/477d08709c0ec885d01df8a8eee98ec429a8806d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/477d08709c0ec885d01df8a8eee98ec429a8806d.jpg\" alt=\"A friend of the animals... or not.\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A friend of the animals... or not.\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA friend of the animals... or not.\u003c/strong\u003e\u003cbr/\u003e\n    Demonstrate your love for animals using a bucket and some water.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/ed598b37cc13aa69a7ba776bb2507e4de5f68dff.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/ed598b37cc13aa69a7ba776bb2507e4de5f68dff.jpg\" alt=\"Serge Karamasov\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Serge Karamasov\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSerge Karamasov\u003c/strong\u003e\u003cbr/\u003e\n    Jump over a chair.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/a6b9a9911656108630df0087208e892dfa4abd8c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/a6b9a9911656108630df0087208e892dfa4abd8c.jpg\" alt=\"Carmack junior\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Carmack junior\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCarmack junior\u003c/strong\u003e\u003cbr/\u003e\n    Enter GiGi\u0026#39;s code without making a single mistake.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/1d99a8e40dc3d3ef5dcac9f63c797330a8e11d0a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/1d99a8e40dc3d3ef5dcac9f63c797330a8e11d0a.jpg\" alt=\"Headshot\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Headshot\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHeadshot\u003c/strong\u003e\u003cbr/\u003e\n    Smash a skull in this happy, family-friendly game.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/c8e8cc66239ef781495dbce9a858864001aea6dc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/c8e8cc66239ef781495dbce9a858864001aea6dc.jpg\" alt=\"Home at last\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Home at last\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHome at last\u003c/strong\u003e\u003cbr/\u003e\n    Finish chapter 6.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/c4fd35a2e5552b750e750206d12625eace14eea8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/c4fd35a2e5552b750e750206d12625eace14eea8.jpg\" alt=\"Who you gonna call?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Who you gonna call?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWho you gonna call?\u003c/strong\u003e\u003cbr/\u003e\n    Use a cell phone to call someone with magical powers.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/1ca66dd580a7bb4416307394bb181a4613619c5d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/1ca66dd580a7bb4416307394bb181a4613619c5d.jpg\" alt=\"Better than Mr. Radar\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Better than Mr. Radar\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBetter than Mr. Radar\u003c/strong\u003e\u003cbr/\u003e\n    You\u0026#39;ve got to be a Spaceballs fan to find the solution.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/fd1318acd794f69aeab9de53d72c6f9cfd48d7c0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/fd1318acd794f69aeab9de53d72c6f9cfd48d7c0.jpg\" alt=\"Skeet shoot\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Skeet shoot\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSkeet shoot\u003c/strong\u003e\u003cbr/\u003e\n    Destroy all the validation signs.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/231a771291c1530ccd3adeba7fc800424f137d5b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/231a771291c1530ccd3adeba7fc800424f137d5b.jpg\" alt=\"Outside the box\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Outside the box\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOutside the box\u003c/strong\u003e\u003cbr/\u003e\n    Find the key to the underwater door.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/4d2fc81efd2db1ac588f8cda43fafaddba934db5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/4d2fc81efd2db1ac588f8cda43fafaddba934db5.jpg\" alt=\"I want to PLAY!!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: I want to PLAY!!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI want to PLAY!!\u003c/strong\u003e\u003cbr/\u003e\n    Make the wrong decision and risk the complete annihilation of the intergalactic universe.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/357fd9cab9a6c774b03046957cc70ee1b5ad171c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/357fd9cab9a6c774b03046957cc70ee1b5ad171c.jpg\" alt=\"Future of the planet, and all that...\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Future of the planet, and all that...\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFuture of the planet, and all that...\u003c/strong\u003e\u003cbr/\u003e\n    Make the right decision and go back to bed.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/a0ecfcebdb1da87a614886cf3128df83ad6858fd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/a0ecfcebdb1da87a614886cf3128df83ad6858fd.jpg\" alt=\"It\u0026#39;s a trap!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: It\u0026#39;s a trap!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt\u0026#39;s a trap!\u003c/strong\u003e\u003cbr/\u003e\n    Blindly follow the arrows.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/1240210/library_600x900.jpg\" alt=\"There Is No Game: Wrong Dimension box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/1240210/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eThere Is No Game: Wrong Dimension\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 11.76%\"\u003e\n        11.76%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e4/34 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e3.4h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2023-10-14\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (4)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/b666d65c3cadf078eb10a2e571b913e4d72d2c08.jpg\" alt=\"There's a bug in the soup\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThere's a bug in the soup\u003c/strong\u003e\u003cbr\u003e\n    Finish chapter 1.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 13, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/be01d46b767180b6f4de08ea04e49fbdd958fcce.jpg\" alt=\"Administrator\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAdministrator\u003c/strong\u003e\u003cbr\u003e\n    Get past the computer security and gain the incredible power... to tell time.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 13, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/9f9f835691f6e0ae5d89c8bf3290d25a8e61ee56.jpg\" alt=\"Have you no shame?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHave you no shame?\u003c/strong\u003e\u003cbr\u003e\n    Find the naughty pictures.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 13, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/b3d701ca6d74f92ab1c287005ada6ba708d6e574.jpg\" alt=\"Private Detective\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePrivate Detective\u003c/strong\u003e\u003cbr\u003e\n    Go through the trash.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: October 13, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (30)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/8aeb081db9a0b4e9cfbdb2bfc972344b07fee900.jpg\" alt=\"Roshambo Addict\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRoshambo Addict\u003c/strong\u003e\u003cbr\u003e\n    Become the world's worst \n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/f3c359291daf96759b3e28965df878b94bdd5727.jpg\" alt=\"Conspiracy theorist\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eConspiracy theorist\u003c/strong\u003e\u003cbr\u003e\n    Read all the messages that reveal the real truth!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/18ce5c40b439de39bdcca993108bb37901d3c131.jpg\" alt=\"A soundly led quest\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA soundly led quest\u003c/strong\u003e\u003cbr\u003e\n    Finish chapter 2.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/2c7d5676826ed88ad55b7ac09e9befa3e727af40.jpg\" alt=\"This is not a Beat'em up\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThis is not a Beat'em up\u003c/strong\u003e\u003cbr\u003e\n    Beat up an innocent bystander.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/ea8631cc3983a82325c82714f83d4a7cdc30b6d9.jpg\" alt=\"Spam\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpam\u003c/strong\u003e\u003cbr\u003e\n    Harass Sherlock Holmes over the Telettrophone.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/deca59c0d5f786aa565ee672d80f945f88c39815.jpg\" alt=\"Wrong Dimension\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWrong Dimension\u003c/strong\u003e\u003cbr\u003e\n    Call \"you know who\" on the Telettrophone.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/fdbb71e9185f56041ae9f03ffed262fce3912a2d.jpg\" alt=\"Blue moon\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlue moon\u003c/strong\u003e\u003cbr\u003e\n    Get a blue moon... or almost.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/50840350004d737f149f7bb5a18e39ad2c83d66f.jpg\" alt=\"Princess saver\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePrincess saver\u003c/strong\u003e\u003cbr\u003e\n    Finish chapter 3.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/a5292ff8f0d366ccc89b6c6c61309ca1ddb3ac97.jpg\" alt=\"Life sentence\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLife sentence\u003c/strong\u003e\u003cbr\u003e\n    Voluntarily drown the Hero.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/14781ceeb851526f0c51b219c2b1e88ce7daead1.jpg\" alt=\"Honey, I blew up the Hero\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHoney, I blew up the Hero\u003c/strong\u003e\u003cbr\u003e\n    In the house, turn the Hero into a giant without using the monocle.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/2e831dcae5491183aa397475f1d19f735c87dd57.jpg\" alt=\"Raiders of the lost game\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRaiders of the lost game\u003c/strong\u003e\u003cbr\u003e\n    \"Snakes...Why did it have to be snakes?\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/1b8e68780469e1eaeaef3a926cfd9cb1fb9dd448.jpg\" alt=\"Random luck!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRandom luck!\u003c/strong\u003e\u003cbr\u003e\n    In the dimensional temple, find the combination without reading the runes.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/e067bf257845d5dcdc06d1ba6770a9d90dc7b477.jpg\" alt=\"The end of the ordeal\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe end of the ordeal\u003c/strong\u003e\u003cbr\u003e\n    Finish chapter 4.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/8463dc80a2a8c383a3b8d7429a1d1daacff67bce.jpg\" alt=\"Serial Clicker\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSerial Clicker\u003c/strong\u003e\u003cbr\u003e\n    Click, click, click. More clicks. Even more clicks!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/0eb1c9a9992b95d3cb9a89640a401a90b619d198.jpg\" alt=\"Follow the guide!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFollow the guide!\u003c/strong\u003e\u003cbr\u003e\n    Find the squirrel hiding in the Verdant Landscape.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/21b2d325b3f17b7b323ee706bdc4e64ac329c9d0.jpg\" alt=\"To infinity and beyond!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTo infinity and beyond!\u003c/strong\u003e\u003cbr\u003e\n    Make some 600 lb armor fly.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/f66c2267569cda0ea55bafbc204fcff08846a128.jpg\" alt=\"One Punch Man\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOne Punch Man\u003c/strong\u003e\u003cbr\u003e\n    Get rid of a super bad guy with a single hit.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/876293e709491111a1e415de11b8bc61b5568cff.jpg\" alt=\"It's not over yet\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt's not over yet\u003c/strong\u003e\u003cbr\u003e\n    Finish chapter 5.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/477d08709c0ec885d01df8a8eee98ec429a8806d.jpg\" alt=\"A friend of the animals... or not.\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA friend of the animals... or not.\u003c/strong\u003e\u003cbr\u003e\n    Demonstrate your love for animals using a bucket and some water.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/ed598b37cc13aa69a7ba776bb2507e4de5f68dff.jpg\" alt=\"Serge Karamasov\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSerge Karamasov\u003c/strong\u003e\u003cbr\u003e\n    Jump over a chair.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/a6b9a9911656108630df0087208e892dfa4abd8c.jpg\" alt=\"Carmack junior\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCarmack junior\u003c/strong\u003e\u003cbr\u003e\n    Enter GiGi's code without making a single mistake.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/1d99a8e40dc3d3ef5dcac9f63c797330a8e11d0a.jpg\" alt=\"Headshot\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHeadshot\u003c/strong\u003e\u003cbr\u003e\n    Smash a skull in this happy, family-friendly game.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/c8e8cc66239ef781495dbce9a858864001aea6dc.jpg\" alt=\"Home at last\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHome at last\u003c/strong\u003e\u003cbr\u003e\n    Finish chapter 6.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/c4fd35a2e5552b750e750206d12625eace14eea8.jpg\" alt=\"Who you gonna call?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWho you gonna call?\u003c/strong\u003e\u003cbr\u003e\n    Use a cell phone to call someone with magical powers.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/1ca66dd580a7bb4416307394bb181a4613619c5d.jpg\" alt=\"Better than Mr. Radar\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBetter than Mr. Radar\u003c/strong\u003e\u003cbr\u003e\n    You've got to be a Spaceballs fan to find the solution.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/fd1318acd794f69aeab9de53d72c6f9cfd48d7c0.jpg\" alt=\"Skeet shoot\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSkeet shoot\u003c/strong\u003e\u003cbr\u003e\n    Destroy all the validation signs.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/231a771291c1530ccd3adeba7fc800424f137d5b.jpg\" alt=\"Outside the box\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOutside the box\u003c/strong\u003e\u003cbr\u003e\n    Find the key to the underwater door.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/4d2fc81efd2db1ac588f8cda43fafaddba934db5.jpg\" alt=\"I want to PLAY!!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI want to PLAY!!\u003c/strong\u003e\u003cbr\u003e\n    Make the wrong decision and risk the complete annihilation of the intergalactic universe.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/357fd9cab9a6c774b03046957cc70ee1b5ad171c.jpg\" alt=\"Future of the planet, and all that...\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFuture of the planet, and all that...\u003c/strong\u003e\u003cbr\u003e\n    Make the right decision and go back to bed.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1240210/a0ecfcebdb1da87a614886cf3128df83ad6858fd.jpg\" alt=\"It's a trap!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt's a trap!\u003c/strong\u003e\u003cbr\u003e\n    Blindly follow the arrows.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for There Is No Game: Wrong Dimension - 11.76% complete with 4/34 achievements unlocked.",
      "date_published": "2023-10-14T00:00:00Z",
      "date_modified": "2023-10-14T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "there-is-no-game-wrong-dimension"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/core-keeper/",
      "url": "https://go.waylonwalker.com/steam/core-keeper/",
      "title": "Core Keeper",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/1621690/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/1621690/library_600x900.jpg\" alt=\"Core Keeper box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/1621690/header.jpg\u0026#39;\"/ data-glightbox=\"description: Core Keeper box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eCore Keeper\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 0.0%\"\u003e\n        0.0%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e0/51 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e13.4h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2023-09-14\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (51)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/7dd3776970e0fab4b5f320a215bea408422d5d3b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/7dd3776970e0fab4b5f320a215bea408422d5d3b.jpg\" alt=\"A Slimey Encounter\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Slimey Encounter\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Slimey Encounter\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/c474eab2b0cf0f9cb67af655bdc387d2dc141e63.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/c474eab2b0cf0f9cb67af655bdc387d2dc141e63.jpg\" alt=\"Bugging Out\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bugging Out\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBugging Out\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/da3e09b8b16b542673a939aff7575ca1287d26a7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/da3e09b8b16b542673a939aff7575ca1287d26a7.jpg\" alt=\"Watch Your Step\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Watch Your Step\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWatch Your Step\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/9c25bb7e2f6e29c85c83252c1e372d60814e8f37.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/9c25bb7e2f6e29c85c83252c1e372d60814e8f37.jpg\" alt=\"From the Skies!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: From the Skies!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFrom the Skies!\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/216050bf7245d500d5231baf7fc970a26a5f400f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/216050bf7245d500d5231baf7fc970a26a5f400f.jpg\" alt=\"You\u0026#39;re a Wizard\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: You\u0026#39;re a Wizard\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou\u0026#39;re a Wizard\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/7dd3776970e0fab4b5f320a215bea408422d5d3b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/7dd3776970e0fab4b5f320a215bea408422d5d3b.jpg\" alt=\"Toxic Personality\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Toxic Personality\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eToxic Personality\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/9b6481b447453d5b6dfce7be9b4cc53622897c3e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/9b6481b447453d5b6dfce7be9b4cc53622897c3e.jpg\" alt=\"From the Depths!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: From the Depths!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFrom the Depths!\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/7dd3776970e0fab4b5f320a215bea408422d5d3b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/7dd3776970e0fab4b5f320a215bea408422d5d3b.jpg\" alt=\"Slippery When Wet\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Slippery When Wet\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSlippery When Wet\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/e73f19e6a10b824ba78e7f909b4430bde84b9ff3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/e73f19e6a10b824ba78e7f909b4430bde84b9ff3.jpg\" alt=\"Just Deserts\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Just Deserts\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJust Deserts\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/7dd3776970e0fab4b5f320a215bea408422d5d3b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/7dd3776970e0fab4b5f320a215bea408422d5d3b.jpg\" alt=\"Burning Through\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Burning Through\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBurning Through\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/c90f92d1b544e0b5abaa44b9227533095804e4aa.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/c90f92d1b544e0b5abaa44b9227533095804e4aa.jpg\" alt=\"Slippery Shinobi\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Slippery Shinobi\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSlippery Shinobi\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/ee953b41859e526d1a025534f814047995e1cbef.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/ee953b41859e526d1a025534f814047995e1cbef.jpg\" alt=\"Diggy Diggy Hole\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Diggy Diggy Hole\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDiggy Diggy Hole\u003c/strong\u003e\u003cbr/\u003e\n    Gained 100 skill points in mining\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/2e5fd8751b842ca798cebe2fc5bf4820d5b2fbd6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/2e5fd8751b842ca798cebe2fc5bf4820d5b2fbd6.jpg\" alt=\"Cheese it!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cheese it!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCheese it!\u003c/strong\u003e\u003cbr/\u003e\n    Gained 100 skill points in cooking\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/eb086b77a5959c6b02b1d5a78c70122800474d40.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/eb086b77a5959c6b02b1d5a78c70122800474d40.jpg\" alt=\"Completely Hooked\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Completely Hooked\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompletely Hooked\u003c/strong\u003e\u003cbr/\u003e\n    Gained 100 skill points in fishing\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/e75a067623924a42818d9f91e57cd38c836a3aaf.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/e75a067623924a42818d9f91e57cd38c836a3aaf.jpg\" alt=\"Nature Nurturer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Nature Nurturer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNature Nurturer\u003c/strong\u003e\u003cbr/\u003e\n    Gained 100 skill points in gardening\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/0d4b33abc7493932fb023dabb4c0e86598cd9c47.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/0d4b33abc7493932fb023dabb4c0e86598cd9c47.jpg\" alt=\"...Sting like a bee\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: ...Sting like a bee\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e...Sting like a bee\u003c/strong\u003e\u003cbr/\u003e\n    Gained 100 skill points in melee\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/0d1fdfdfd97754c6666b8c7c06ca139454b5deda.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/0d1fdfdfd97754c6666b8c7c06ca139454b5deda.jpg\" alt=\"Robin Hood\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Robin Hood\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRobin Hood\u003c/strong\u003e\u003cbr/\u003e\n    Gained 100 skill points in range\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/c87b6e2150418a31f9fde5dbe5862f8b458d445a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/c87b6e2150418a31f9fde5dbe5862f8b458d445a.jpg\" alt=\"Health Conscious\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Health Conscious\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHealth Conscious\u003c/strong\u003e\u003cbr/\u003e\n    Gained 100 skill points in vitality\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/85c114c11a77217df13a2c54fee0b85e3b9afcf4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/85c114c11a77217df13a2c54fee0b85e3b9afcf4.jpg\" alt=\"Float like a butterfly...\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Float like a butterfly...\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFloat like a butterfly...\u003c/strong\u003e\u003cbr/\u003e\n    Gained 100 skill points in running\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/4ddeb572b93bd49e869cce25b57e53c936e3628d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/4ddeb572b93bd49e869cce25b57e53c936e3628d.jpg\" alt=\"Crafty Explorer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Crafty Explorer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCrafty Explorer\u003c/strong\u003e\u003cbr/\u003e\n    Gained 100 skill points in crafting\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/d1da7cae938ecd032a39df792cd69ee868ff569d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/d1da7cae938ecd032a39df792cd69ee868ff569d.jpg\" alt=\"The Heart of the Cards\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Heart of the Cards\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Heart of the Cards\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/f5b8155104a7029353ae48c4f5d22aa7b296716c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/f5b8155104a7029353ae48c4f5d22aa7b296716c.jpg\" alt=\"The Rune Song\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Rune Song\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Rune Song\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/001a2811bbfb813e44254a922bdfc92a785cd354.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/001a2811bbfb813e44254a922bdfc92a785cd354.jpg\" alt=\"The Phantom Spark\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Phantom Spark\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Phantom Spark\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/8593d490c99ed10c4a52ed9ac2c0a877350f07a0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/8593d490c99ed10c4a52ed9ac2c0a877350f07a0.jpg\" alt=\"The Soul Seeker\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Soul Seeker\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Soul Seeker\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/debc4e446a4dac57a97f3af422350d894c4de426.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/debc4e446a4dac57a97f3af422350d894c4de426.jpg\" alt=\"Gossip Group\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Gossip Group\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGossip Group\u003c/strong\u003e\u003cbr/\u003e\n    Talked to a Big Larva\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/82b53278004bb6b3d03eb8890de75e35a383c53d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/82b53278004bb6b3d03eb8890de75e35a383c53d.jpg\" alt=\"Legendary Fossil\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Legendary Fossil\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLegendary Fossil\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/cdb057bdd14927fe985077c36cd7073a3e787939.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/cdb057bdd14927fe985077c36cd7073a3e787939.jpg\" alt=\"In a Rush\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: In a Rush\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIn a Rush\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/edec019c9e652859dffbafff1c4d302a40cc68f2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/edec019c9e652859dffbafff1c4d302a40cc68f2.jpg\" alt=\"Certified Chef\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Certified Chef\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCertified Chef\u003c/strong\u003e\u003cbr/\u003e\n    Discovered 100 recipes in the cook book\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/53b7eb0241ebeb1657bcef13b736aebfab51152a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/53b7eb0241ebeb1657bcef13b736aebfab51152a.jpg\" alt=\"Farmer Midas\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Farmer Midas\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFarmer Midas\u003c/strong\u003e\u003cbr/\u003e\n    Harvested a golden plant\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/066e932734fff8f9ac642c142b332fe7994c645b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/066e932734fff8f9ac642c142b332fe7994c645b.jpg\" alt=\"A Throne Fit for a King\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Throne Fit for a King\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Throne Fit for a King\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/72023a2c2f7a586265101958425475bc568445ae.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/72023a2c2f7a586265101958425475bc568445ae.jpg\" alt=\"Rock and Stone!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Rock and Stone!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRock and Stone!\u003c/strong\u003e\u003cbr/\u003e\n    Equipped the Ring of Rock and Ring of Stone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/60d640701e78a9c816ed87a0cdac3b2b6c1e56ef.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/60d640701e78a9c816ed87a0cdac3b2b6c1e56ef.jpg\" alt=\"Impersonator Syndrome\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Impersonator Syndrome\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eImpersonator Syndrome\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/f396f09d20816a9cc7c37717a91b6e4fdfba0a82.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/f396f09d20816a9cc7c37717a91b6e4fdfba0a82.jpg\" alt=\"5 Centimeters Per Second\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: 5 Centimeters Per Second\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e5 Centimeters Per Second\u003c/strong\u003e\u003cbr/\u003e\n    Planted 10 Cherry Trees\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/820c20ae71ae1f9c3bfded3ae4b198a4c9235dde.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/820c20ae71ae1f9c3bfded3ae4b198a4c9235dde.jpg\" alt=\"A Strange Song\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Strange Song\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Strange Song\u003c/strong\u003e\u003cbr/\u003e\n    Play the Tune of Tempest\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/9fee0718e7841126522cd00e51e7b25ee1b01734.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/9fee0718e7841126522cd00e51e7b25ee1b01734.jpg\" alt=\"Your Very First\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Your Very First\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYour Very First\u003c/strong\u003e\u003cbr/\u003e\n    Hatched your first pet from an egg\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/15360c23c89a5efdc8b83f237a5ffc0ae0a79eca.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/15360c23c89a5efdc8b83f237a5ffc0ae0a79eca.jpg\" alt=\"Thalassophobia\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Thalassophobia\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThalassophobia\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/85ef9629c5c328fbe5886a97e6160191a3141fdb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/85ef9629c5c328fbe5886a97e6160191a3141fdb.jpg\" alt=\"I want ’em all!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: I want ’em all!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI want ’em all!\u003c/strong\u003e\u003cbr/\u003e\n    Stored all color variations of one pet type in a chest\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/1d6d92a20a37ed1c1c7ba207b7b6f3c50bac1897.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/1d6d92a20a37ed1c1c7ba207b7b6f3c50bac1897.jpg\" alt=\"A Good Life\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Good Life\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Good Life\u003c/strong\u003e\u003cbr/\u003e\n    Fed cattle\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/d881646878d1012a32fc60d3b34f672d13278902.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/d881646878d1012a32fc60d3b34f672d13278902.jpg\" alt=\"Pet Prodigy\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Pet Prodigy\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePet Prodigy\u003c/strong\u003e\u003cbr/\u003e\n    Reached max level on a pet\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/be34eafb0b6da835ae4bee889119e4a357805545.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/be34eafb0b6da835ae4bee889119e4a357805545.jpg\" alt=\"A Wizard Is Never Late\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Wizard Is Never Late\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Wizard Is Never Late\u003c/strong\u003e\u003cbr/\u003e\n    Gained 100 skill points in magic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/0fddc09a27f26219b1f1085f0539d50d40d03142.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/0fddc09a27f26219b1f1085f0539d50d40d03142.jpg\" alt=\"Stay Away From The Summoner!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Stay Away From The Summoner!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStay Away From The Summoner!\u003c/strong\u003e\u003cbr/\u003e\n    Gained 100 skill points in summoning\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/44c8423e99ccb32d99fda118b98e6717ce38244e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/44c8423e99ccb32d99fda118b98e6717ce38244e.jpg\" alt=\"Song of the Woods\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Song of the Woods\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSong of the Woods\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/01377bf7504480336a3546770f42a4eecd97ab65.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/01377bf7504480336a3546770f42a4eecd97ab65.jpg\" alt=\"Howl of the Sea\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Howl of the Sea\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHowl of the Sea\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/8d26d0e325c2544d7953b00c4f81021ad74e2f55.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/8d26d0e325c2544d7953b00c4f81021ad74e2f55.jpg\" alt=\"Roar of the Flames\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Roar of the Flames\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRoar of the Flames\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/8ad832161291acfef9c3649ba71e9b08e5ad01d3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/8ad832161291acfef9c3649ba71e9b08e5ad01d3.jpg\" alt=\"Visitor From A Dying World\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Visitor From A Dying World\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVisitor From A Dying World\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/5f912a887e75fae6f34942894682647454f5f094.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/5f912a887e75fae6f34942894682647454f5f094.jpg\" alt=\"Cambrian Behemoth\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cambrian Behemoth\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCambrian Behemoth\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/947a0227e3b3dbe3875e4c5453da209968d7a263.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/947a0227e3b3dbe3875e4c5453da209968d7a263.jpg\" alt=\"Legion Commander\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Legion Commander\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLegion Commander\u003c/strong\u003e\u003cbr/\u003e\n    Had 8 or more active minions\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/fed86377cbccdbb79df828adf34b460fc392c81d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/fed86377cbccdbb79df828adf34b460fc392c81d.jpg\" alt=\"Wielder of Legends\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Wielder of Legends\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWielder of Legends\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/f84a3252acb4508a4ae389de4ccd0fbe0644677a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/f84a3252acb4508a4ae389de4ccd0fbe0644677a.jpg\" alt=\"Beam Me Up\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Beam Me Up\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeam Me Up\u003c/strong\u003e\u003cbr/\u003e\n    Used a waypoint\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/4387358894c99aee3f6d42fccf11c0ed2a1fb441.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/4387358894c99aee3f6d42fccf11c0ed2a1fb441.jpg\" alt=\"Explosive Mastery\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Explosive Mastery\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExplosive Mastery\u003c/strong\u003e\u003cbr/\u003e\n    Gained 100 skill points in explosives\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/7f8d292e073d06bc5626d3d4b9fd6f1e902b0b25.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/7f8d292e073d06bc5626d3d4b9fd6f1e902b0b25.jpg\" alt=\"Silence the Symphony\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Silence the Symphony\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSilence the Symphony\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/1621690/library_600x900.jpg\" alt=\"Core Keeper box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/1621690/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eCore Keeper\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 0.0%\"\u003e\n        0.0%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e0/51 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e13.4h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2023-09-14\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (51)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/7dd3776970e0fab4b5f320a215bea408422d5d3b.jpg\" alt=\"A Slimey Encounter\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Slimey Encounter\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/c474eab2b0cf0f9cb67af655bdc387d2dc141e63.jpg\" alt=\"Bugging Out\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBugging Out\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/da3e09b8b16b542673a939aff7575ca1287d26a7.jpg\" alt=\"Watch Your Step\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWatch Your Step\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/9c25bb7e2f6e29c85c83252c1e372d60814e8f37.jpg\" alt=\"From the Skies!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFrom the Skies!\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/216050bf7245d500d5231baf7fc970a26a5f400f.jpg\" alt=\"You're a Wizard\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou're a Wizard\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/7dd3776970e0fab4b5f320a215bea408422d5d3b.jpg\" alt=\"Toxic Personality\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eToxic Personality\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/9b6481b447453d5b6dfce7be9b4cc53622897c3e.jpg\" alt=\"From the Depths!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFrom the Depths!\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/7dd3776970e0fab4b5f320a215bea408422d5d3b.jpg\" alt=\"Slippery When Wet\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSlippery When Wet\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/e73f19e6a10b824ba78e7f909b4430bde84b9ff3.jpg\" alt=\"Just Deserts\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJust Deserts\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/7dd3776970e0fab4b5f320a215bea408422d5d3b.jpg\" alt=\"Burning Through\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBurning Through\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/c90f92d1b544e0b5abaa44b9227533095804e4aa.jpg\" alt=\"Slippery Shinobi\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSlippery Shinobi\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/ee953b41859e526d1a025534f814047995e1cbef.jpg\" alt=\"Diggy Diggy Hole\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDiggy Diggy Hole\u003c/strong\u003e\u003cbr\u003e\n    Gained 100 skill points in mining\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/2e5fd8751b842ca798cebe2fc5bf4820d5b2fbd6.jpg\" alt=\"Cheese it!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCheese it!\u003c/strong\u003e\u003cbr\u003e\n    Gained 100 skill points in cooking\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/eb086b77a5959c6b02b1d5a78c70122800474d40.jpg\" alt=\"Completely Hooked\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompletely Hooked\u003c/strong\u003e\u003cbr\u003e\n    Gained 100 skill points in fishing\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/e75a067623924a42818d9f91e57cd38c836a3aaf.jpg\" alt=\"Nature Nurturer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNature Nurturer\u003c/strong\u003e\u003cbr\u003e\n    Gained 100 skill points in gardening\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/0d4b33abc7493932fb023dabb4c0e86598cd9c47.jpg\" alt=\"...Sting like a bee\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e...Sting like a bee\u003c/strong\u003e\u003cbr\u003e\n    Gained 100 skill points in melee\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/0d1fdfdfd97754c6666b8c7c06ca139454b5deda.jpg\" alt=\"Robin Hood\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRobin Hood\u003c/strong\u003e\u003cbr\u003e\n    Gained 100 skill points in range\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/c87b6e2150418a31f9fde5dbe5862f8b458d445a.jpg\" alt=\"Health Conscious\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHealth Conscious\u003c/strong\u003e\u003cbr\u003e\n    Gained 100 skill points in vitality\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/85c114c11a77217df13a2c54fee0b85e3b9afcf4.jpg\" alt=\"Float like a butterfly...\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFloat like a butterfly...\u003c/strong\u003e\u003cbr\u003e\n    Gained 100 skill points in running\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/4ddeb572b93bd49e869cce25b57e53c936e3628d.jpg\" alt=\"Crafty Explorer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCrafty Explorer\u003c/strong\u003e\u003cbr\u003e\n    Gained 100 skill points in crafting\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/d1da7cae938ecd032a39df792cd69ee868ff569d.jpg\" alt=\"The Heart of the Cards\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Heart of the Cards\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/f5b8155104a7029353ae48c4f5d22aa7b296716c.jpg\" alt=\"The Rune Song\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Rune Song\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/001a2811bbfb813e44254a922bdfc92a785cd354.jpg\" alt=\"The Phantom Spark\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Phantom Spark\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/8593d490c99ed10c4a52ed9ac2c0a877350f07a0.jpg\" alt=\"The Soul Seeker\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Soul Seeker\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/debc4e446a4dac57a97f3af422350d894c4de426.jpg\" alt=\"Gossip Group\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGossip Group\u003c/strong\u003e\u003cbr\u003e\n    Talked to a Big Larva\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/82b53278004bb6b3d03eb8890de75e35a383c53d.jpg\" alt=\"Legendary Fossil\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLegendary Fossil\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/cdb057bdd14927fe985077c36cd7073a3e787939.jpg\" alt=\"In a Rush\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIn a Rush\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/edec019c9e652859dffbafff1c4d302a40cc68f2.jpg\" alt=\"Certified Chef\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCertified Chef\u003c/strong\u003e\u003cbr\u003e\n    Discovered 100 recipes in the cook book\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/53b7eb0241ebeb1657bcef13b736aebfab51152a.jpg\" alt=\"Farmer Midas\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFarmer Midas\u003c/strong\u003e\u003cbr\u003e\n    Harvested a golden plant\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/066e932734fff8f9ac642c142b332fe7994c645b.jpg\" alt=\"A Throne Fit for a King\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Throne Fit for a King\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/72023a2c2f7a586265101958425475bc568445ae.jpg\" alt=\"Rock and Stone!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRock and Stone!\u003c/strong\u003e\u003cbr\u003e\n    Equipped the Ring of Rock and Ring of Stone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/60d640701e78a9c816ed87a0cdac3b2b6c1e56ef.jpg\" alt=\"Impersonator Syndrome\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eImpersonator Syndrome\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/f396f09d20816a9cc7c37717a91b6e4fdfba0a82.jpg\" alt=\"5 Centimeters Per Second\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e5 Centimeters Per Second\u003c/strong\u003e\u003cbr\u003e\n    Planted 10 Cherry Trees\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/820c20ae71ae1f9c3bfded3ae4b198a4c9235dde.jpg\" alt=\"A Strange Song\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Strange Song\u003c/strong\u003e\u003cbr\u003e\n    Play the Tune of Tempest\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/9fee0718e7841126522cd00e51e7b25ee1b01734.jpg\" alt=\"Your Very First\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYour Very First\u003c/strong\u003e\u003cbr\u003e\n    Hatched your first pet from an egg\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/15360c23c89a5efdc8b83f237a5ffc0ae0a79eca.jpg\" alt=\"Thalassophobia\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThalassophobia\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/85ef9629c5c328fbe5886a97e6160191a3141fdb.jpg\" alt=\"I want ’em all!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI want ’em all!\u003c/strong\u003e\u003cbr\u003e\n    Stored all color variations of one pet type in a chest\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/1d6d92a20a37ed1c1c7ba207b7b6f3c50bac1897.jpg\" alt=\"A Good Life\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Good Life\u003c/strong\u003e\u003cbr\u003e\n    Fed cattle\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/d881646878d1012a32fc60d3b34f672d13278902.jpg\" alt=\"Pet Prodigy\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePet Prodigy\u003c/strong\u003e\u003cbr\u003e\n    Reached max level on a pet\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/be34eafb0b6da835ae4bee889119e4a357805545.jpg\" alt=\"A Wizard Is Never Late\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Wizard Is Never Late\u003c/strong\u003e\u003cbr\u003e\n    Gained 100 skill points in magic\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/0fddc09a27f26219b1f1085f0539d50d40d03142.jpg\" alt=\"Stay Away From The Summoner!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStay Away From The Summoner!\u003c/strong\u003e\u003cbr\u003e\n    Gained 100 skill points in summoning\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/44c8423e99ccb32d99fda118b98e6717ce38244e.jpg\" alt=\"Song of the Woods\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSong of the Woods\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/01377bf7504480336a3546770f42a4eecd97ab65.jpg\" alt=\"Howl of the Sea\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHowl of the Sea\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/8d26d0e325c2544d7953b00c4f81021ad74e2f55.jpg\" alt=\"Roar of the Flames\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRoar of the Flames\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/8ad832161291acfef9c3649ba71e9b08e5ad01d3.jpg\" alt=\"Visitor From A Dying World\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVisitor From A Dying World\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/5f912a887e75fae6f34942894682647454f5f094.jpg\" alt=\"Cambrian Behemoth\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCambrian Behemoth\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/947a0227e3b3dbe3875e4c5453da209968d7a263.jpg\" alt=\"Legion Commander\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLegion Commander\u003c/strong\u003e\u003cbr\u003e\n    Had 8 or more active minions\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/fed86377cbccdbb79df828adf34b460fc392c81d.jpg\" alt=\"Wielder of Legends\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWielder of Legends\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/f84a3252acb4508a4ae389de4ccd0fbe0644677a.jpg\" alt=\"Beam Me Up\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeam Me Up\u003c/strong\u003e\u003cbr\u003e\n    Used a waypoint\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/4387358894c99aee3f6d42fccf11c0ed2a1fb441.jpg\" alt=\"Explosive Mastery\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExplosive Mastery\u003c/strong\u003e\u003cbr\u003e\n    Gained 100 skill points in explosives\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1621690/7f8d292e073d06bc5626d3d4b9fd6f1e902b0b25.jpg\" alt=\"Silence the Symphony\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSilence the Symphony\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Core Keeper - 0.0% complete with 0/51 achievements unlocked.",
      "date_published": "2023-09-14T00:00:00Z",
      "date_modified": "2023-09-14T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "core-keeper"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/starbound---unstable/",
      "url": "https://go.waylonwalker.com/steam/starbound---unstable/",
      "title": "Starbound - Unstable",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/211820/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/211820/library_600x900.jpg\" alt=\"Starbound - Unstable box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/211820/header.jpg\u0026#39;\"/ data-glightbox=\"description: Starbound - Unstable box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eStarbound - Unstable\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 9.8%\"\u003e\n        9.8%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e5/51 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e20.8h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2023-08-26\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (5)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/63730461cdf390b19db484579a6a3284415cbafe.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/63730461cdf390b19db484579a6a3284415cbafe.jpg\" alt=\"Just like mum used to make!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Just like mum used to make!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJust like mum used to make!\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 23, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/e8753023cd2715bd881dd1652325fafea12c1116.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/e8753023cd2715bd881dd1652325fafea12c1116.jpg\" alt=\"Adventurer Eventuality \" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Adventurer Eventuality\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAdventurer Eventuality \u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 23, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/bb52d4895cdc29b2b3ffa8a66a8e0f3ef381fa92.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/bb52d4895cdc29b2b3ffa8a66a8e0f3ef381fa92.jpg\" alt=\"Congratulations on Your Graduation!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Congratulations on Your Graduation!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCongratulations on Your Graduation!\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 23, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/0b1faab92e8eab354f191a0c13e2e1d9dd42901c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/0b1faab92e8eab354f191a0c13e2e1d9dd42901c.jpg\" alt=\"Not in Front of the Children!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Not in Front of the Children!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNot in Front of the Children!\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 23, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/33e18e7db5102cbf5e10d3f24cf82b83aea65c15.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/33e18e7db5102cbf5e10d3f24cf82b83aea65c15.jpg\" alt=\"The Simple Life\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Simple Life\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Simple Life\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 23, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (46)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Amateur Bard\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Amateur Bard\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAmateur Bard\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Perfectly Generic Achievement\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Perfectly Generic Achievement\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePerfectly Generic Achievement\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"You\u0026#39;re aMAZEing!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: You\u0026#39;re aMAZEing!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou\u0026#39;re aMAZEing!\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Bug Tracker\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bug Tracker\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBug Tracker\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Home Sweet Home\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Home Sweet Home\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHome Sweet Home\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"First Mate\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: First Mate\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFirst Mate\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Alien Archaeologist\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Alien Archaeologist\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAlien Archaeologist\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Monster Whisperer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Monster Whisperer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMonster Whisperer\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Traveling in Style\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Traveling in Style\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTraveling in Style\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Book Club\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Book Club\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBook Club\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Augmented Reality\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Augmented Reality\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAugmented Reality\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"The Resilient\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Resilient\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Resilient\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"The Devout\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Devout\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Devout\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"The Wise\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Wise\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Wise\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"The Brave\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Brave\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Brave\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"The Loyal\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Loyal\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Loyal\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"The Protector\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Protector\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Protector\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"The Hopeful\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Hopeful\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Hopeful\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"The Wanderer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Wanderer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Wanderer\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"King Barbarian\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: King Barbarian\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing Barbarian\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"A Motley Crew\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Motley Crew\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Motley Crew\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Cosmic Curator\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cosmic Curator\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCosmic Curator\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Too Heavy to Kick\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Too Heavy to Kick\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eToo Heavy to Kick\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Ending Prohibition\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ending Prohibition\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEnding Prohibition\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Shock and Awe\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Shock and Awe\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShock and Awe\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"A Helping Hand\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Helping Hand\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Helping Hand\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"A Cheeky Chore\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Cheeky Chore\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Cheeky Chore\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"A Tireless Task\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Tireless Task\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Tireless Task\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Villain\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Villain\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVillain\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Not a Llama\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Not a Llama\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNot a Llama\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"From the Ashes\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: From the Ashes\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFrom the Ashes\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Cramped Colony\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cramped Colony\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCramped Colony\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Sweet Revenge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sweet Revenge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSweet Revenge\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Nox\u0026#39;s Apprentice\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Nox\u0026#39;s Apprentice\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNox\u0026#39;s Apprentice\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Destroyer of Worlds\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Destroyer of Worlds\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDestroyer of Worlds\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Protected Protector\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Protected Protector\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eProtected Protector\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Feathered Friend\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Feathered Friend\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFeathered Friend\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Bug Free\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bug Free\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBug Free\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Culinary Century\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Culinary Century\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCulinary Century\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Them Bones\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Them Bones\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThem Bones\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Mint Condition\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mint Condition\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMint Condition\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Armour Aficionado\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Armour Aficionado\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArmour Aficionado\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Well Read\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Well Read\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWell Read\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Starbound Valley\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Starbound Valley\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStarbound Valley\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Captain of the Year\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Captain of the Year\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCaptain of the Year\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"All Walks of Life\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: All Walks of Life\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAll Walks of Life\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/211820/library_600x900.jpg\" alt=\"Starbound - Unstable box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/211820/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eStarbound - Unstable\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 9.8%\"\u003e\n        9.8%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e5/51 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e20.8h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2023-08-26\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (5)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/63730461cdf390b19db484579a6a3284415cbafe.jpg\" alt=\"Just like mum used to make!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJust like mum used to make!\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 23, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/e8753023cd2715bd881dd1652325fafea12c1116.jpg\" alt=\"Adventurer Eventuality \" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAdventurer Eventuality \u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 23, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/bb52d4895cdc29b2b3ffa8a66a8e0f3ef381fa92.jpg\" alt=\"Congratulations on Your Graduation!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCongratulations on Your Graduation!\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 23, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/0b1faab92e8eab354f191a0c13e2e1d9dd42901c.jpg\" alt=\"Not in Front of the Children!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNot in Front of the Children!\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 23, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/33e18e7db5102cbf5e10d3f24cf82b83aea65c15.jpg\" alt=\"The Simple Life\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Simple Life\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 23, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (46)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Amateur Bard\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAmateur Bard\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Perfectly Generic Achievement\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePerfectly Generic Achievement\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"You're aMAZEing!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou're aMAZEing!\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Bug Tracker\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBug Tracker\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Home Sweet Home\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHome Sweet Home\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"First Mate\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFirst Mate\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Alien Archaeologist\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAlien Archaeologist\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Monster Whisperer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMonster Whisperer\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Traveling in Style\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTraveling in Style\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Book Club\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBook Club\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Augmented Reality\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAugmented Reality\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"The Resilient\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Resilient\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"The Devout\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Devout\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"The Wise\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Wise\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"The Brave\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Brave\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"The Loyal\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Loyal\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"The Protector\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Protector\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"The Hopeful\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Hopeful\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"The Wanderer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Wanderer\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"King Barbarian\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing Barbarian\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"A Motley Crew\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Motley Crew\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Cosmic Curator\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCosmic Curator\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Too Heavy to Kick\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eToo Heavy to Kick\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Ending Prohibition\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEnding Prohibition\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Shock and Awe\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShock and Awe\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"A Helping Hand\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Helping Hand\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"A Cheeky Chore\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Cheeky Chore\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"A Tireless Task\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Tireless Task\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Villain\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVillain\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Not a Llama\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNot a Llama\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"From the Ashes\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFrom the Ashes\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Cramped Colony\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCramped Colony\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Sweet Revenge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSweet Revenge\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Nox's Apprentice\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNox's Apprentice\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Destroyer of Worlds\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDestroyer of Worlds\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Protected Protector\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eProtected Protector\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Feathered Friend\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFeathered Friend\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Bug Free\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBug Free\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Culinary Century\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCulinary Century\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Them Bones\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThem Bones\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Mint Condition\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMint Condition\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Armour Aficionado\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArmour Aficionado\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Well Read\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWell Read\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Starbound Valley\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStarbound Valley\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"Captain of the Year\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCaptain of the Year\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/211820/d3292d5ed49d8f4c02737fdf2343fbc742176059.jpg\" alt=\"All Walks of Life\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAll Walks of Life\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Starbound - Unstable - 9.8% complete with 5/51 achievements unlocked.",
      "date_published": "2023-08-26T00:00:00Z",
      "date_modified": "2023-08-26T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "starbound---unstable"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/colossal-order-game/",
      "url": "https://go.waylonwalker.com/steam/colossal-order-game/",
      "title": "Colossal Order Game",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/255710/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/255710/library_600x900.jpg\" alt=\"Colossal Order Game box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/255710/header.jpg\u0026#39;\"/ data-glightbox=\"description: Colossal Order Game box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eColossal Order Game\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 3.94%\"\u003e\n        3.94%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e5/127 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e7.8h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2023-08-20\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (5)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/f51e370319e24698845c2fac6e30f0effd2e193c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/f51e370319e24698845c2fac6e30f0effd2e193c.jpg\" alt=\"Pioneer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Pioneer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePioneer\u003c/strong\u003e\u003cbr/\u003e\n    Create your very first city\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 25, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/d102f916e9a7f2118422f633fe93d97e9ac10f0e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/d102f916e9a7f2118422f633fe93d97e9ac10f0e.jpg\" alt=\"Power at Your Fingertips\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Power at Your Fingertips\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePower at Your Fingertips\u003c/strong\u003e\u003cbr/\u003e\n    Unlock all city services\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 29, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/f3926197a6315c6684a84fdde4e943e77baeae15.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/f3926197a6315c6684a84fdde4e943e77baeae15.jpg\" alt=\"Unpopular Mayor\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Unpopular Mayor\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUnpopular Mayor\u003c/strong\u003e\u003cbr/\u003e\n    Have 15% happiness\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 25, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/4e51a8469c5e8cb3fbf9261431b272a27d102675.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/4e51a8469c5e8cb3fbf9261431b272a27d102675.jpg\" alt=\"Singing In The-\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Singing In The-\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSinging In The-\u003c/strong\u003e\u003cbr/\u003e\n    Experience rain\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 25, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/786867741ae8555fe7efd862554481c09e9b7f69.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/786867741ae8555fe7efd862554481c09e9b7f69.jpg\" alt=\"Foggy Weather\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Foggy Weather\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFoggy Weather\u003c/strong\u003e\u003cbr/\u003e\n    Experience fog\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 29, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (122)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/7ae428d493444de423e30ac52d2f5596e9ec897c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/7ae428d493444de423e30ac52d2f5596e9ec897c.jpg\" alt=\"Decorator\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Decorator\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDecorator\u003c/strong\u003e\u003cbr/\u003e\n    Use the Asset Editor to make your very own asset\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/540c8fc47dfec059716cc59d3a0ea1302fe8e57e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/540c8fc47dfec059716cc59d3a0ea1302fe8e57e.jpg\" alt=\"Terraformer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Terraformer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTerraformer\u003c/strong\u003e\u003cbr/\u003e\n    Create a map\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/85577ccfd31cbe6b90f89276c91e6b9a051ea26d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/85577ccfd31cbe6b90f89276c91e6b9a051ea26d.jpg\" alt=\"Well Informed\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Well Informed\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWell Informed\u003c/strong\u003e\u003cbr/\u003e\n    Have a look at all the different info-view panels\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/b626c6ab334cc333aa20ab00fc1a0aecabae8ec4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/b626c6ab334cc333aa20ab00fc1a0aecabae8ec4.jpg\" alt=\"City Planner\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: City Planner\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCity Planner\u003c/strong\u003e\u003cbr/\u003e\n    Use the district tool to draw 3 districts\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/6541f8d9bb0240fc766c13e80a412eda8d871a4b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/6541f8d9bb0240fc766c13e80a412eda8d871a4b.jpg\" alt=\"Lawmaker\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Lawmaker\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLawmaker\u003c/strong\u003e\u003cbr/\u003e\n    Apply a policy to a district you created\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/6445d60a26367c966c9a43918db591a07d034014.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/6445d60a26367c966c9a43918db591a07d034014.jpg\" alt=\"Heavenly City\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Heavenly City\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHeavenly City\u003c/strong\u003e\u003cbr/\u003e\n    Unlock Monuments\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/d1f33952f47f0077ca5c0f57e542c8abdce6b73f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/d1f33952f47f0077ca5c0f57e542c8abdce6b73f.jpg\" alt=\"Medic!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Medic!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMedic!\u003c/strong\u003e\u003cbr/\u003e\n    Build the Medical Center Monument\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/992cf64711ac82ecfe74bd49397ea22c37a8ed80.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/992cf64711ac82ecfe74bd49397ea22c37a8ed80.jpg\" alt=\"A Huge Hadron\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Huge Hadron\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Huge Hadron\u003c/strong\u003e\u003cbr/\u003e\n    Build the Hadron Collider Monument\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/187d20311d41311d1f9a06e57b751227e430b392.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/187d20311d41311d1f9a06e57b751227e430b392.jpg\" alt=\"Beam Me Up\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Beam Me Up\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeam Me Up\u003c/strong\u003e\u003cbr/\u003e\n    Build the Space Elevator Monument\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/b63122b38ac27c961cec97d92c63d14831d63005.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/b63122b38ac27c961cec97d92c63d14831d63005.jpg\" alt=\"New Eden\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: New Eden\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNew Eden\u003c/strong\u003e\u003cbr/\u003e\n    Build the Eden Project Monument\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/34b10fb3af0b75024c97897127162173daf81338.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/34b10fb3af0b75024c97897127162173daf81338.jpg\" alt=\"Short Fuse\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Short Fuse\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShort Fuse\u003c/strong\u003e\u003cbr/\u003e\n    Build the Fusion Power Plant Monument\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/b1eac0bcd72fa73e46ebb0d2643c147d542f76d2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/b1eac0bcd72fa73e46ebb0d2643c147d542f76d2.jpg\" alt=\"I Want It All\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: I Want It All\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI Want It All\u003c/strong\u003e\u003cbr/\u003e\n    Unlock every single building in the game\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/f393b902b3861aedf1b4520a0a4f62d236bb30b6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/f393b902b3861aedf1b4520a0a4f62d236bb30b6.jpg\" alt=\"Metropolis\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Metropolis\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMetropolis\u003c/strong\u003e\u003cbr/\u003e\n    Have a population of 100,000 in your city\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/16d2baf4df8f73264d4dd8f60f8a9fa9a3f0e42f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/16d2baf4df8f73264d4dd8f60f8a9fa9a3f0e42f.jpg\" alt=\"Distroy\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Distroy\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDistroy\u003c/strong\u003e\u003cbr/\u003e\n    Have more than 10 districts with unique policies\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/8790cb98badb3905c2fd8344faee52f0174650c4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/8790cb98badb3905c2fd8344faee52f0174650c4.jpg\" alt=\"City in Motion\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: City in Motion\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCity in Motion\u003c/strong\u003e\u003cbr/\u003e\n    Have 20 transport lines\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/b93b0fac0a73c4c7bc6a6122bb1c024a56951908.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/b93b0fac0a73c4c7bc6a6122bb1c024a56951908.jpg\" alt=\"City in Motion 2\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: City in Motion 2\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCity in Motion 2\u003c/strong\u003e\u003cbr/\u003e\n    Have 50 transport lines\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/ae7d06a8b7119c8813522621fdacd881912e7068.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/ae7d06a8b7119c8813522621fdacd881912e7068.jpg\" alt=\"Climbing the Social Ladder\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Climbing the Social Ladder\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eClimbing the Social Ladder\u003c/strong\u003e\u003cbr/\u003e\n    Have a Citizen educated to level 3 from 0\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/505d1a2ceb49bb82b6bb98e29468528ee6868948.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/505d1a2ceb49bb82b6bb98e29468528ee6868948.jpg\" alt=\"Rolling in Dough\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Rolling in Dough\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRolling in Dough\u003c/strong\u003e\u003cbr/\u003e\n    Earn 15,000 per week\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/1cf9942c6dd398e05db46b38a7f6ac8a55283df8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/1cf9942c6dd398e05db46b38a7f6ac8a55283df8.jpg\" alt=\"Frenetic Player\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Frenetic Player\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFrenetic Player\u003c/strong\u003e\u003cbr/\u003e\n    Click on a police building 100 times in a row\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/6b214b90b5b13f8dfb7d0c1d0710a924eb09c930.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/6b214b90b5b13f8dfb7d0c1d0710a924eb09c930.jpg\" alt=\"Happy Town\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Happy Town\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHappy Town\u003c/strong\u003e\u003cbr/\u003e\n    Have more than 95% city happiness for 5 years\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/9843637355b3092d1e2afd072e5142e8e5418388.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/9843637355b3092d1e2afd072e5142e8e5418388.jpg\" alt=\"Tough City\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tough City\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTough City\u003c/strong\u003e\u003cbr/\u003e\n    Have the city survive a crime rate of over 40% for 2 years\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/b05ddab782a8997f4c37ecb8880bc718a33cae5d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/b05ddab782a8997f4c37ecb8880bc718a33cae5d.jpg\" alt=\"Fire Watch\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fire Watch\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFire Watch\u003c/strong\u003e\u003cbr/\u003e\n    Have 5 Fire Stations\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/2e2341961e900dac26e4d34c352afca5d968ae27.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/2e2341961e900dac26e4d34c352afca5d968ae27.jpg\" alt=\"The Safest Town\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Safest Town\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Safest Town\u003c/strong\u003e\u003cbr/\u003e\n    Have 5 Police Headquarters\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/2056bb394a71c3a332d37b3336a1cf9a4fed8bdd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/2056bb394a71c3a332d37b3336a1cf9a4fed8bdd.jpg\" alt=\"Professional Dumper\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Professional Dumper\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eProfessional Dumper\u003c/strong\u003e\u003cbr/\u003e\n    Fill five landfill sites\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/f662191891659eb3669261ffde06a83946dbdcce.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/f662191891659eb3669261ffde06a83946dbdcce.jpg\" alt=\"Earthloving City\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Earthloving City\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEarthloving City\u003c/strong\u003e\u003cbr/\u003e\n    No water or ground pollution in a city of over 10,000 residents\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/f72e55e7c1f77fcffdcd9abb451a50673d013adc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/f72e55e7c1f77fcffdcd9abb451a50673d013adc.jpg\" alt=\"Higher Education\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Higher Education\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHigher Education\u003c/strong\u003e\u003cbr/\u003e\n    Have over 70% of citizens highly educated in a city of over 10,000 people\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/23befb8e445a2dd0bb5747e46f12110dc33d8522.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/23befb8e445a2dd0bb5747e46f12110dc33d8522.jpg\" alt=\"SIMulated City\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: SIMulated City\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSIMulated City\u003c/strong\u003e\u003cbr/\u003e\n    Have an area the size of nine map tiles\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/947321797393d776defa66a1b613c50f21bf1609.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/947321797393d776defa66a1b613c50f21bf1609.jpg\" alt=\"Safe City\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Safe City\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSafe City\u003c/strong\u003e\u003cbr/\u003e\n    Keep the crime rate under 10% for 4 years straight\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/7cf6be77e0dcfe36eb7823152bf30dbb4ee415f6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/7cf6be77e0dcfe36eb7823152bf30dbb4ee415f6.jpg\" alt=\"Power to the People\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Power to the People\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePower to the People\u003c/strong\u003e\u003cbr/\u003e\n    Have the industry tax rate over 5% higher than either residential tax rate for one year\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/acdae03b84de3e18cd067499ebf7fe76ccf795ad.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/acdae03b84de3e18cd067499ebf7fe76ccf795ad.jpg\" alt=\"Make Them Pay\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Make Them Pay\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMake Them Pay\u003c/strong\u003e\u003cbr/\u003e\n    Have both residential tax rates over 5% higher than industry for one year\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/5957fdecb8711a5cdaaef6fa26fe6eea07382550.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/5957fdecb8711a5cdaaef6fa26fe6eea07382550.jpg\" alt=\"Leisure Suites\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Leisure Suites\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLeisure Suites\u003c/strong\u003e\u003cbr/\u003e\n    Have 1000 squares of leisure specialized commercial zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/6bfc35d88a6bbddaeed453b960bf2ae5de94909e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/6bfc35d88a6bbddaeed453b960bf2ae5de94909e.jpg\" alt=\"Playing With The Boys\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Playing With The Boys\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePlaying With The Boys\u003c/strong\u003e\u003cbr/\u003e\n    Have 1000 squares of beach specialized commercial zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/b05388a05efbf2ddc15bb85c4f8c9282c1bb7e83.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/b05388a05efbf2ddc15bb85c4f8c9282c1bb7e83.jpg\" alt=\"Prison Break\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Prison Break\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePrison Break\u003c/strong\u003e\u003cbr/\u003e\n    Have 15 Prisons in the city\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/9808b1846e1d0190907f884d0f6e93c06ebed43d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/9808b1846e1d0190907f884d0f6e93c06ebed43d.jpg\" alt=\"1001 Nights\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: 1001 Nights\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e1001 Nights\u003c/strong\u003e\u003cbr/\u003e\n    Experience 1001 nights in the game\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/94ffdc15b00712544259ee15081d596007a0ac99.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/94ffdc15b00712544259ee15081d596007a0ac99.jpg\" alt=\"Does My Bum Look Big In This?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Does My Bum Look Big In This?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDoes My Bum Look Big In This?\u003c/strong\u003e\u003cbr/\u003e\n    Change Chirper look\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/d8ac5a57aaa70b933b83997cbaafcce22472c583.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/d8ac5a57aaa70b933b83997cbaafcce22472c583.jpg\" alt=\"Brrr!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Brrr!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBrrr!\u003c/strong\u003e\u003cbr/\u003e\n    Create a winter map in map editor\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/0fd237c8f2b71a01bfe033c1bdde9f172ba77fb5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/0fd237c8f2b71a01bfe033c1bdde9f172ba77fb5.jpg\" alt=\"Get Your Snowshoes Ready!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Get Your Snowshoes Ready!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGet Your Snowshoes Ready!\u003c/strong\u003e\u003cbr/\u003e\n    Experience snowfall\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/dd96b1e995e5c4aaca6bb230b990c9dd3ec5780b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/dd96b1e995e5c4aaca6bb230b990c9dd3ec5780b.jpg\" alt=\"Here\u0026#39;s A Tram\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Here\u0026#39;s A Tram\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHere\u0026#39;s A Tram\u003c/strong\u003e\u003cbr/\u003e\n    Have one tram line active\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/af07c99612d07754933fdcfdf620da5efb59f2f1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/af07c99612d07754933fdcfdf620da5efb59f2f1.jpg\" alt=\"I Love Trams!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: I Love Trams!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI Love Trams!\u003c/strong\u003e\u003cbr/\u003e\n    Have 10 tram lines active\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/c49de36d4ec40208a911d51cf82af5b4d3855853.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/c49de36d4ec40208a911d51cf82af5b4d3855853.jpg\" alt=\"Are They Naked In There?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Are They Naked In There?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAre They Naked In There?\u003c/strong\u003e\u003cbr/\u003e\n    Have a Sauna in the city\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/0681aa3b0d4973287f9f7721796a04e99ebd3c1b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/0681aa3b0d4973287f9f7721796a04e99ebd3c1b.jpg\" alt=\"It\u0026#39;s Wintertime!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: It\u0026#39;s Wintertime!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt\u0026#39;s Wintertime!\u003c/strong\u003e\u003cbr/\u003e\n    Change Chirper to a winter look\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/879a9b523e6873b5770ea3c38ee65ffad50dfff7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/879a9b523e6873b5770ea3c38ee65ffad50dfff7.jpg\" alt=\"Speed up!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Speed up!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpeed up!\u003c/strong\u003e\u003cbr/\u003e\n    Boost 100 km of streets with Road maintenance service\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/f7d8990567ecaa45358ca0add538e74b00781263.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/f7d8990567ecaa45358ca0add538e74b00781263.jpg\" alt=\"The Plowmaster\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Plowmaster\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Plowmaster\u003c/strong\u003e\u003cbr/\u003e\n    Have snowplows collect 2000000 units of snow\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/526191c6cdfdd68930dde9282a12dc030f178672.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/526191c6cdfdd68930dde9282a12dc030f178672.jpg\" alt=\"Quay-King\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Quay-King\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eQuay-King\u003c/strong\u003e\u003cbr/\u003e\n    Build one quay\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/a9d04d9d4ab46a1629e1ae2fb9c76559ea3ccd81.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/a9d04d9d4ab46a1629e1ae2fb9c76559ea3ccd81.jpg\" alt=\"With Canals You Can!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: With Canals You Can!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWith Canals You Can!\u003c/strong\u003e\u003cbr/\u003e\n    Build one canal\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/482ad26f9099ebd3d4579f444ba00b6c557254a8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/482ad26f9099ebd3d4579f444ba00b6c557254a8.jpg\" alt=\"We need snorkels!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: We need snorkels!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWe need snorkels!\u003c/strong\u003e\u003cbr/\u003e\n    Experience a tsunami\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/812e1f7b47f2927e67a95eefdc5101289b24f230.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/812e1f7b47f2927e67a95eefdc5101289b24f230.jpg\" alt=\"Shake It Up!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Shake It Up!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShake It Up!\u003c/strong\u003e\u003cbr/\u003e\n    Experience an earthquake\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/69de971ca41cc54a71a8de6cc7f6f4045f6bbd0d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/69de971ca41cc54a71a8de6cc7f6f4045f6bbd0d.jpg\" alt=\"It\u0026#39;s heading right for us!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: It\u0026#39;s heading right for us!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt\u0026#39;s heading right for us!\u003c/strong\u003e\u003cbr/\u003e\n    Experience a meteor strike\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/d6f8c4893adab0e2a0ae207449b7d1d5fe8a4a13.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/d6f8c4893adab0e2a0ae207449b7d1d5fe8a4a13.jpg\" alt=\"Drop the Base\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Drop the Base\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDrop the Base\u003c/strong\u003e\u003cbr/\u003e\n    Experience a sinkhole\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/0a9ac031eb959d6d62b7f3aeda84de183263dfd3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/0a9ac031eb959d6d62b7f3aeda84de183263dfd3.jpg\" alt=\"Run, Bambi!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Run, Bambi!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRun, Bambi!\u003c/strong\u003e\u003cbr/\u003e\n    Experience a forest fire\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/f4f27d8fd82440b0631fc0b09abe2a71e53f19b7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/f4f27d8fd82440b0631fc0b09abe2a71e53f19b7.jpg\" alt=\"Thunder and Lightning\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Thunder and Lightning\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThunder and Lightning\u003c/strong\u003e\u003cbr/\u003e\n    Experience a thunderstorm\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/fcb9bd48f5bc3e19f8e8c7983d7be485ca0a5af7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/fcb9bd48f5bc3e19f8e8c7983d7be485ca0a5af7.jpg\" alt=\"Twist and shout\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Twist and shout\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTwist and shout\u003c/strong\u003e\u003cbr/\u003e\n    Experience a tornado\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/6b8fde442c9838935d01c691aa0c83bc1ce8bbd1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/6b8fde442c9838935d01c691aa0c83bc1ce8bbd1.jpg\" alt=\"What the...?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: What the...?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhat the...?\u003c/strong\u003e\u003cbr/\u003e\n    Experience a special disaster\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/9dc92f1708b2117171252b74053a7ca2fc5efa88.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/9dc92f1708b2117171252b74053a7ca2fc5efa88.jpg\" alt=\"Eternal City\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Eternal City\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEternal City\u003c/strong\u003e\u003cbr/\u003e\n    Have ten disasters hit the same city\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/5fcb02697311440dc14889967c969a1f08e77b88.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/5fcb02697311440dc14889967c969a1f08e77b88.jpg\" alt=\"Creator\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Creator\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCreator\u003c/strong\u003e\u003cbr/\u003e\n    Create 10 scenarios\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/7ce2751fa918fb495df6e0efa13395a539da2c00.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/7ce2751fa918fb495df6e0efa13395a539da2c00.jpg\" alt=\"We Have A Winner!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: We Have A Winner!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWe Have A Winner!\u003c/strong\u003e\u003cbr/\u003e\n    Win 10 scenarios\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/ef0cadace0de71219e007a002b2073eae6d5cb87.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/ef0cadace0de71219e007a002b2073eae6d5cb87.jpg\" alt=\"The Underdog\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Underdog\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Underdog\u003c/strong\u003e\u003cbr/\u003e\n    Lose 10 scenarios\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/c626f1a9c731acf56e290378a62b5cf8d5e3223d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/c626f1a9c731acf56e290378a62b5cf8d5e3223d.jpg\" alt=\"Rejoice And Be Ferry\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Rejoice And Be Ferry\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRejoice And Be Ferry\u003c/strong\u003e\u003cbr/\u003e\n    Have 3 ferry lines\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/23613cd3c3f54d5e2fe96be0d7697214a09412cb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/23613cd3c3f54d5e2fe96be0d7697214a09412cb.jpg\" alt=\"Ferry Faerie\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ferry Faerie\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFerry Faerie\u003c/strong\u003e\u003cbr/\u003e\n    Have 15 ferry lines\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/a473d44d3299b19357ac04d8e07f42b5ae0c55ed.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/a473d44d3299b19357ac04d8e07f42b5ae0c55ed.jpg\" alt=\"Triorail\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Triorail\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTriorail\u003c/strong\u003e\u003cbr/\u003e\n    Have 3 monorail lines\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/cec24b6573cde47a79b7099ab56514194fec0f32.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/cec24b6573cde47a79b7099ab56514194fec0f32.jpg\" alt=\"Not So Mono\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Not So Mono\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNot So Mono\u003c/strong\u003e\u003cbr/\u003e\n    Have 10 monorail lines\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/8afbe22600a1894519408d4655ac21d96c63269e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/8afbe22600a1894519408d4655ac21d96c63269e.jpg\" alt=\"Clark Cable\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Clark Cable\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eClark Cable\u003c/strong\u003e\u003cbr/\u003e\n    Transport 5 000 passengers with Cable Cars\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/c179566a0c83525a0237770c25bfaffc0dd90703.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/c179566a0c83525a0237770c25bfaffc0dd90703.jpg\" alt=\"Cables Galore\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cables Galore\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCables Galore\u003c/strong\u003e\u003cbr/\u003e\n    Transport 20 000 passengers with Cable Cars\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/e1c44173beab8151d791d6cf8b36e5cf5fbb5833.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/e1c44173beab8151d791d6cf8b36e5cf5fbb5833.jpg\" alt=\"Blimp? Blimp.\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Blimp? Blimp.\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlimp? Blimp.\u003c/strong\u003e\u003cbr/\u003e\n    Have 3 blimp lines\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/9e258719af9a5eb967626ac1120abeb7947ad668.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/9e258719af9a5eb967626ac1120abeb7947ad668.jpg\" alt=\"Put Some Blimp In Your Blimp\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Put Some Blimp In Your Blimp\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePut Some Blimp In Your Blimp\u003c/strong\u003e\u003cbr/\u003e\n    Have 10 blimp lines\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/1269e47e5bb1468c446bed733747c39442b16318.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/1269e47e5bb1468c446bed733747c39442b16318.jpg\" alt=\"Combo Breaker!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Combo Breaker!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCombo Breaker!\u003c/strong\u003e\u003cbr/\u003e\n    Have one Ferry and Bus Exchange Stop, Metro-Monorail-Train Hub, Monorail-Bus Hub and Multiplatform Train Station\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/13cdae36c65bcc86e2488fb8f6c4aca97a18a18b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/13cdae36c65bcc86e2488fb8f6c4aca97a18a18b.jpg\" alt=\"Nomen Est Omen\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Nomen Est Omen\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNomen Est Omen\u003c/strong\u003e\u003cbr/\u003e\n    Name a road\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/7c32a125b2e40e14225b3fbb5093b351a08acafd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/7c32a125b2e40e14225b3fbb5093b351a08acafd.jpg\" alt=\"Centurion\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Centurion\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCenturion\u003c/strong\u003e\u003cbr/\u003e\n    Name 100 roads\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/e7247e809d77f4fc87fe06431832ffd176f4bd88.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/e7247e809d77f4fc87fe06431832ffd176f4bd88.jpg\" alt=\"It\u0026#39;s Called Steve\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: It\u0026#39;s Called Steve\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt\u0026#39;s Called Steve\u003c/strong\u003e\u003cbr/\u003e\n    Name a road \u0026#34;Steve\u0026#34;\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/cfd1de794b2b101c5f7d469d63aad4588abab48e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/cfd1de794b2b101c5f7d469d63aad4588abab48e.jpg\" alt=\"Totally In Motion\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Totally In Motion\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTotally In Motion\u003c/strong\u003e\u003cbr/\u003e\n    Win all three Mass Transit scenarios\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/32cb261befe27b99898bbe9c5cead7f18ebf58d2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/32cb261befe27b99898bbe9c5cead7f18ebf58d2.jpg\" alt=\"Reporting!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Reporting!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eReporting!\u003c/strong\u003e\u003cbr/\u003e\n    Check a route of a citizen\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/b07e2c7996da391dfb173693272acb43fc993b31.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/b07e2c7996da391dfb173693272acb43fc993b31.jpg\" alt=\"Super Self-Sufficient\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Super Self-Sufficient\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSuper Self-Sufficient\u003c/strong\u003e\u003cbr/\u003e\n    Have all residential zone in your city be specialized Self-Sufficient Housing\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/c93f2e23f33877f1630e7ba1daf54667f9c674ea.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/c93f2e23f33877f1630e7ba1daf54667f9c674ea.jpg\" alt=\"I to the T\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: I to the T\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI to the T\u003c/strong\u003e\u003cbr/\u003e\n    Have all office zone in your city be specialized IT-Cluster\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/b06a14c0f620c095ce480670a0fd0247ffafa6a5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/b06a14c0f620c095ce480670a0fd0247ffafa6a5.jpg\" alt=\"Organistic\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Organistic\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOrganistic\u003c/strong\u003e\u003cbr/\u003e\n    Have all commercial zone in your city be specialized Organic and Local Produce\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/d27e322ac07a467f5788d72922ad40ed378d5b43.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/d27e322ac07a467f5788d72922ad40ed378d5b43.jpg\" alt=\"Green Energy\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Green Energy\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGreen Energy\u003c/strong\u003e\u003cbr/\u003e\n    Produce all electricity without using raw materials\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/d353a0a27111d00a9458a6f13f6a990f4bf4ba5a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/d353a0a27111d00a9458a6f13f6a990f4bf4ba5a.jpg\" alt=\"Friendly Teaching\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Friendly Teaching\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFriendly Teaching\u003c/strong\u003e\u003cbr/\u003e\n    Build one of each eco-friendly schools: Community School, Institute of Creative Arts and Modern Technology Institute\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/31fd5b1bc556ef6aae811ea95ea1520909029f30.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/31fd5b1bc556ef6aae811ea95ea1520909029f30.jpg\" alt=\"Greenest City\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Greenest City\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGreenest City\u003c/strong\u003e\u003cbr/\u003e\n    Have no polluting industry in your city, only Office Zone and specialized zones\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/e21db3be693974bfc52c8b09062f6b7cc39bfa50.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/e21db3be693974bfc52c8b09062f6b7cc39bfa50.jpg\" alt=\"The Park To Rule All Parks\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Park To Rule All Parks\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Park To Rule All Parks\u003c/strong\u003e\u003cbr/\u003e\n    Have a maximum level park made with Park Tool\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/a3bb58ecec4c209d59e707486d2498970957ec15.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/a3bb58ecec4c209d59e707486d2498970957ec15.jpg\" alt=\"Parking Not Forbidden\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Parking Not Forbidden\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eParking Not Forbidden\u003c/strong\u003e\u003cbr/\u003e\n    Have 10 parks made with Park Tool\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/2b84eb8d85e904630c74f437b8a8543cdb71ae42.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/2b84eb8d85e904630c74f437b8a8543cdb71ae42.jpg\" alt=\"Z00\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Z00\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eZ00\u003c/strong\u003e\u003cbr/\u003e\n    Have a park with all zoo buildings built in it\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/936000f92f22d972f6c7ac72b3bcfba03b524738.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/936000f92f22d972f6c7ac72b3bcfba03b524738.jpg\" alt=\"Ambulare\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ambulare\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAmbulare\u003c/strong\u003e\u003cbr/\u003e\n    Have 5 pedestrian Walking Tour lines\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/443a290cf1287f9934474782419616f2b950f999.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/443a290cf1287f9934474782419616f2b950f999.jpg\" alt=\"Maintain That Park\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Maintain That Park\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaintain That Park\u003c/strong\u003e\u003cbr/\u003e\n    Have a Park Maintenance Service and a Zoo, Nature Reserve and Amusement Park in your city\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/88539ad37cdf3f2f8b32cf7d8e2e2edb93e4f535.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/88539ad37cdf3f2f8b32cf7d8e2e2edb93e4f535.jpg\" alt=\"Coaster Tycoon\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Coaster Tycoon\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCoaster Tycoon\u003c/strong\u003e\u003cbr/\u003e\n    Have a park with all Amusement Park buildings built in it\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/e2aa7d60798689e5b28f21f26bcb133d95a8b866.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/e2aa7d60798689e5b28f21f26bcb133d95a8b866.jpg\" alt=\"Naturally\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Naturally\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNaturally\u003c/strong\u003e\u003cbr/\u003e\n    Have a park with all Nature Reserve buildings built in it\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/90d85661e3e6fb6f8f84f36f47ba74d2db027b2d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/90d85661e3e6fb6f8f84f36f47ba74d2db027b2d.jpg\" alt=\"Sights To Be Seen\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sights To Be Seen\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSights To Be Seen\u003c/strong\u003e\u003cbr/\u003e\n    Have 15 Sightseeing Bus lines\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/2e16fbc2c6b13527657bda871acf927fc27ee73f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/2e16fbc2c6b13527657bda871acf927fc27ee73f.jpg\" alt=\"Full Capacity\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Full Capacity\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFull Capacity\u003c/strong\u003e\u003cbr/\u003e\n    Level up an Industry Area up to Level 5\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/085100a5c28f51e0bf3f67eac2aeb90d6a178f16.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/085100a5c28f51e0bf3f67eac2aeb90d6a178f16.jpg\" alt=\"Serial Investor\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Serial Investor\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSerial Investor\u003c/strong\u003e\u003cbr/\u003e\n    Build 10 Industry Areas\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/a76a29180783949813ba3743dc9de166c34f68c4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/a76a29180783949813ba3743dc9de166c34f68c4.jpg\" alt=\"Offshore Assets\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Offshore Assets\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOffshore Assets\u003c/strong\u003e\u003cbr/\u003e\n    Build five Oil Rigs\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/e4aa41ba7bcdfa8c300cf0b3197b8ecdeab88eeb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/e4aa41ba7bcdfa8c300cf0b3197b8ecdeab88eeb.jpg\" alt=\"Industry Tycoon\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Industry Tycoon\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIndustry Tycoon\u003c/strong\u003e\u003cbr/\u003e\n    Build all Unique Factories\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/c589537aed2bd958c6aa20998d7e74406c12d6f7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/c589537aed2bd958c6aa20998d7e74406c12d6f7.jpg\" alt=\"Postman\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Postman\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePostman\u003c/strong\u003e\u003cbr/\u003e\n    Deliver 1 000 000 units of Mail\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/a94671f61c4620387f2b7d1c1e04a5c48cbc34df.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/a94671f61c4620387f2b7d1c1e04a5c48cbc34df.jpg\" alt=\"Just Tolling\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Just Tolling\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJust Tolling\u003c/strong\u003e\u003cbr/\u003e\n    Build one of each road Toll Booth buildings\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/1b80ff8c948cb8ddb125b08eb7d92862291a4d48.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/1b80ff8c948cb8ddb125b08eb7d92862291a4d48.jpg\" alt=\"Scaling Up\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Scaling Up\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eScaling Up\u003c/strong\u003e\u003cbr/\u003e\n    Build 10 Warehouse buildings\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/fc693322d72982a4388aa2fb49c2a1ab3e44912d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/fc693322d72982a4388aa2fb49c2a1ab3e44912d.jpg\" alt=\"Student Housing Project\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Student Housing Project\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStudent Housing Project\u003c/strong\u003e\u003cbr/\u003e\n    Have total number of 10 Dormitories\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/f7bcfd3f548979dad27bf1481c03d531907c924a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/f7bcfd3f548979dad27bf1481c03d531907c924a.jpg\" alt=\"Education Nation\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Education Nation\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEducation Nation\u003c/strong\u003e\u003cbr/\u003e\n    Have 15 000 students studying on campuses at the same time\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/713ae20cec357b87e3ea81df9eb9cf4c21b41d63.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/713ae20cec357b87e3ea81df9eb9cf4c21b41d63.jpg\" alt=\"Distinguished Academics\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Distinguished Academics\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDistinguished Academics\u003c/strong\u003e\u003cbr/\u003e\n    Have one campus reach \u0026#34;Prestigious\u0026#34; in reputation\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/cacb40822b1da441bf29461481d686c54714386d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/cacb40822b1da441bf29461481d686c54714386d.jpg\" alt=\"Varsity Sports Patron\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Varsity Sports Patron\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVarsity Sports Patron\u003c/strong\u003e\u003cbr/\u003e\n    Build all five varsity sports arenas on one campus in one city\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/9ed255954c7bf91acc6c7fcb7cb136c9d7ca0ed3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/9ed255954c7bf91acc6c7fcb7cb136c9d7ca0ed3.jpg\" alt=\"Higher Learning\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Higher Learning\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHigher Learning\u003c/strong\u003e\u003cbr/\u003e\n    Build all Campus Area types with all of their respective campus buildings and faculties\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/b79d034439aeb0e326dc189ed73b9f6ea0200940.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/b79d034439aeb0e326dc189ed73b9f6ea0200940.jpg\" alt=\"Academic Scholar\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Academic Scholar\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAcademic Scholar\u003c/strong\u003e\u003cbr/\u003e\n    Create 100 academic works\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/525b16eebdf34778260ad23d222d34ccefd8d8f7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/525b16eebdf34778260ad23d222d34ccefd8d8f7.jpg\" alt=\"For For-Profit Education!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: For For-Profit Education!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFor For-Profit Education!\u003c/strong\u003e\u003cbr/\u003e\n    Cover one campus area upkeep cost entirely with tuition fees paid by students in a campus area with more than 5000 students\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/ae779090f767a576b8ef7d7e27371def6660597a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/ae779090f767a576b8ef7d7e27371def6660597a.jpg\" alt=\"Aquaculture\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Aquaculture\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAquaculture\u003c/strong\u003e\u003cbr/\u003e\n    Farm 7 500 000 units of fish and sea plants.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/ec61ccbdbe140fc0c30d81ce431405509e1b311a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/ec61ccbdbe140fc0c30d81ce431405509e1b311a.jpg\" alt=\"Fisher King\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fisher King\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFisher King\u003c/strong\u003e\u003cbr/\u003e\n    Catch 10 000 000 units of fish.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/1138fae1425d22565ff366b9efcae586c3902c8c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/1138fae1425d22565ff366b9efcae586c3902c8c.jpg\" alt=\"Multidisciplinary Transport Tycoon\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Multidisciplinary Transport Tycoon\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMultidisciplinary Transport Tycoon\u003c/strong\u003e\u003cbr/\u003e\n    Build one of each of the following transport hubs: Underground Metro-Intercity Bus Hub, Bus-Intercity Bus Hub, Train-Metro Hub, Metropolitan Airport, Bus-Metro Hub\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/1940685ecb3a2f0f6191de7172c70d3a42e10089.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/1940685ecb3a2f0f6191de7172c70d3a42e10089.jpg\" alt=\"Trolleyface\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Trolleyface\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTrolleyface\u003c/strong\u003e\u003cbr/\u003e\n    Transport 35 000 amount of citizens in trolleybuses.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/47b8f275e264bd38cea4812fd861a7e69574fc14.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/47b8f275e264bd38cea4812fd861a7e69574fc14.jpg\" alt=\"World of Rotorcraft\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: World of Rotorcraft\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWorld of Rotorcraft\u003c/strong\u003e\u003cbr/\u003e\n    Transport 15 000 amount of citizens in passenger helicopters.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/1dd0ca0eb4a7c4d03769e4d27d1a1720e638279d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/1dd0ca0eb4a7c4d03769e4d27d1a1720e638279d.jpg\" alt=\"Come Fly With Me!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Come Fly With Me!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCome Fly With Me!\u003c/strong\u003e\u003cbr/\u003e\n    Have 60 tourists visit the Aviation Club during one week.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/114324962c07551d006e352cda7d8971b00d0756.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/114324962c07551d006e352cda7d8971b00d0756.jpg\" alt=\"The Waters of Our Lives\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Waters of Our Lives\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Waters of Our Lives\u003c/strong\u003e\u003cbr/\u003e\n    Treat 20 000 000 m3 of waste water using the Inland Water Treatment Plants.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/3f107264353bfa77f4f857a0e41832b7c2f354c8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/3f107264353bfa77f4f857a0e41832b7c2f354c8.jpg\" alt=\"Airline Tycoon \" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Airline Tycoon\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAirline Tycoon \u003c/strong\u003e\u003cbr/\u003e\n    Have an airport area reach level 3.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/6fc87233d7dded7fe2becf4c04895e65d1db88f2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/6fc87233d7dded7fe2becf4c04895e65d1db88f2.jpg\" alt=\"Airlifter\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Airlifter\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAirlifter\u003c/strong\u003e\u003cbr/\u003e\n    Have 10 000 total passengers travel through an airport area. \n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/9f8192eda92253aab09c90cee7333651090a3e21.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/9f8192eda92253aab09c90cee7333651090a3e21.jpg\" alt=\"Airport Architect\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Airport Architect\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAirport Architect\u003c/strong\u003e\u003cbr/\u003e\n    Build an airport area with a terminal, a runway and an aircraft stand.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/9701477dfd7f596df4e002230f5ceb62334deb7a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/9701477dfd7f596df4e002230f5ceb62334deb7a.jpg\" alt=\"Airfield Expertise\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Airfield Expertise\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAirfield Expertise\u003c/strong\u003e\u003cbr/\u003e\n    Build an airport area with an area of 25000 cells.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/c48b9478baa997bcdcca1e698edc87f0bc862133.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/c48b9478baa997bcdcca1e698edc87f0bc862133.jpg\" alt=\"High-cost-carrier \" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: High-cost-carrier\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHigh-cost-carrier \u003c/strong\u003e\u003cbr/\u003e\n    Set the airline ticket price slider to the maximum price. \n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/9fa23a1a5f5baf487db7042b4e6455a4d8bb61fd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/9fa23a1a5f5baf487db7042b4e6455a4d8bb61fd.jpg\" alt=\"Garbage Collection Issues\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Garbage Collection Issues\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGarbage Collection Issues\u003c/strong\u003e\u003cbr/\u003e\n    Have 5 garbage service points reach their capacity limit.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/3a942617a0a01b4b284118c9125e79bb5e99a19c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/3a942617a0a01b4b284118c9125e79bb5e99a19c.jpg\" alt=\"The Sweetest City\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Sweetest City\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Sweetest City\u003c/strong\u003e\u003cbr/\u003e\n    Build 10 ice cream stand plazas in one pedestrian area.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/7e47d8ade33ff058f81fb53af5ca4387acc0394e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/7e47d8ade33ff058f81fb53af5ca4387acc0394e.jpg\" alt=\"Very Focused\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Very Focused\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVery Focused\u003c/strong\u003e\u003cbr/\u003e\n    Have one pedestrian area focused on residential, one in commercial, and one in workplace zones.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/9d6ff3b0458ec73e9f12c6785412e9d462ec3123.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/9d6ff3b0458ec73e9f12c6785412e9d462ec3123.jpg\" alt=\"Can\u0026#39;t Buy Me Love \" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Can\u0026#39;t Buy Me Love\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCan\u0026#39;t Buy Me Love \u003c/strong\u003e\u003cbr/\u003e\n    Earn ₡5,000,000 through investments.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/a8d82b5149393d899558e8d9bc72783d0c328a17.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/a8d82b5149393d899558e8d9bc72783d0c328a17.jpg\" alt=\"All In\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: All In\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAll In\u003c/strong\u003e\u003cbr/\u003e\n    Have at least ₡1 000 000 in cash. Put all of your available cash into investments, then don\u0026#39;t sell any investments for one month.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/908a8f276cf6296b2ab54e11cd569ed0fbc61230.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/908a8f276cf6296b2ab54e11cd569ed0fbc61230.jpg\" alt=\"Cash Flow\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cash Flow\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCash Flow\u003c/strong\u003e\u003cbr/\u003e\n    Have a bank building get flooded.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/c0dc953f65f28172246871f974ee303370312070.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/c0dc953f65f28172246871f974ee303370312070.jpg\" alt=\"So Much Cash!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: So Much Cash!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSo Much Cash!\u003c/strong\u003e\u003cbr/\u003e\n    Transport ₡2,000,000 using cash transport vans in one week.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/98d8f010459a2543005ac583e532eacb6a0ea430.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/98d8f010459a2543005ac583e532eacb6a0ea430.jpg\" alt=\"No risk, no fun!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: No risk, no fun!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNo risk, no fun!\u003c/strong\u003e\u003cbr/\u003e\n    Take a loan in order to make an investment.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/72e5b47b6dfde690dcaa4d60b4f04ee0b09d009f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/72e5b47b6dfde690dcaa4d60b4f04ee0b09d009f.jpg\" alt=\"Very Accommodating\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Very Accommodating\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVery Accommodating\u003c/strong\u003e\u003cbr/\u003e\n    Have total of 500 weekly guests to stay at hotels.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/feac41e04cd87128177fa62c5f4bd795823f7073.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/feac41e04cd87128177fa62c5f4bd795823f7073.jpg\" alt=\"Peak Season\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Peak Season\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePeak Season\u003c/strong\u003e\u003cbr/\u003e\n    Organize three hotel events.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/a8b8f9494a7277894bd35afa371eb9b09d43d43f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/a8b8f9494a7277894bd35afa371eb9b09d43d43f.jpg\" alt=\"Fully Booked!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fully Booked!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFully Booked!\u003c/strong\u003e\u003cbr/\u003e\n    Have the maximum possible number of guests stay at any 5 star hotel with at least 100 rooms.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/255710/library_600x900.jpg\" alt=\"Colossal Order Game box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/255710/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eColossal Order Game\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 3.94%\"\u003e\n        3.94%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e5/127 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e7.8h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2023-08-20\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (5)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/f51e370319e24698845c2fac6e30f0effd2e193c.jpg\" alt=\"Pioneer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePioneer\u003c/strong\u003e\u003cbr\u003e\n    Create your very first city\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 25, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/d102f916e9a7f2118422f633fe93d97e9ac10f0e.jpg\" alt=\"Power at Your Fingertips\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePower at Your Fingertips\u003c/strong\u003e\u003cbr\u003e\n    Unlock all city services\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 29, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/f3926197a6315c6684a84fdde4e943e77baeae15.jpg\" alt=\"Unpopular Mayor\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUnpopular Mayor\u003c/strong\u003e\u003cbr\u003e\n    Have 15% happiness\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 25, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/4e51a8469c5e8cb3fbf9261431b272a27d102675.jpg\" alt=\"Singing In The-\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSinging In The-\u003c/strong\u003e\u003cbr\u003e\n    Experience rain\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 25, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/786867741ae8555fe7efd862554481c09e9b7f69.jpg\" alt=\"Foggy Weather\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFoggy Weather\u003c/strong\u003e\u003cbr\u003e\n    Experience fog\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 29, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (122)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/7ae428d493444de423e30ac52d2f5596e9ec897c.jpg\" alt=\"Decorator\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDecorator\u003c/strong\u003e\u003cbr\u003e\n    Use the Asset Editor to make your very own asset\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/540c8fc47dfec059716cc59d3a0ea1302fe8e57e.jpg\" alt=\"Terraformer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTerraformer\u003c/strong\u003e\u003cbr\u003e\n    Create a map\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/85577ccfd31cbe6b90f89276c91e6b9a051ea26d.jpg\" alt=\"Well Informed\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWell Informed\u003c/strong\u003e\u003cbr\u003e\n    Have a look at all the different info-view panels\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/b626c6ab334cc333aa20ab00fc1a0aecabae8ec4.jpg\" alt=\"City Planner\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCity Planner\u003c/strong\u003e\u003cbr\u003e\n    Use the district tool to draw 3 districts\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/6541f8d9bb0240fc766c13e80a412eda8d871a4b.jpg\" alt=\"Lawmaker\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLawmaker\u003c/strong\u003e\u003cbr\u003e\n    Apply a policy to a district you created\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/6445d60a26367c966c9a43918db591a07d034014.jpg\" alt=\"Heavenly City\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHeavenly City\u003c/strong\u003e\u003cbr\u003e\n    Unlock Monuments\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/d1f33952f47f0077ca5c0f57e542c8abdce6b73f.jpg\" alt=\"Medic!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMedic!\u003c/strong\u003e\u003cbr\u003e\n    Build the Medical Center Monument\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/992cf64711ac82ecfe74bd49397ea22c37a8ed80.jpg\" alt=\"A Huge Hadron\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Huge Hadron\u003c/strong\u003e\u003cbr\u003e\n    Build the Hadron Collider Monument\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/187d20311d41311d1f9a06e57b751227e430b392.jpg\" alt=\"Beam Me Up\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeam Me Up\u003c/strong\u003e\u003cbr\u003e\n    Build the Space Elevator Monument\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/b63122b38ac27c961cec97d92c63d14831d63005.jpg\" alt=\"New Eden\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNew Eden\u003c/strong\u003e\u003cbr\u003e\n    Build the Eden Project Monument\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/34b10fb3af0b75024c97897127162173daf81338.jpg\" alt=\"Short Fuse\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShort Fuse\u003c/strong\u003e\u003cbr\u003e\n    Build the Fusion Power Plant Monument\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/b1eac0bcd72fa73e46ebb0d2643c147d542f76d2.jpg\" alt=\"I Want It All\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI Want It All\u003c/strong\u003e\u003cbr\u003e\n    Unlock every single building in the game\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/f393b902b3861aedf1b4520a0a4f62d236bb30b6.jpg\" alt=\"Metropolis\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMetropolis\u003c/strong\u003e\u003cbr\u003e\n    Have a population of 100,000 in your city\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/16d2baf4df8f73264d4dd8f60f8a9fa9a3f0e42f.jpg\" alt=\"Distroy\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDistroy\u003c/strong\u003e\u003cbr\u003e\n    Have more than 10 districts with unique policies\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/8790cb98badb3905c2fd8344faee52f0174650c4.jpg\" alt=\"City in Motion\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCity in Motion\u003c/strong\u003e\u003cbr\u003e\n    Have 20 transport lines\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/b93b0fac0a73c4c7bc6a6122bb1c024a56951908.jpg\" alt=\"City in Motion 2\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCity in Motion 2\u003c/strong\u003e\u003cbr\u003e\n    Have 50 transport lines\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/ae7d06a8b7119c8813522621fdacd881912e7068.jpg\" alt=\"Climbing the Social Ladder\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eClimbing the Social Ladder\u003c/strong\u003e\u003cbr\u003e\n    Have a Citizen educated to level 3 from 0\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/505d1a2ceb49bb82b6bb98e29468528ee6868948.jpg\" alt=\"Rolling in Dough\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRolling in Dough\u003c/strong\u003e\u003cbr\u003e\n    Earn 15,000 per week\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/1cf9942c6dd398e05db46b38a7f6ac8a55283df8.jpg\" alt=\"Frenetic Player\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFrenetic Player\u003c/strong\u003e\u003cbr\u003e\n    Click on a police building 100 times in a row\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/6b214b90b5b13f8dfb7d0c1d0710a924eb09c930.jpg\" alt=\"Happy Town\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHappy Town\u003c/strong\u003e\u003cbr\u003e\n    Have more than 95% city happiness for 5 years\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/9843637355b3092d1e2afd072e5142e8e5418388.jpg\" alt=\"Tough City\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTough City\u003c/strong\u003e\u003cbr\u003e\n    Have the city survive a crime rate of over 40% for 2 years\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/b05ddab782a8997f4c37ecb8880bc718a33cae5d.jpg\" alt=\"Fire Watch\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFire Watch\u003c/strong\u003e\u003cbr\u003e\n    Have 5 Fire Stations\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/2e2341961e900dac26e4d34c352afca5d968ae27.jpg\" alt=\"The Safest Town\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Safest Town\u003c/strong\u003e\u003cbr\u003e\n    Have 5 Police Headquarters\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/2056bb394a71c3a332d37b3336a1cf9a4fed8bdd.jpg\" alt=\"Professional Dumper\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eProfessional Dumper\u003c/strong\u003e\u003cbr\u003e\n    Fill five landfill sites\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/f662191891659eb3669261ffde06a83946dbdcce.jpg\" alt=\"Earthloving City\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEarthloving City\u003c/strong\u003e\u003cbr\u003e\n    No water or ground pollution in a city of over 10,000 residents\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/f72e55e7c1f77fcffdcd9abb451a50673d013adc.jpg\" alt=\"Higher Education\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHigher Education\u003c/strong\u003e\u003cbr\u003e\n    Have over 70% of citizens highly educated in a city of over 10,000 people\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/23befb8e445a2dd0bb5747e46f12110dc33d8522.jpg\" alt=\"SIMulated City\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSIMulated City\u003c/strong\u003e\u003cbr\u003e\n    Have an area the size of nine map tiles\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/947321797393d776defa66a1b613c50f21bf1609.jpg\" alt=\"Safe City\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSafe City\u003c/strong\u003e\u003cbr\u003e\n    Keep the crime rate under 10% for 4 years straight\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/7cf6be77e0dcfe36eb7823152bf30dbb4ee415f6.jpg\" alt=\"Power to the People\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePower to the People\u003c/strong\u003e\u003cbr\u003e\n    Have the industry tax rate over 5% higher than either residential tax rate for one year\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/acdae03b84de3e18cd067499ebf7fe76ccf795ad.jpg\" alt=\"Make Them Pay\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMake Them Pay\u003c/strong\u003e\u003cbr\u003e\n    Have both residential tax rates over 5% higher than industry for one year\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/5957fdecb8711a5cdaaef6fa26fe6eea07382550.jpg\" alt=\"Leisure Suites\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLeisure Suites\u003c/strong\u003e\u003cbr\u003e\n    Have 1000 squares of leisure specialized commercial zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/6bfc35d88a6bbddaeed453b960bf2ae5de94909e.jpg\" alt=\"Playing With The Boys\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePlaying With The Boys\u003c/strong\u003e\u003cbr\u003e\n    Have 1000 squares of beach specialized commercial zone\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/b05388a05efbf2ddc15bb85c4f8c9282c1bb7e83.jpg\" alt=\"Prison Break\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePrison Break\u003c/strong\u003e\u003cbr\u003e\n    Have 15 Prisons in the city\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/9808b1846e1d0190907f884d0f6e93c06ebed43d.jpg\" alt=\"1001 Nights\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e1001 Nights\u003c/strong\u003e\u003cbr\u003e\n    Experience 1001 nights in the game\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/94ffdc15b00712544259ee15081d596007a0ac99.jpg\" alt=\"Does My Bum Look Big In This?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDoes My Bum Look Big In This?\u003c/strong\u003e\u003cbr\u003e\n    Change Chirper look\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/d8ac5a57aaa70b933b83997cbaafcce22472c583.jpg\" alt=\"Brrr!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBrrr!\u003c/strong\u003e\u003cbr\u003e\n    Create a winter map in map editor\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/0fd237c8f2b71a01bfe033c1bdde9f172ba77fb5.jpg\" alt=\"Get Your Snowshoes Ready!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGet Your Snowshoes Ready!\u003c/strong\u003e\u003cbr\u003e\n    Experience snowfall\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/dd96b1e995e5c4aaca6bb230b990c9dd3ec5780b.jpg\" alt=\"Here's A Tram\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHere's A Tram\u003c/strong\u003e\u003cbr\u003e\n    Have one tram line active\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/af07c99612d07754933fdcfdf620da5efb59f2f1.jpg\" alt=\"I Love Trams!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI Love Trams!\u003c/strong\u003e\u003cbr\u003e\n    Have 10 tram lines active\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/c49de36d4ec40208a911d51cf82af5b4d3855853.jpg\" alt=\"Are They Naked In There?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAre They Naked In There?\u003c/strong\u003e\u003cbr\u003e\n    Have a Sauna in the city\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/0681aa3b0d4973287f9f7721796a04e99ebd3c1b.jpg\" alt=\"It's Wintertime!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt's Wintertime!\u003c/strong\u003e\u003cbr\u003e\n    Change Chirper to a winter look\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/879a9b523e6873b5770ea3c38ee65ffad50dfff7.jpg\" alt=\"Speed up!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpeed up!\u003c/strong\u003e\u003cbr\u003e\n    Boost 100 km of streets with Road maintenance service\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/f7d8990567ecaa45358ca0add538e74b00781263.jpg\" alt=\"The Plowmaster\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Plowmaster\u003c/strong\u003e\u003cbr\u003e\n    Have snowplows collect 2000000 units of snow\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/526191c6cdfdd68930dde9282a12dc030f178672.jpg\" alt=\"Quay-King\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eQuay-King\u003c/strong\u003e\u003cbr\u003e\n    Build one quay\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/a9d04d9d4ab46a1629e1ae2fb9c76559ea3ccd81.jpg\" alt=\"With Canals You Can!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWith Canals You Can!\u003c/strong\u003e\u003cbr\u003e\n    Build one canal\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/482ad26f9099ebd3d4579f444ba00b6c557254a8.jpg\" alt=\"We need snorkels!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWe need snorkels!\u003c/strong\u003e\u003cbr\u003e\n    Experience a tsunami\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/812e1f7b47f2927e67a95eefdc5101289b24f230.jpg\" alt=\"Shake It Up!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShake It Up!\u003c/strong\u003e\u003cbr\u003e\n    Experience an earthquake\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/69de971ca41cc54a71a8de6cc7f6f4045f6bbd0d.jpg\" alt=\"It's heading right for us!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt's heading right for us!\u003c/strong\u003e\u003cbr\u003e\n    Experience a meteor strike\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/d6f8c4893adab0e2a0ae207449b7d1d5fe8a4a13.jpg\" alt=\"Drop the Base\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDrop the Base\u003c/strong\u003e\u003cbr\u003e\n    Experience a sinkhole\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/0a9ac031eb959d6d62b7f3aeda84de183263dfd3.jpg\" alt=\"Run, Bambi!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRun, Bambi!\u003c/strong\u003e\u003cbr\u003e\n    Experience a forest fire\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/f4f27d8fd82440b0631fc0b09abe2a71e53f19b7.jpg\" alt=\"Thunder and Lightning\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThunder and Lightning\u003c/strong\u003e\u003cbr\u003e\n    Experience a thunderstorm\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/fcb9bd48f5bc3e19f8e8c7983d7be485ca0a5af7.jpg\" alt=\"Twist and shout\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTwist and shout\u003c/strong\u003e\u003cbr\u003e\n    Experience a tornado\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/6b8fde442c9838935d01c691aa0c83bc1ce8bbd1.jpg\" alt=\"What the...?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhat the...?\u003c/strong\u003e\u003cbr\u003e\n    Experience a special disaster\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/9dc92f1708b2117171252b74053a7ca2fc5efa88.jpg\" alt=\"Eternal City\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEternal City\u003c/strong\u003e\u003cbr\u003e\n    Have ten disasters hit the same city\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/5fcb02697311440dc14889967c969a1f08e77b88.jpg\" alt=\"Creator\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCreator\u003c/strong\u003e\u003cbr\u003e\n    Create 10 scenarios\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/7ce2751fa918fb495df6e0efa13395a539da2c00.jpg\" alt=\"We Have A Winner!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWe Have A Winner!\u003c/strong\u003e\u003cbr\u003e\n    Win 10 scenarios\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/ef0cadace0de71219e007a002b2073eae6d5cb87.jpg\" alt=\"The Underdog\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Underdog\u003c/strong\u003e\u003cbr\u003e\n    Lose 10 scenarios\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/c626f1a9c731acf56e290378a62b5cf8d5e3223d.jpg\" alt=\"Rejoice And Be Ferry\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRejoice And Be Ferry\u003c/strong\u003e\u003cbr\u003e\n    Have 3 ferry lines\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/23613cd3c3f54d5e2fe96be0d7697214a09412cb.jpg\" alt=\"Ferry Faerie\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFerry Faerie\u003c/strong\u003e\u003cbr\u003e\n    Have 15 ferry lines\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/a473d44d3299b19357ac04d8e07f42b5ae0c55ed.jpg\" alt=\"Triorail\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTriorail\u003c/strong\u003e\u003cbr\u003e\n    Have 3 monorail lines\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/cec24b6573cde47a79b7099ab56514194fec0f32.jpg\" alt=\"Not So Mono\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNot So Mono\u003c/strong\u003e\u003cbr\u003e\n    Have 10 monorail lines\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/8afbe22600a1894519408d4655ac21d96c63269e.jpg\" alt=\"Clark Cable\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eClark Cable\u003c/strong\u003e\u003cbr\u003e\n    Transport 5 000 passengers with Cable Cars\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/c179566a0c83525a0237770c25bfaffc0dd90703.jpg\" alt=\"Cables Galore\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCables Galore\u003c/strong\u003e\u003cbr\u003e\n    Transport 20 000 passengers with Cable Cars\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/e1c44173beab8151d791d6cf8b36e5cf5fbb5833.jpg\" alt=\"Blimp? Blimp.\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlimp? Blimp.\u003c/strong\u003e\u003cbr\u003e\n    Have 3 blimp lines\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/9e258719af9a5eb967626ac1120abeb7947ad668.jpg\" alt=\"Put Some Blimp In Your Blimp\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePut Some Blimp In Your Blimp\u003c/strong\u003e\u003cbr\u003e\n    Have 10 blimp lines\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/1269e47e5bb1468c446bed733747c39442b16318.jpg\" alt=\"Combo Breaker!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCombo Breaker!\u003c/strong\u003e\u003cbr\u003e\n    Have one Ferry and Bus Exchange Stop, Metro-Monorail-Train Hub, Monorail-Bus Hub and Multiplatform Train Station\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/13cdae36c65bcc86e2488fb8f6c4aca97a18a18b.jpg\" alt=\"Nomen Est Omen\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNomen Est Omen\u003c/strong\u003e\u003cbr\u003e\n    Name a road\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/7c32a125b2e40e14225b3fbb5093b351a08acafd.jpg\" alt=\"Centurion\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCenturion\u003c/strong\u003e\u003cbr\u003e\n    Name 100 roads\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/e7247e809d77f4fc87fe06431832ffd176f4bd88.jpg\" alt=\"It's Called Steve\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt's Called Steve\u003c/strong\u003e\u003cbr\u003e\n    Name a road \"Steve\"\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/cfd1de794b2b101c5f7d469d63aad4588abab48e.jpg\" alt=\"Totally In Motion\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTotally In Motion\u003c/strong\u003e\u003cbr\u003e\n    Win all three Mass Transit scenarios\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/32cb261befe27b99898bbe9c5cead7f18ebf58d2.jpg\" alt=\"Reporting!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eReporting!\u003c/strong\u003e\u003cbr\u003e\n    Check a route of a citizen\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/b07e2c7996da391dfb173693272acb43fc993b31.jpg\" alt=\"Super Self-Sufficient\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSuper Self-Sufficient\u003c/strong\u003e\u003cbr\u003e\n    Have all residential zone in your city be specialized Self-Sufficient Housing\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/c93f2e23f33877f1630e7ba1daf54667f9c674ea.jpg\" alt=\"I to the T\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI to the T\u003c/strong\u003e\u003cbr\u003e\n    Have all office zone in your city be specialized IT-Cluster\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/b06a14c0f620c095ce480670a0fd0247ffafa6a5.jpg\" alt=\"Organistic\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOrganistic\u003c/strong\u003e\u003cbr\u003e\n    Have all commercial zone in your city be specialized Organic and Local Produce\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/d27e322ac07a467f5788d72922ad40ed378d5b43.jpg\" alt=\"Green Energy\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGreen Energy\u003c/strong\u003e\u003cbr\u003e\n    Produce all electricity without using raw materials\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/d353a0a27111d00a9458a6f13f6a990f4bf4ba5a.jpg\" alt=\"Friendly Teaching\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFriendly Teaching\u003c/strong\u003e\u003cbr\u003e\n    Build one of each eco-friendly schools: Community School, Institute of Creative Arts and Modern Technology Institute\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/31fd5b1bc556ef6aae811ea95ea1520909029f30.jpg\" alt=\"Greenest City\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGreenest City\u003c/strong\u003e\u003cbr\u003e\n    Have no polluting industry in your city, only Office Zone and specialized zones\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/e21db3be693974bfc52c8b09062f6b7cc39bfa50.jpg\" alt=\"The Park To Rule All Parks\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Park To Rule All Parks\u003c/strong\u003e\u003cbr\u003e\n    Have a maximum level park made with Park Tool\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/a3bb58ecec4c209d59e707486d2498970957ec15.jpg\" alt=\"Parking Not Forbidden\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eParking Not Forbidden\u003c/strong\u003e\u003cbr\u003e\n    Have 10 parks made with Park Tool\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/2b84eb8d85e904630c74f437b8a8543cdb71ae42.jpg\" alt=\"Z00\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eZ00\u003c/strong\u003e\u003cbr\u003e\n    Have a park with all zoo buildings built in it\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/936000f92f22d972f6c7ac72b3bcfba03b524738.jpg\" alt=\"Ambulare\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAmbulare\u003c/strong\u003e\u003cbr\u003e\n    Have 5 pedestrian Walking Tour lines\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/443a290cf1287f9934474782419616f2b950f999.jpg\" alt=\"Maintain That Park\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaintain That Park\u003c/strong\u003e\u003cbr\u003e\n    Have a Park Maintenance Service and a Zoo, Nature Reserve and Amusement Park in your city\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/88539ad37cdf3f2f8b32cf7d8e2e2edb93e4f535.jpg\" alt=\"Coaster Tycoon\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCoaster Tycoon\u003c/strong\u003e\u003cbr\u003e\n    Have a park with all Amusement Park buildings built in it\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/e2aa7d60798689e5b28f21f26bcb133d95a8b866.jpg\" alt=\"Naturally\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNaturally\u003c/strong\u003e\u003cbr\u003e\n    Have a park with all Nature Reserve buildings built in it\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/90d85661e3e6fb6f8f84f36f47ba74d2db027b2d.jpg\" alt=\"Sights To Be Seen\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSights To Be Seen\u003c/strong\u003e\u003cbr\u003e\n    Have 15 Sightseeing Bus lines\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/2e16fbc2c6b13527657bda871acf927fc27ee73f.jpg\" alt=\"Full Capacity\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFull Capacity\u003c/strong\u003e\u003cbr\u003e\n    Level up an Industry Area up to Level 5\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/085100a5c28f51e0bf3f67eac2aeb90d6a178f16.jpg\" alt=\"Serial Investor\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSerial Investor\u003c/strong\u003e\u003cbr\u003e\n    Build 10 Industry Areas\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/a76a29180783949813ba3743dc9de166c34f68c4.jpg\" alt=\"Offshore Assets\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOffshore Assets\u003c/strong\u003e\u003cbr\u003e\n    Build five Oil Rigs\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/e4aa41ba7bcdfa8c300cf0b3197b8ecdeab88eeb.jpg\" alt=\"Industry Tycoon\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIndustry Tycoon\u003c/strong\u003e\u003cbr\u003e\n    Build all Unique Factories\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/c589537aed2bd958c6aa20998d7e74406c12d6f7.jpg\" alt=\"Postman\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePostman\u003c/strong\u003e\u003cbr\u003e\n    Deliver 1 000 000 units of Mail\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/a94671f61c4620387f2b7d1c1e04a5c48cbc34df.jpg\" alt=\"Just Tolling\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJust Tolling\u003c/strong\u003e\u003cbr\u003e\n    Build one of each road Toll Booth buildings\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/1b80ff8c948cb8ddb125b08eb7d92862291a4d48.jpg\" alt=\"Scaling Up\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eScaling Up\u003c/strong\u003e\u003cbr\u003e\n    Build 10 Warehouse buildings\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/fc693322d72982a4388aa2fb49c2a1ab3e44912d.jpg\" alt=\"Student Housing Project\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStudent Housing Project\u003c/strong\u003e\u003cbr\u003e\n    Have total number of 10 Dormitories\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/f7bcfd3f548979dad27bf1481c03d531907c924a.jpg\" alt=\"Education Nation\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEducation Nation\u003c/strong\u003e\u003cbr\u003e\n    Have 15 000 students studying on campuses at the same time\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/713ae20cec357b87e3ea81df9eb9cf4c21b41d63.jpg\" alt=\"Distinguished Academics\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDistinguished Academics\u003c/strong\u003e\u003cbr\u003e\n    Have one campus reach \"Prestigious\" in reputation\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/cacb40822b1da441bf29461481d686c54714386d.jpg\" alt=\"Varsity Sports Patron\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVarsity Sports Patron\u003c/strong\u003e\u003cbr\u003e\n    Build all five varsity sports arenas on one campus in one city\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/9ed255954c7bf91acc6c7fcb7cb136c9d7ca0ed3.jpg\" alt=\"Higher Learning\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHigher Learning\u003c/strong\u003e\u003cbr\u003e\n    Build all Campus Area types with all of their respective campus buildings and faculties\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/b79d034439aeb0e326dc189ed73b9f6ea0200940.jpg\" alt=\"Academic Scholar\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAcademic Scholar\u003c/strong\u003e\u003cbr\u003e\n    Create 100 academic works\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/525b16eebdf34778260ad23d222d34ccefd8d8f7.jpg\" alt=\"For For-Profit Education!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFor For-Profit Education!\u003c/strong\u003e\u003cbr\u003e\n    Cover one campus area upkeep cost entirely with tuition fees paid by students in a campus area with more than 5000 students\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/ae779090f767a576b8ef7d7e27371def6660597a.jpg\" alt=\"Aquaculture\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAquaculture\u003c/strong\u003e\u003cbr\u003e\n    Farm 7 500 000 units of fish and sea plants.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/ec61ccbdbe140fc0c30d81ce431405509e1b311a.jpg\" alt=\"Fisher King\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFisher King\u003c/strong\u003e\u003cbr\u003e\n    Catch 10 000 000 units of fish.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/1138fae1425d22565ff366b9efcae586c3902c8c.jpg\" alt=\"Multidisciplinary Transport Tycoon\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMultidisciplinary Transport Tycoon\u003c/strong\u003e\u003cbr\u003e\n    Build one of each of the following transport hubs: Underground Metro-Intercity Bus Hub, Bus-Intercity Bus Hub, Train-Metro Hub, Metropolitan Airport, Bus-Metro Hub\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/1940685ecb3a2f0f6191de7172c70d3a42e10089.jpg\" alt=\"Trolleyface\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTrolleyface\u003c/strong\u003e\u003cbr\u003e\n    Transport 35 000 amount of citizens in trolleybuses.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/47b8f275e264bd38cea4812fd861a7e69574fc14.jpg\" alt=\"World of Rotorcraft\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWorld of Rotorcraft\u003c/strong\u003e\u003cbr\u003e\n    Transport 15 000 amount of citizens in passenger helicopters.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/1dd0ca0eb4a7c4d03769e4d27d1a1720e638279d.jpg\" alt=\"Come Fly With Me!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCome Fly With Me!\u003c/strong\u003e\u003cbr\u003e\n    Have 60 tourists visit the Aviation Club during one week.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/114324962c07551d006e352cda7d8971b00d0756.jpg\" alt=\"The Waters of Our Lives\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Waters of Our Lives\u003c/strong\u003e\u003cbr\u003e\n    Treat 20 000 000 m3 of waste water using the Inland Water Treatment Plants.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/3f107264353bfa77f4f857a0e41832b7c2f354c8.jpg\" alt=\"Airline Tycoon \" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAirline Tycoon \u003c/strong\u003e\u003cbr\u003e\n    Have an airport area reach level 3.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/6fc87233d7dded7fe2becf4c04895e65d1db88f2.jpg\" alt=\"Airlifter\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAirlifter\u003c/strong\u003e\u003cbr\u003e\n    Have 10 000 total passengers travel through an airport area. \n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/9f8192eda92253aab09c90cee7333651090a3e21.jpg\" alt=\"Airport Architect\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAirport Architect\u003c/strong\u003e\u003cbr\u003e\n    Build an airport area with a terminal, a runway and an aircraft stand.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/9701477dfd7f596df4e002230f5ceb62334deb7a.jpg\" alt=\"Airfield Expertise\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAirfield Expertise\u003c/strong\u003e\u003cbr\u003e\n    Build an airport area with an area of 25000 cells.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/c48b9478baa997bcdcca1e698edc87f0bc862133.jpg\" alt=\"High-cost-carrier \" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHigh-cost-carrier \u003c/strong\u003e\u003cbr\u003e\n    Set the airline ticket price slider to the maximum price. \n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/9fa23a1a5f5baf487db7042b4e6455a4d8bb61fd.jpg\" alt=\"Garbage Collection Issues\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGarbage Collection Issues\u003c/strong\u003e\u003cbr\u003e\n    Have 5 garbage service points reach their capacity limit.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/3a942617a0a01b4b284118c9125e79bb5e99a19c.jpg\" alt=\"The Sweetest City\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Sweetest City\u003c/strong\u003e\u003cbr\u003e\n    Build 10 ice cream stand plazas in one pedestrian area.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/7e47d8ade33ff058f81fb53af5ca4387acc0394e.jpg\" alt=\"Very Focused\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVery Focused\u003c/strong\u003e\u003cbr\u003e\n    Have one pedestrian area focused on residential, one in commercial, and one in workplace zones.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/9d6ff3b0458ec73e9f12c6785412e9d462ec3123.jpg\" alt=\"Can't Buy Me Love \" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCan't Buy Me Love \u003c/strong\u003e\u003cbr\u003e\n    Earn ₡5,000,000 through investments.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/a8d82b5149393d899558e8d9bc72783d0c328a17.jpg\" alt=\"All In\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAll In\u003c/strong\u003e\u003cbr\u003e\n    Have at least ₡1 000 000 in cash. Put all of your available cash into investments, then don't sell any investments for one month.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/908a8f276cf6296b2ab54e11cd569ed0fbc61230.jpg\" alt=\"Cash Flow\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCash Flow\u003c/strong\u003e\u003cbr\u003e\n    Have a bank building get flooded.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/c0dc953f65f28172246871f974ee303370312070.jpg\" alt=\"So Much Cash!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSo Much Cash!\u003c/strong\u003e\u003cbr\u003e\n    Transport ₡2,000,000 using cash transport vans in one week.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/98d8f010459a2543005ac583e532eacb6a0ea430.jpg\" alt=\"No risk, no fun!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNo risk, no fun!\u003c/strong\u003e\u003cbr\u003e\n    Take a loan in order to make an investment.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/72e5b47b6dfde690dcaa4d60b4f04ee0b09d009f.jpg\" alt=\"Very Accommodating\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVery Accommodating\u003c/strong\u003e\u003cbr\u003e\n    Have total of 500 weekly guests to stay at hotels.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/feac41e04cd87128177fa62c5f4bd795823f7073.jpg\" alt=\"Peak Season\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePeak Season\u003c/strong\u003e\u003cbr\u003e\n    Organize three hotel events.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/255710/a8b8f9494a7277894bd35afa371eb9b09d43d43f.jpg\" alt=\"Fully Booked!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFully Booked!\u003c/strong\u003e\u003cbr\u003e\n    Have the maximum possible number of guests stay at any 5 star hotel with at least 100 rooms.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Colossal Order Game - 3.94% complete with 5/127 achievements unlocked.",
      "date_published": "2023-08-20T00:00:00Z",
      "date_modified": "2023-08-20T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "colossal-order-game"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/poly-bridge-2/",
      "url": "https://go.waylonwalker.com/steam/poly-bridge-2/",
      "title": "Poly Bridge 2",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/1062160/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/1062160/library_600x900.jpg\" alt=\"Poly Bridge 2 box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/1062160/header.jpg\u0026#39;\"/ data-glightbox=\"description: Poly Bridge 2 box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003ePoly Bridge 2\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 9.09%\"\u003e\n        9.09%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e2/22 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e15.6h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2023-08-12\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (2)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/a5dea5f689314da5e8a473b817cc796b2b4c34f7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/a5dea5f689314da5e8a473b817cc796b2b4c34f7.jpg\" alt=\"Tutorial Complete!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tutorial Complete!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTutorial Complete!\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Tutorial.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: June 18, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/f4fb74418e533e205d4e9d3ee9b6c289949652be.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/f4fb74418e533e205d4e9d3ee9b6c289949652be.jpg\" alt=\"Half off\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Half off\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHalf off\u003c/strong\u003e\u003cbr/\u003e\n    Complete a level in the Main or Challenge Worlds with 50% of budget or less.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 12, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (20)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/6f6212b2867b0ee0f767e0b59b0f5387a4f32446.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/6f6212b2867b0ee0f767e0b59b0f5387a4f32446.jpg\" alt=\"Hydro Free\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hydro Free\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHydro Free\u003c/strong\u003e\u003cbr/\u003e\n    Complete a level with hydraulics in the Main or Challenge Worlds without using hydraulics, split joints are allowed.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/1cccd7ccd12f33327a8827cd4330e6e48afd82ee.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/1cccd7ccd12f33327a8827cd4330e6e48afd82ee.jpg\" alt=\"Watch What I Can Do!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Watch What I Can Do!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWatch What I Can Do!\u003c/strong\u003e\u003cbr/\u003e\n    Share a replay of your bridge to the Gallery in-game.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/f42dbceb0b5505af8ff9d2c0e6969fbad71b423e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/f42dbceb0b5505af8ff9d2c0e6969fbad71b423e.jpg\" alt=\"Workshoppin\u0026#39;\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Workshoppin\u0026#39;\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWorkshoppin\u0026#39;\u003c/strong\u003e\u003cbr/\u003e\n    Complete a Workshop Level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/6786a02c1d3b972d1f295268ef4ca5a9fb94073e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/6786a02c1d3b972d1f295268ef4ca5a9fb94073e.jpg\" alt=\"World Workshoppin\u0026#39;\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: World Workshoppin\u0026#39;\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWorld Workshoppin\u0026#39;\u003c/strong\u003e\u003cbr/\u003e\n    Complete a Workshop Campaign.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/48dd5eba609ca580e43eb3da67fe2a6ddac4be0e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/48dd5eba609ca580e43eb3da67fe2a6ddac4be0e.jpg\" alt=\"Novice Engineer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Novice Engineer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNovice Engineer\u003c/strong\u003e\u003cbr/\u003e\n    Complete a challenge level in the Challenge Worlds.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/dd8f8b7ed926b22c77b0b60ccc25402ffe908c4a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/dd8f8b7ed926b22c77b0b60ccc25402ffe908c4a.jpg\" alt=\"Apprentice Engineer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Apprentice Engineer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eApprentice Engineer\u003c/strong\u003e\u003cbr/\u003e\n    Complete a Challenge World.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/6a689539e89cfd73e6e7c6932f6744380a879fc7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/6a689539e89cfd73e6e7c6932f6744380a879fc7.jpg\" alt=\"Journeyman Engineer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Journeyman Engineer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJourneyman Engineer\u003c/strong\u003e\u003cbr/\u003e\n    Complete all Main and Challenge Campaign Worlds.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/7de7f08daf9214d85ea18af04d4f1a5857818ea6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/7de7f08daf9214d85ea18af04d4f1a5857818ea6.jpg\" alt=\"Master Engineer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Master Engineer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaster Engineer\u003c/strong\u003e\u003cbr/\u003e\n    Complete all Main and Challenge Worlds levels under budget and unbreaking.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/e704e40fd4a2e1ac8e5712a90e5483e2cc8b7d1c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/e704e40fd4a2e1ac8e5712a90e5483e2cc8b7d1c.jpg\" alt=\"Complete Pine Mountains\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Complete Pine Mountains\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eComplete Pine Mountains\u003c/strong\u003e\u003cbr/\u003e\n    Successfully complete all levels in Pine Mountains.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/d6daa9891b859a84d12261c58325559150131658.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/d6daa9891b859a84d12261c58325559150131658.jpg\" alt=\"Complete Pine Mountains Under Budget and Unbreaking\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Complete Pine Mountains Under Budget and Unbreaking\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eComplete Pine Mountains Under Budget and Unbreaking\u003c/strong\u003e\u003cbr/\u003e\n    Successfully complete all levels under budget and unbreaking in Pine Mountains.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/6e8465f407cb7bc8f5cf4af8aadabe95aeeda134.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/6e8465f407cb7bc8f5cf4af8aadabe95aeeda134.jpg\" alt=\"Complete Glowing Gorge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Complete Glowing Gorge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eComplete Glowing Gorge\u003c/strong\u003e\u003cbr/\u003e\n    Successfully complete all levels in Glowing Gorge.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/068a93b19dcbd2a10efda8b8636696d13382ea81.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/068a93b19dcbd2a10efda8b8636696d13382ea81.jpg\" alt=\"Complete Glowing Gorge Under Budget and Unbreaking\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Complete Glowing Gorge Under Budget and Unbreaking\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eComplete Glowing Gorge Under Budget and Unbreaking\u003c/strong\u003e\u003cbr/\u003e\n    Successfully complete all levels under budget and unbreaking in Glowing Gorge.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/efc5df41864a7ae16c13864b52afdb8e5429f318.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/efc5df41864a7ae16c13864b52afdb8e5429f318.jpg\" alt=\"Complete Tranquil Oasis\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Complete Tranquil Oasis\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eComplete Tranquil Oasis\u003c/strong\u003e\u003cbr/\u003e\n    Successfully complete all levels in Tranquil Oasis.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/1debb5b049df7c1c2687d2dda8cf0a38f0d47b36.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/1debb5b049df7c1c2687d2dda8cf0a38f0d47b36.jpg\" alt=\"Complete Tranquil Oasis Under Budget and Unbreaking\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Complete Tranquil Oasis Under Budget and Unbreaking\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eComplete Tranquil Oasis Under Budget and Unbreaking\u003c/strong\u003e\u003cbr/\u003e\n    Successfully complete all levels under budget and unbreaking in Tranquil Oasis.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/ef5adb07d4c71de2b415d818ec4eb1158351109b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/ef5adb07d4c71de2b415d818ec4eb1158351109b.jpg\" alt=\"Complete Sanguine Gulch\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Complete Sanguine Gulch\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eComplete Sanguine Gulch\u003c/strong\u003e\u003cbr/\u003e\n    Successfully complete all levels in Sanguine Gulch.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/982cff2f6b046a00ec21e7372448faff01252272.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/982cff2f6b046a00ec21e7372448faff01252272.jpg\" alt=\"Complete Sanguine Gulch Under Budget and Unbreaking\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Complete Sanguine Gulch Under Budget and Unbreaking\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eComplete Sanguine Gulch Under Budget and Unbreaking\u003c/strong\u003e\u003cbr/\u003e\n    Successfully complete all levels under budget and unbreaking in Sanguine Gulch.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/2ccd32de1b0d8f0792480fc808467e630c4b6e47.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/2ccd32de1b0d8f0792480fc808467e630c4b6e47.jpg\" alt=\"Complete Serenity Valley\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Complete Serenity Valley\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eComplete Serenity Valley\u003c/strong\u003e\u003cbr/\u003e\n    Successfully complete all levels in Serenity Valley.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/976f1408888170d6e8ba33ca4f6080dcaa40249f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/976f1408888170d6e8ba33ca4f6080dcaa40249f.jpg\" alt=\"Complete Serenity Valley Under Budget and Unbreaking\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Complete Serenity Valley Under Budget and Unbreaking\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eComplete Serenity Valley Under Budget and Unbreaking\u003c/strong\u003e\u003cbr/\u003e\n    Successfully complete all levels under budget and unbreaking in Serenity Valley.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/ffc2865542c9b5e739018c77873dd33f9bedf57b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/ffc2865542c9b5e739018c77873dd33f9bedf57b.jpg\" alt=\"Complete Steamtown\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Complete Steamtown\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eComplete Steamtown\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/929d2e9d9c3709c96c8b18970ec392ebc74ce48f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/929d2e9d9c3709c96c8b18970ec392ebc74ce48f.jpg\" alt=\"Complete Steamtown Under Budget and Unbreaking\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Complete Steamtown Under Budget and Unbreaking\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eComplete Steamtown Under Budget and Unbreaking\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/1062160/library_600x900.jpg\" alt=\"Poly Bridge 2 box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/1062160/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003ePoly Bridge 2\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 9.09%\"\u003e\n        9.09%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e2/22 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e15.6h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2023-08-12\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (2)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/a5dea5f689314da5e8a473b817cc796b2b4c34f7.jpg\" alt=\"Tutorial Complete!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTutorial Complete!\u003c/strong\u003e\u003cbr\u003e\n    Complete the Tutorial.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: June 18, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/f4fb74418e533e205d4e9d3ee9b6c289949652be.jpg\" alt=\"Half off\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHalf off\u003c/strong\u003e\u003cbr\u003e\n    Complete a level in the Main or Challenge Worlds with 50% of budget or less.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 12, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (20)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/6f6212b2867b0ee0f767e0b59b0f5387a4f32446.jpg\" alt=\"Hydro Free\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHydro Free\u003c/strong\u003e\u003cbr\u003e\n    Complete a level with hydraulics in the Main or Challenge Worlds without using hydraulics, split joints are allowed.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/1cccd7ccd12f33327a8827cd4330e6e48afd82ee.jpg\" alt=\"Watch What I Can Do!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWatch What I Can Do!\u003c/strong\u003e\u003cbr\u003e\n    Share a replay of your bridge to the Gallery in-game.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/f42dbceb0b5505af8ff9d2c0e6969fbad71b423e.jpg\" alt=\"Workshoppin'\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWorkshoppin'\u003c/strong\u003e\u003cbr\u003e\n    Complete a Workshop Level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/6786a02c1d3b972d1f295268ef4ca5a9fb94073e.jpg\" alt=\"World Workshoppin'\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWorld Workshoppin'\u003c/strong\u003e\u003cbr\u003e\n    Complete a Workshop Campaign.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/48dd5eba609ca580e43eb3da67fe2a6ddac4be0e.jpg\" alt=\"Novice Engineer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNovice Engineer\u003c/strong\u003e\u003cbr\u003e\n    Complete a challenge level in the Challenge Worlds.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/dd8f8b7ed926b22c77b0b60ccc25402ffe908c4a.jpg\" alt=\"Apprentice Engineer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eApprentice Engineer\u003c/strong\u003e\u003cbr\u003e\n    Complete a Challenge World.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/6a689539e89cfd73e6e7c6932f6744380a879fc7.jpg\" alt=\"Journeyman Engineer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJourneyman Engineer\u003c/strong\u003e\u003cbr\u003e\n    Complete all Main and Challenge Campaign Worlds.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/7de7f08daf9214d85ea18af04d4f1a5857818ea6.jpg\" alt=\"Master Engineer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaster Engineer\u003c/strong\u003e\u003cbr\u003e\n    Complete all Main and Challenge Worlds levels under budget and unbreaking.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/e704e40fd4a2e1ac8e5712a90e5483e2cc8b7d1c.jpg\" alt=\"Complete Pine Mountains\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eComplete Pine Mountains\u003c/strong\u003e\u003cbr\u003e\n    Successfully complete all levels in Pine Mountains.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/d6daa9891b859a84d12261c58325559150131658.jpg\" alt=\"Complete Pine Mountains Under Budget and Unbreaking\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eComplete Pine Mountains Under Budget and Unbreaking\u003c/strong\u003e\u003cbr\u003e\n    Successfully complete all levels under budget and unbreaking in Pine Mountains.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/6e8465f407cb7bc8f5cf4af8aadabe95aeeda134.jpg\" alt=\"Complete Glowing Gorge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eComplete Glowing Gorge\u003c/strong\u003e\u003cbr\u003e\n    Successfully complete all levels in Glowing Gorge.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/068a93b19dcbd2a10efda8b8636696d13382ea81.jpg\" alt=\"Complete Glowing Gorge Under Budget and Unbreaking\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eComplete Glowing Gorge Under Budget and Unbreaking\u003c/strong\u003e\u003cbr\u003e\n    Successfully complete all levels under budget and unbreaking in Glowing Gorge.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/efc5df41864a7ae16c13864b52afdb8e5429f318.jpg\" alt=\"Complete Tranquil Oasis\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eComplete Tranquil Oasis\u003c/strong\u003e\u003cbr\u003e\n    Successfully complete all levels in Tranquil Oasis.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/1debb5b049df7c1c2687d2dda8cf0a38f0d47b36.jpg\" alt=\"Complete Tranquil Oasis Under Budget and Unbreaking\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eComplete Tranquil Oasis Under Budget and Unbreaking\u003c/strong\u003e\u003cbr\u003e\n    Successfully complete all levels under budget and unbreaking in Tranquil Oasis.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/ef5adb07d4c71de2b415d818ec4eb1158351109b.jpg\" alt=\"Complete Sanguine Gulch\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eComplete Sanguine Gulch\u003c/strong\u003e\u003cbr\u003e\n    Successfully complete all levels in Sanguine Gulch.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/982cff2f6b046a00ec21e7372448faff01252272.jpg\" alt=\"Complete Sanguine Gulch Under Budget and Unbreaking\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eComplete Sanguine Gulch Under Budget and Unbreaking\u003c/strong\u003e\u003cbr\u003e\n    Successfully complete all levels under budget and unbreaking in Sanguine Gulch.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/2ccd32de1b0d8f0792480fc808467e630c4b6e47.jpg\" alt=\"Complete Serenity Valley\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eComplete Serenity Valley\u003c/strong\u003e\u003cbr\u003e\n    Successfully complete all levels in Serenity Valley.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/976f1408888170d6e8ba33ca4f6080dcaa40249f.jpg\" alt=\"Complete Serenity Valley Under Budget and Unbreaking\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eComplete Serenity Valley Under Budget and Unbreaking\u003c/strong\u003e\u003cbr\u003e\n    Successfully complete all levels under budget and unbreaking in Serenity Valley.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/ffc2865542c9b5e739018c77873dd33f9bedf57b.jpg\" alt=\"Complete Steamtown\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eComplete Steamtown\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1062160/929d2e9d9c3709c96c8b18970ec392ebc74ce48f.jpg\" alt=\"Complete Steamtown Under Budget and Unbreaking\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eComplete Steamtown Under Budget and Unbreaking\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Poly Bridge 2 - 9.09% complete with 2/22 achievements unlocked.",
      "date_published": "2023-08-12T00:00:00Z",
      "date_modified": "2023-08-12T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "poly-bridge-2"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/mimpi-dreams/",
      "url": "https://go.waylonwalker.com/steam/mimpi-dreams/",
      "title": "Mimpi Dreams",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/444770/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/444770/library_600x900.jpg\" alt=\"Mimpi Dreams box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/444770/header.jpg\u0026#39;\"/ data-glightbox=\"description: Mimpi Dreams box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eMimpi Dreams\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 17.54%\"\u003e\n        17.54%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e10/57 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e18.1h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2023-08-04\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (10)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/ec463bd833d0bdf22c4b46d3cf3a4261bfc83e81.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/ec463bd833d0bdf22c4b46d3cf3a4261bfc83e81.jpg\" alt=\"Chicken Barbecue\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Chicken Barbecue\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChicken Barbecue\u003c/strong\u003e\u003cbr/\u003e\n    Get rid of the bird or make it stop singing.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 01, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/dec03b648747604e1e2fbf49e27bc8b12a519bdd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/dec03b648747604e1e2fbf49e27bc8b12a519bdd.jpg\" alt=\"Forest Bones\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Forest Bones\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eForest Bones\u003c/strong\u003e\u003cbr/\u003e\n    Find all the bones in Forest level.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 01, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/18e89e8540984902098f666b07cd1f72f6d6eb7b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/18e89e8540984902098f666b07cd1f72f6d6eb7b.jpg\" alt=\"Forest Bulbs\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Forest Bulbs\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eForest Bulbs\u003c/strong\u003e\u003cbr/\u003e\n    Find all the bulbs in Forest level.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 25, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/902b1d236ae5ee56086ea2b40e573cc0e14cbf05.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/902b1d236ae5ee56086ea2b40e573cc0e14cbf05.jpg\" alt=\"Forest Cleared\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Forest Cleared\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eForest Cleared\u003c/strong\u003e\u003cbr/\u003e\n    Find all the bulbs, bones and costumes in Forest level.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 25, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/f070f89bf4cced2e1dde904b0fe4e3e69d097f36.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/f070f89bf4cced2e1dde904b0fe4e3e69d097f36.jpg\" alt=\"Forest Torches\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Forest Torches\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eForest Torches\u003c/strong\u003e\u003cbr/\u003e\n    Light up all the torches in Forest level.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 01, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/009a2d71fa5a51c451b42b555d19a9486ed495b9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/009a2d71fa5a51c451b42b555d19a9486ed495b9.jpg\" alt=\"Animal Rights Activist\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Animal Rights Activist\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAnimal Rights Activist\u003c/strong\u003e\u003cbr/\u003e\n    Save lab rats before they will be killed by engineers.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 01, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/c17791fb4716b3a047565318dfef786017114b73.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/c17791fb4716b3a047565318dfef786017114b73.jpg\" alt=\"Cave Explorer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cave Explorer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCave Explorer\u003c/strong\u003e\u003cbr/\u003e\n    Explore the whole cave in Electricity level.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 01, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/82a7bfbd5924b8fe6259af72a2ef0073e58009df.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/82a7bfbd5924b8fe6259af72a2ef0073e58009df.jpg\" alt=\"Cloud Rider\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cloud Rider\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCloud Rider\u003c/strong\u003e\u003cbr/\u003e\n    Travel a distance of 20m on a cloud.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 02, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/d7c8c2ff937092b19acd8c80c289eef2bed6a394.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/d7c8c2ff937092b19acd8c80c289eef2bed6a394.jpg\" alt=\"Master Cloud Rider\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Master Cloud Rider\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaster Cloud Rider\u003c/strong\u003e\u003cbr/\u003e\n    Travel a distance of 50m on a cloud.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 04, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/d0d890293f69264d04c2cb864f67b6ebee8b62fe.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/d0d890293f69264d04c2cb864f67b6ebee8b62fe.jpg\" alt=\"Ressurected\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ressurected\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRessurected\u003c/strong\u003e\u003cbr/\u003e\n    Be reborn 10x.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 02, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (47)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/2e8a333f3a4d8995d900beeea0645f00f1482115.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/2e8a333f3a4d8995d900beeea0645f00f1482115.jpg\" alt=\"Dog In Shining Armor\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Dog In Shining Armor\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDog In Shining Armor\u003c/strong\u003e\u003cbr/\u003e\n    Save as much princesses as possible.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/b6c2484eb9662b927ca4322c71665c3f88c2707f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/b6c2484eb9662b927ca4322c71665c3f88c2707f.jpg\" alt=\"Fairtyale Bones\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fairtyale Bones\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFairtyale Bones\u003c/strong\u003e\u003cbr/\u003e\n    Find all the bones in Fairytale level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/1ab6a3d8e55ee7a008e3e425379c72777ef442b9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/1ab6a3d8e55ee7a008e3e425379c72777ef442b9.jpg\" alt=\"Fairtyale Bulbs\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fairtyale Bulbs\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFairtyale Bulbs\u003c/strong\u003e\u003cbr/\u003e\n    Find all the bulbs in Fairytale level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/1f4bec14f8bbee948ec7b7755e7a070d80c851a5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/1f4bec14f8bbee948ec7b7755e7a070d80c851a5.jpg\" alt=\"Fairtyale Cleared\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fairtyale Cleared\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFairtyale Cleared\u003c/strong\u003e\u003cbr/\u003e\n    Find all the bulbs, bones and costumes in Fairytale level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/9b9371022679be95e1084708f27153ebbcf9b4cf.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/9b9371022679be95e1084708f27153ebbcf9b4cf.jpg\" alt=\"Fairytale Torches\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fairytale Torches\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFairytale Torches\u003c/strong\u003e\u003cbr/\u003e\n    Light up all the torches in Fairytale level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/20d789ea21160ecfbb37f3fb8e11c31ff49d9057.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/20d789ea21160ecfbb37f3fb8e11c31ff49d9057.jpg\" alt=\"Electricity Bones\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Electricity Bones\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eElectricity Bones\u003c/strong\u003e\u003cbr/\u003e\n    Find all the bones in Electricity level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/0d147e5bb0368c9fa0b425bbc03159f7d31c31bd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/0d147e5bb0368c9fa0b425bbc03159f7d31c31bd.jpg\" alt=\"Electricity Bulbs\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Electricity Bulbs\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eElectricity Bulbs\u003c/strong\u003e\u003cbr/\u003e\n    Find all the bulbs in Electricity level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/cab526ffad311cc05ac168bba5d26c9e1955d70b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/cab526ffad311cc05ac168bba5d26c9e1955d70b.jpg\" alt=\"Electricity Cleared\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Electricity Cleared\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eElectricity Cleared\u003c/strong\u003e\u003cbr/\u003e\n    Find all the bulbs, bones and costumes in Electricity level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/b78fa1eb51d6cc67f4add0ef9cdf1cf8de61c4ba.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/b78fa1eb51d6cc67f4add0ef9cdf1cf8de61c4ba.jpg\" alt=\"Set Sail!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Set Sail!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSet Sail!\u003c/strong\u003e\u003cbr/\u003e\n    Save the captain in ocean level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/ecaee8695c98ba9aa573b473663948fe74d2c9f4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/ecaee8695c98ba9aa573b473663948fe74d2c9f4.jpg\" alt=\"Ocean Bones\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ocean Bones\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOcean Bones\u003c/strong\u003e\u003cbr/\u003e\n    Find all the bones in Ocean level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/cd5f5bb52724685f0369b1b14198ace8c05173eb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/cd5f5bb52724685f0369b1b14198ace8c05173eb.jpg\" alt=\"Ocean Bulbs\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ocean Bulbs\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOcean Bulbs\u003c/strong\u003e\u003cbr/\u003e\n    Find all the bulbs in Ocean level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/70cd78ce7ae9e9a1ab5a1a9f0e87b4a83802671c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/70cd78ce7ae9e9a1ab5a1a9f0e87b4a83802671c.jpg\" alt=\"Ocean Cleared\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ocean Cleared\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOcean Cleared\u003c/strong\u003e\u003cbr/\u003e\n    Find all the bulbs, bones and costumes in Ocean level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/2a8233bd10d4b2200afca50634db36580e2688c5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/2a8233bd10d4b2200afca50634db36580e2688c5.jpg\" alt=\"Medieval Heroic Outlaw\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Medieval Heroic Outlaw\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMedieval Heroic Outlaw\u003c/strong\u003e\u003cbr/\u003e\n    Find and punish the Evil King\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/f311edfdd4c7da6f90c133350458514e13c431e7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/f311edfdd4c7da6f90c133350458514e13c431e7.jpg\" alt=\"Castle Bones\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Castle Bones\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCastle Bones\u003c/strong\u003e\u003cbr/\u003e\n    Find all the bones in Castle level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/5a116d09b08a00f990096658c2efe509c3d70b7d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/5a116d09b08a00f990096658c2efe509c3d70b7d.jpg\" alt=\"Castle Bulbs\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Castle Bulbs\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCastle Bulbs\u003c/strong\u003e\u003cbr/\u003e\n    Find all the bulbs in Castle level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/7d2d72a480e226a8dff8d6c37ed8f3edbeb1c06d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/7d2d72a480e226a8dff8d6c37ed8f3edbeb1c06d.jpg\" alt=\"Castle Cleared\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Castle Cleared\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCastle Cleared\u003c/strong\u003e\u003cbr/\u003e\n    Find all the bulbs, bones and costumes in Castle level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/8fbf5c87aa5573bbc1265c1dca758d367a20cc16.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/8fbf5c87aa5573bbc1265c1dca758d367a20cc16.jpg\" alt=\"Castle Torches\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Castle Torches\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCastle Torches\u003c/strong\u003e\u003cbr/\u003e\n    Light up all the torches in Castle level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/f7017771762c6ed8d4fe9da4a08b8470d7604139.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/f7017771762c6ed8d4fe9da4a08b8470d7604139.jpg\" alt=\"First Five Dreams Completed\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: First Five Dreams Completed\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFirst Five Dreams Completed\u003c/strong\u003e\u003cbr/\u003e\n    Complete the first five levels.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/5e586ebab2b24c2947edcbbaa8a96a3e34f3468a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/5e586ebab2b24c2947edcbbaa8a96a3e34f3468a.jpg\" alt=\"First Five Levels Cleared\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: First Five Levels Cleared\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFirst Five Levels Cleared\u003c/strong\u003e\u003cbr/\u003e\n    Find all the bulbs, bones and costumes in the first 5 levels.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/f78abbd7b631060d6cda00d25dd4a1daedff8862.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/f78abbd7b631060d6cda00d25dd4a1daedff8862.jpg\" alt=\"Fashion Guru\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fashion Guru\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFashion Guru\u003c/strong\u003e\u003cbr/\u003e\n    Find all costumes in the first five levels.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/2eaca89a6f7f88e28aa471ff5baea5d2cd0cb1e2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/2eaca89a6f7f88e28aa471ff5baea5d2cd0cb1e2.jpg\" alt=\"Boat Explorer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Boat Explorer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBoat Explorer\u003c/strong\u003e\u003cbr/\u003e\n    Discover all boat interiors in Ocean level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/d18e054dfe3a92a61405444d6fe8f96d4a1dbad0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/d18e054dfe3a92a61405444d6fe8f96d4a1dbad0.jpg\" alt=\"Human Rider\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Human Rider\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHuman Rider\u003c/strong\u003e\u003cbr/\u003e\n    Travel a distance of 20m on a knight\u0026#39;s helmet.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/751b4766f9fc85f27c3fa9068e445bbf25df62eb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/751b4766f9fc85f27c3fa9068e445bbf25df62eb.jpg\" alt=\"Expert Cloud Rider\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Expert Cloud Rider\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert Cloud Rider\u003c/strong\u003e\u003cbr/\u003e\n    Travel a distance of 200m on a cloud.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/7c7652685def5b7cb8223c691b1bb9984ed23d0c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/7c7652685def5b7cb8223c691b1bb9984ed23d0c.jpg\" alt=\"Easter egg Forest\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Easter egg Forest\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEaster egg Forest\u003c/strong\u003e\u003cbr/\u003e\n    Find an Easter Egg in Forest level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/e0e071ad634b960d49d45f2fd6648983233b2cec.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/e0e071ad634b960d49d45f2fd6648983233b2cec.jpg\" alt=\"Easter egg Ocean\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Easter egg Ocean\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEaster egg Ocean\u003c/strong\u003e\u003cbr/\u003e\n    Find an Easter Egg in Ocean level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/4c8ccf236253679d7316ecdfc7598bb16e3b7ee1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/4c8ccf236253679d7316ecdfc7598bb16e3b7ee1.jpg\" alt=\"Easter egg Electricity\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Easter egg Electricity\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEaster egg Electricity\u003c/strong\u003e\u003cbr/\u003e\n    Find an Easter Egg in Electricity level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/21b83bfca9e428167872f2ced8e5b6de9ea6ad1b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/21b83bfca9e428167872f2ced8e5b6de9ea6ad1b.jpg\" alt=\"Easter egg Fairytale\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Easter egg Fairytale\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEaster egg Fairytale\u003c/strong\u003e\u003cbr/\u003e\n    Find an Easter Egg in Fairytale level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/8c604937a6a93b819ae9b3fb2fc6b70971e46eae.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/8c604937a6a93b819ae9b3fb2fc6b70971e46eae.jpg\" alt=\"Easter egg Castle\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Easter egg Castle\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEaster egg Castle\u003c/strong\u003e\u003cbr/\u003e\n    Find an Easter Egg in Castle level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/561472c1813b5836f7010881be33df77e9bbe802.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/561472c1813b5836f7010881be33df77e9bbe802.jpg\" alt=\"All easter eggs\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: All easter eggs\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAll easter eggs\u003c/strong\u003e\u003cbr/\u003e\n    Find all Easter Eggs in game.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/b35d42e0ef2f5c9dfb88c43cb919570087b3842d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/b35d42e0ef2f5c9dfb88c43cb919570087b3842d.jpg\" alt=\"Ressurection Routine\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ressurection Routine\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRessurection Routine\u003c/strong\u003e\u003cbr/\u003e\n    Be reborn 100x.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/08356a5ea78157e79079329ad2824c3655d698af.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/08356a5ea78157e79079329ad2824c3655d698af.jpg\" alt=\"Revenant\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Revenant\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRevenant\u003c/strong\u003e\u003cbr/\u003e\n    Be reborn 1000x.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/7a40fe007d69975cff37e3a7a7a5123e47aab0c5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/7a40fe007d69975cff37e3a7a7a5123e47aab0c5.jpg\" alt=\"DJ Mimpi\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: DJ Mimpi\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDJ Mimpi\u003c/strong\u003e\u003cbr/\u003e\n    DJ at Siren\u0026#39;s party in Ocean level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/ee10518901d4354fb144edb240b5bdef0ba256ae.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/ee10518901d4354fb144edb240b5bdef0ba256ae.jpg\" alt=\"Truth Prevails\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Truth Prevails\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTruth Prevails\u003c/strong\u003e\u003cbr/\u003e\n    Tell the truth to the Knight in Fairytale level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/1e37d93f9abf3f1973dd198ce058e4112afac5ea.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/1e37d93f9abf3f1973dd198ce058e4112afac5ea.jpg\" alt=\"Amphibious Princess\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Amphibious Princess\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAmphibious Princess\u003c/strong\u003e\u003cbr/\u003e\n    Find out where the Frog Princess is hiding.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/41394423502942de020388b6f694b7dc3cb89e51.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/41394423502942de020388b6f694b7dc3cb89e51.jpg\" alt=\"Ghostbuster\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ghostbuster\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGhostbuster\u003c/strong\u003e\u003cbr/\u003e\n    Fight the Ghost in Castle level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/492f19c839cf5d899d2e64f02eb999b38e0ffe7d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/492f19c839cf5d899d2e64f02eb999b38e0ffe7d.jpg\" alt=\"Math Hater\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Math Hater\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMath Hater\u003c/strong\u003e\u003cbr/\u003e\n    Demonstrate your inability to do math.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/fa73bcc786b18b47e21a7fb55f53d9e0140e42bc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/fa73bcc786b18b47e21a7fb55f53d9e0140e42bc.jpg\" alt=\"Fish Feeder\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fish Feeder\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFish Feeder\u003c/strong\u003e\u003cbr/\u003e\n    Give Jellyfish some food. They love nuts. No, seriously!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/7b63b3937d8b63c323834e77d0e1a79028e85606.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/7b63b3937d8b63c323834e77d0e1a79028e85606.jpg\" alt=\"Coconut Standee\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Coconut Standee\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCoconut Standee\u003c/strong\u003e\u003cbr/\u003e\n    Stand on a coconut on a palmtree!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/4d1b1ca6b3e29a853a306d106db966daaf870d07.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/4d1b1ca6b3e29a853a306d106db966daaf870d07.jpg\" alt=\"360°\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: 360°\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e360°\u003c/strong\u003e\u003cbr/\u003e\n    Do a 360° swing on a swing!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/90f0b30f85b5bead917c3a1083d0cba25ca02acc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/90f0b30f85b5bead917c3a1083d0cba25ca02acc.jpg\" alt=\"Challenge Finished\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Challenge Finished\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChallenge Finished\u003c/strong\u003e\u003cbr/\u003e\n    Finish the Challenge mode!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/4a22db102eccdf9f6a014b4082c0e411c8e48692.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/4a22db102eccdf9f6a014b4082c0e411c8e48692.jpg\" alt=\"Factory Bones\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Factory Bones\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFactory Bones\u003c/strong\u003e\u003cbr/\u003e\n    Find all the bones in Factory level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/6e6a716c57f7329a45d165bfb0bfd5afffb14e28.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/6e6a716c57f7329a45d165bfb0bfd5afffb14e28.jpg\" alt=\"Factory Bulbs\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Factory Bulbs\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFactory Bulbs\u003c/strong\u003e\u003cbr/\u003e\n    Find all the bulbs in Factory level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/6f3f03ab4cc9a7a453ce2811e0e55b1c93bb0861.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/6f3f03ab4cc9a7a453ce2811e0e55b1c93bb0861.jpg\" alt=\"Factory Cleared\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Factory Cleared\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFactory Cleared\u003c/strong\u003e\u003cbr/\u003e\n    Find all the bulbs, bones and costumes in Factory level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/32f42e37125214929ccc018eb8016800de976b0b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/32f42e37125214929ccc018eb8016800de976b0b.jpg\" alt=\"Robot Punisher\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Robot Punisher\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRobot Punisher\u003c/strong\u003e\u003cbr/\u003e\n    Punish the Robot Boss in Factory level for destroying environment.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/3cc0cd360cd239c2d31207be80cbb9798bd14c6a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/3cc0cd360cd239c2d31207be80cbb9798bd14c6a.jpg\" alt=\"Hero of The Night Sky\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hero of The Night Sky\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHero of The Night Sky\u003c/strong\u003e\u003cbr/\u003e\n    Save the Stars in Mars level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/e93f0d80540b113e5033bc2e41fa12a9424c0171.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/e93f0d80540b113e5033bc2e41fa12a9424c0171.jpg\" alt=\"Mars Bones\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mars Bones\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMars Bones\u003c/strong\u003e\u003cbr/\u003e\n    Find all the bones in Mars level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/cb380efdeec86afc2fd1dd7a54af5e3e614ba2d6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/cb380efdeec86afc2fd1dd7a54af5e3e614ba2d6.jpg\" alt=\"Mars Cleared\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mars Cleared\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMars Cleared\u003c/strong\u003e\u003cbr/\u003e\n    Find all the bulbs, bones and costumes in Mars level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/444770/library_600x900.jpg\" alt=\"Mimpi Dreams box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/444770/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eMimpi Dreams\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 17.54%\"\u003e\n        17.54%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e10/57 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e18.1h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2023-08-04\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (10)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/ec463bd833d0bdf22c4b46d3cf3a4261bfc83e81.jpg\" alt=\"Chicken Barbecue\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChicken Barbecue\u003c/strong\u003e\u003cbr\u003e\n    Get rid of the bird or make it stop singing.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 01, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/dec03b648747604e1e2fbf49e27bc8b12a519bdd.jpg\" alt=\"Forest Bones\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eForest Bones\u003c/strong\u003e\u003cbr\u003e\n    Find all the bones in Forest level.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 01, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/18e89e8540984902098f666b07cd1f72f6d6eb7b.jpg\" alt=\"Forest Bulbs\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eForest Bulbs\u003c/strong\u003e\u003cbr\u003e\n    Find all the bulbs in Forest level.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 25, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/902b1d236ae5ee56086ea2b40e573cc0e14cbf05.jpg\" alt=\"Forest Cleared\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eForest Cleared\u003c/strong\u003e\u003cbr\u003e\n    Find all the bulbs, bones and costumes in Forest level.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 25, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/f070f89bf4cced2e1dde904b0fe4e3e69d097f36.jpg\" alt=\"Forest Torches\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eForest Torches\u003c/strong\u003e\u003cbr\u003e\n    Light up all the torches in Forest level.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 01, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/009a2d71fa5a51c451b42b555d19a9486ed495b9.jpg\" alt=\"Animal Rights Activist\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAnimal Rights Activist\u003c/strong\u003e\u003cbr\u003e\n    Save lab rats before they will be killed by engineers.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 01, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/c17791fb4716b3a047565318dfef786017114b73.jpg\" alt=\"Cave Explorer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCave Explorer\u003c/strong\u003e\u003cbr\u003e\n    Explore the whole cave in Electricity level.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 01, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/82a7bfbd5924b8fe6259af72a2ef0073e58009df.jpg\" alt=\"Cloud Rider\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCloud Rider\u003c/strong\u003e\u003cbr\u003e\n    Travel a distance of 20m on a cloud.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 02, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/d7c8c2ff937092b19acd8c80c289eef2bed6a394.jpg\" alt=\"Master Cloud Rider\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaster Cloud Rider\u003c/strong\u003e\u003cbr\u003e\n    Travel a distance of 50m on a cloud.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 04, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/d0d890293f69264d04c2cb864f67b6ebee8b62fe.jpg\" alt=\"Ressurected\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRessurected\u003c/strong\u003e\u003cbr\u003e\n    Be reborn 10x.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 02, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (47)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/2e8a333f3a4d8995d900beeea0645f00f1482115.jpg\" alt=\"Dog In Shining Armor\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDog In Shining Armor\u003c/strong\u003e\u003cbr\u003e\n    Save as much princesses as possible.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/b6c2484eb9662b927ca4322c71665c3f88c2707f.jpg\" alt=\"Fairtyale Bones\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFairtyale Bones\u003c/strong\u003e\u003cbr\u003e\n    Find all the bones in Fairytale level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/1ab6a3d8e55ee7a008e3e425379c72777ef442b9.jpg\" alt=\"Fairtyale Bulbs\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFairtyale Bulbs\u003c/strong\u003e\u003cbr\u003e\n    Find all the bulbs in Fairytale level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/1f4bec14f8bbee948ec7b7755e7a070d80c851a5.jpg\" alt=\"Fairtyale Cleared\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFairtyale Cleared\u003c/strong\u003e\u003cbr\u003e\n    Find all the bulbs, bones and costumes in Fairytale level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/9b9371022679be95e1084708f27153ebbcf9b4cf.jpg\" alt=\"Fairytale Torches\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFairytale Torches\u003c/strong\u003e\u003cbr\u003e\n    Light up all the torches in Fairytale level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/20d789ea21160ecfbb37f3fb8e11c31ff49d9057.jpg\" alt=\"Electricity Bones\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eElectricity Bones\u003c/strong\u003e\u003cbr\u003e\n    Find all the bones in Electricity level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/0d147e5bb0368c9fa0b425bbc03159f7d31c31bd.jpg\" alt=\"Electricity Bulbs\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eElectricity Bulbs\u003c/strong\u003e\u003cbr\u003e\n    Find all the bulbs in Electricity level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/cab526ffad311cc05ac168bba5d26c9e1955d70b.jpg\" alt=\"Electricity Cleared\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eElectricity Cleared\u003c/strong\u003e\u003cbr\u003e\n    Find all the bulbs, bones and costumes in Electricity level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/b78fa1eb51d6cc67f4add0ef9cdf1cf8de61c4ba.jpg\" alt=\"Set Sail!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSet Sail!\u003c/strong\u003e\u003cbr\u003e\n    Save the captain in ocean level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/ecaee8695c98ba9aa573b473663948fe74d2c9f4.jpg\" alt=\"Ocean Bones\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOcean Bones\u003c/strong\u003e\u003cbr\u003e\n    Find all the bones in Ocean level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/cd5f5bb52724685f0369b1b14198ace8c05173eb.jpg\" alt=\"Ocean Bulbs\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOcean Bulbs\u003c/strong\u003e\u003cbr\u003e\n    Find all the bulbs in Ocean level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/70cd78ce7ae9e9a1ab5a1a9f0e87b4a83802671c.jpg\" alt=\"Ocean Cleared\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOcean Cleared\u003c/strong\u003e\u003cbr\u003e\n    Find all the bulbs, bones and costumes in Ocean level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/2a8233bd10d4b2200afca50634db36580e2688c5.jpg\" alt=\"Medieval Heroic Outlaw\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMedieval Heroic Outlaw\u003c/strong\u003e\u003cbr\u003e\n    Find and punish the Evil King\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/f311edfdd4c7da6f90c133350458514e13c431e7.jpg\" alt=\"Castle Bones\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCastle Bones\u003c/strong\u003e\u003cbr\u003e\n    Find all the bones in Castle level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/5a116d09b08a00f990096658c2efe509c3d70b7d.jpg\" alt=\"Castle Bulbs\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCastle Bulbs\u003c/strong\u003e\u003cbr\u003e\n    Find all the bulbs in Castle level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/7d2d72a480e226a8dff8d6c37ed8f3edbeb1c06d.jpg\" alt=\"Castle Cleared\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCastle Cleared\u003c/strong\u003e\u003cbr\u003e\n    Find all the bulbs, bones and costumes in Castle level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/8fbf5c87aa5573bbc1265c1dca758d367a20cc16.jpg\" alt=\"Castle Torches\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCastle Torches\u003c/strong\u003e\u003cbr\u003e\n    Light up all the torches in Castle level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/f7017771762c6ed8d4fe9da4a08b8470d7604139.jpg\" alt=\"First Five Dreams Completed\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFirst Five Dreams Completed\u003c/strong\u003e\u003cbr\u003e\n    Complete the first five levels.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/5e586ebab2b24c2947edcbbaa8a96a3e34f3468a.jpg\" alt=\"First Five Levels Cleared\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFirst Five Levels Cleared\u003c/strong\u003e\u003cbr\u003e\n    Find all the bulbs, bones and costumes in the first 5 levels.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/f78abbd7b631060d6cda00d25dd4a1daedff8862.jpg\" alt=\"Fashion Guru\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFashion Guru\u003c/strong\u003e\u003cbr\u003e\n    Find all costumes in the first five levels.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/2eaca89a6f7f88e28aa471ff5baea5d2cd0cb1e2.jpg\" alt=\"Boat Explorer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBoat Explorer\u003c/strong\u003e\u003cbr\u003e\n    Discover all boat interiors in Ocean level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/d18e054dfe3a92a61405444d6fe8f96d4a1dbad0.jpg\" alt=\"Human Rider\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHuman Rider\u003c/strong\u003e\u003cbr\u003e\n    Travel a distance of 20m on a knight's helmet.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/751b4766f9fc85f27c3fa9068e445bbf25df62eb.jpg\" alt=\"Expert Cloud Rider\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExpert Cloud Rider\u003c/strong\u003e\u003cbr\u003e\n    Travel a distance of 200m on a cloud.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/7c7652685def5b7cb8223c691b1bb9984ed23d0c.jpg\" alt=\"Easter egg Forest\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEaster egg Forest\u003c/strong\u003e\u003cbr\u003e\n    Find an Easter Egg in Forest level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/e0e071ad634b960d49d45f2fd6648983233b2cec.jpg\" alt=\"Easter egg Ocean\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEaster egg Ocean\u003c/strong\u003e\u003cbr\u003e\n    Find an Easter Egg in Ocean level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/4c8ccf236253679d7316ecdfc7598bb16e3b7ee1.jpg\" alt=\"Easter egg Electricity\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEaster egg Electricity\u003c/strong\u003e\u003cbr\u003e\n    Find an Easter Egg in Electricity level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/21b83bfca9e428167872f2ced8e5b6de9ea6ad1b.jpg\" alt=\"Easter egg Fairytale\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEaster egg Fairytale\u003c/strong\u003e\u003cbr\u003e\n    Find an Easter Egg in Fairytale level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/8c604937a6a93b819ae9b3fb2fc6b70971e46eae.jpg\" alt=\"Easter egg Castle\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEaster egg Castle\u003c/strong\u003e\u003cbr\u003e\n    Find an Easter Egg in Castle level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/561472c1813b5836f7010881be33df77e9bbe802.jpg\" alt=\"All easter eggs\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAll easter eggs\u003c/strong\u003e\u003cbr\u003e\n    Find all Easter Eggs in game.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/b35d42e0ef2f5c9dfb88c43cb919570087b3842d.jpg\" alt=\"Ressurection Routine\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRessurection Routine\u003c/strong\u003e\u003cbr\u003e\n    Be reborn 100x.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/08356a5ea78157e79079329ad2824c3655d698af.jpg\" alt=\"Revenant\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRevenant\u003c/strong\u003e\u003cbr\u003e\n    Be reborn 1000x.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/7a40fe007d69975cff37e3a7a7a5123e47aab0c5.jpg\" alt=\"DJ Mimpi\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDJ Mimpi\u003c/strong\u003e\u003cbr\u003e\n    DJ at Siren's party in Ocean level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/ee10518901d4354fb144edb240b5bdef0ba256ae.jpg\" alt=\"Truth Prevails\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTruth Prevails\u003c/strong\u003e\u003cbr\u003e\n    Tell the truth to the Knight in Fairytale level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/1e37d93f9abf3f1973dd198ce058e4112afac5ea.jpg\" alt=\"Amphibious Princess\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAmphibious Princess\u003c/strong\u003e\u003cbr\u003e\n    Find out where the Frog Princess is hiding.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/41394423502942de020388b6f694b7dc3cb89e51.jpg\" alt=\"Ghostbuster\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGhostbuster\u003c/strong\u003e\u003cbr\u003e\n    Fight the Ghost in Castle level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/492f19c839cf5d899d2e64f02eb999b38e0ffe7d.jpg\" alt=\"Math Hater\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMath Hater\u003c/strong\u003e\u003cbr\u003e\n    Demonstrate your inability to do math.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/fa73bcc786b18b47e21a7fb55f53d9e0140e42bc.jpg\" alt=\"Fish Feeder\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFish Feeder\u003c/strong\u003e\u003cbr\u003e\n    Give Jellyfish some food. They love nuts. No, seriously!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/7b63b3937d8b63c323834e77d0e1a79028e85606.jpg\" alt=\"Coconut Standee\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCoconut Standee\u003c/strong\u003e\u003cbr\u003e\n    Stand on a coconut on a palmtree!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/4d1b1ca6b3e29a853a306d106db966daaf870d07.jpg\" alt=\"360°\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e360°\u003c/strong\u003e\u003cbr\u003e\n    Do a 360° swing on a swing!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/90f0b30f85b5bead917c3a1083d0cba25ca02acc.jpg\" alt=\"Challenge Finished\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChallenge Finished\u003c/strong\u003e\u003cbr\u003e\n    Finish the Challenge mode!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/4a22db102eccdf9f6a014b4082c0e411c8e48692.jpg\" alt=\"Factory Bones\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFactory Bones\u003c/strong\u003e\u003cbr\u003e\n    Find all the bones in Factory level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/6e6a716c57f7329a45d165bfb0bfd5afffb14e28.jpg\" alt=\"Factory Bulbs\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFactory Bulbs\u003c/strong\u003e\u003cbr\u003e\n    Find all the bulbs in Factory level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/6f3f03ab4cc9a7a453ce2811e0e55b1c93bb0861.jpg\" alt=\"Factory Cleared\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFactory Cleared\u003c/strong\u003e\u003cbr\u003e\n    Find all the bulbs, bones and costumes in Factory level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/32f42e37125214929ccc018eb8016800de976b0b.jpg\" alt=\"Robot Punisher\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRobot Punisher\u003c/strong\u003e\u003cbr\u003e\n    Punish the Robot Boss in Factory level for destroying environment.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/3cc0cd360cd239c2d31207be80cbb9798bd14c6a.jpg\" alt=\"Hero of The Night Sky\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHero of The Night Sky\u003c/strong\u003e\u003cbr\u003e\n    Save the Stars in Mars level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/e93f0d80540b113e5033bc2e41fa12a9424c0171.jpg\" alt=\"Mars Bones\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMars Bones\u003c/strong\u003e\u003cbr\u003e\n    Find all the bones in Mars level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/444770/cb380efdeec86afc2fd1dd7a54af5e3e614ba2d6.jpg\" alt=\"Mars Cleared\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMars Cleared\u003c/strong\u003e\u003cbr\u003e\n    Find all the bulbs, bones and costumes in Mars level.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Mimpi Dreams - 17.54% complete with 10/57 achievements unlocked.",
      "date_published": "2023-08-04T00:00:00Z",
      "date_modified": "2023-08-04T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "mimpi-dreams"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/pycon-2023/",
      "url": "https://go.waylonwalker.com/pycon-2023/",
      "title": "Pycon 2023",
      "content_html": "\u003ch2 id=\"keynote-speaker---james-powell\"\u003eKeynote Speaker - James Powell \u003ca href=\"#keynote-speaker---james-powell\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI don’t want to be an expert python developer.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://www.youtube.com/watch?v=iKzOBWOHGFE\" class=\"hoverlink  has-avatar has-avatar-before\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.youtube.com.png\"\u003ehttps://www.youtube.com/watch?v=iKzOBWOHGFE\u003c/a\u003e\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/8275d2a5-72da-470c-a71d-86019415b303.webp\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/8275d2a5-72da-470c-a71d-86019415b303.webp\" alt=\"keynote-speaker—james-powell.webp\"/ data-glightbox=\"description: keynote-speaker—james-powell.webp\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch3 id=\"usage-of-keyword-only-arguments-to-prevent-pain-for-users-of-libraries\"\u003eusage of keyword only arguments to prevent pain for users of libraries \u003ca href=\"#usage-of-keyword-only-arguments-to-prevent-pain-for-users-of-libraries\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Version 1\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003enewton\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ef\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ex0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003efprime\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003emaxiter\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"mi\"\u003e100\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e...\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Version 2\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003enewton\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ef\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ex0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003efprime\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003etol\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"mf\"\u003e1e-6\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003emaxiter\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"mi\"\u003e100\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e...\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 🔴 Broke in Version 2\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003enewton\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ef\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ex0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003efprime\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mi\"\u003e100\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eIn an alternate timeline the maintainer of newton could have chose to use\nkeyword only arguments to prevent pain for users of libraries, or poor api\ndesign due to fear of changing api on users.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Version 1\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003enewton\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ef\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ex0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003efprime\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"o\"\u003e*\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003emaxiter\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"mi\"\u003e100\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e...\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Version 2\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003enewton\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ef\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ex0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003efprime\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"o\"\u003e*\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003etol\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"mf\"\u003e1e-6\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003emaxiter\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"mi\"\u003e100\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e...\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 🟢 user forced to use keyword only arguments never notices change\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003enewton\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ef\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ex0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003efprime\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003emaxiter\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"mi\"\u003e100\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n## Keynote Speaker - James Powell\n\nI don't want to be an expert python developer.\n\n[https://www.youtube.com/watch?v=iKzOBWOHGFE](https://www.youtube.com/watch?v=iKzOBWOHGFE){.hoverlink}\n\n![keynote-speaker---james-powell.webp](https://dropper.waylonwalker.com/api/file/8275d2a5-72da-470c-a71d-86019415b303.webp)\n\n### usage of keyword only arguments to prevent pain for users of libraries\n\n```python\n# Version 1\ndef newton(f, x0, fprime, maxiter=100):\n    ...\n\n# Version 2\ndef newton(f, x0, fprime, tol=1e-6, maxiter=100):\n    ...\n\n# 🔴 Broke in Version 2\nnewton(f, x0, fprime, 100)\n```\n\nIn an alternate timeline the maintainer of newton could have chose to use\nkeyword only arguments to prevent pain for users of libraries, or poor api\ndesign due to fear of changing api on users.\n\n```python\n# Version 1\ndef newton(f, x0, fprime, *, maxiter=100):\n    ...\n\n# Version 2\ndef newton(f, x0, fprime, *, tol=1e-6, maxiter=100):\n    ...\n\n# 🟢 user forced to use keyword only arguments never notices change\nnewton(f, x0, fprime, maxiter=100)\n```\n",
      "summary": "I don't want to be an expert python developer.",
      "date_published": "2023-06-09T09:59:07Z",
      "date_modified": "2023-06-09T09:59:07Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/craftopia/",
      "url": "https://go.waylonwalker.com/steam/craftopia/",
      "title": "Craftopia",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/1307550/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/1307550/library_600x900.jpg\" alt=\"Craftopia box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/1307550/header.jpg\u0026#39;\"/ data-glightbox=\"description: Craftopia box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eCraftopia\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 0.0%\"\u003e\n        0.0%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e0/50 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e10.3h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2023-06-05\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (50)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/329510a52cd9bb6ef54a054bdcd61c472d8372bb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/329510a52cd9bb6ef54a054bdcd61c472d8372bb.jpg\" alt=\"The Return of the King\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Return of the King\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Return of the King\u003c/strong\u003e\u003cbr/\u003e\n    Defeat King Mono.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/d1d1a5977208c34f12a85fc8939c827085de653a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/d1d1a5977208c34f12a85fc8939c827085de653a.jpg\" alt=\"Forehead Flicking\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Forehead Flicking\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eForehead Flicking\u003c/strong\u003e\u003cbr/\u003e\n    Defeat Ancient Golem.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/ce3367638d82957519367740005dcb56288725b3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/ce3367638d82957519367740005dcb56288725b3.jpg\" alt=\"Herbicide\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Herbicide\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHerbicide\u003c/strong\u003e\u003cbr/\u003e\n    Defeat Fleur.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/2465beee3ab49db8ea26ef1b5c91b669dd7c47cc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/2465beee3ab49db8ea26ef1b5c91b669dd7c47cc.jpg\" alt=\"Getting Bored of Slaying Dragons…\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Getting Bored of Slaying Dragons…\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGetting Bored of Slaying Dragons…\u003c/strong\u003e\u003cbr/\u003e\n    Defeat Dragon.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/c007650dfc135e6cbb98ab434b374c9c96f01dd1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/c007650dfc135e6cbb98ab434b374c9c96f01dd1.jpg\" alt=\"Gryps Conflict\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Gryps Conflict\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGryps Conflict\u003c/strong\u003e\u003cbr/\u003e\n    Defeat Griffon of Golden Sky.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/74cca2e3ff6b03a6d9e85de679d34c760e269852.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/74cca2e3ff6b03a6d9e85de679d34c760e269852.jpg\" alt=\"Calcium Deficiency\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Calcium Deficiency\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCalcium Deficiency\u003c/strong\u003e\u003cbr/\u003e\n    Defeat Bone Dragon.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/d0e5e5be11f44273db20e2b47458ae1485c3a68b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/d0e5e5be11f44273db20e2b47458ae1485c3a68b.jpg\" alt=\"Enter the Dungeon\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Enter the Dungeon\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEnter the Dungeon\u003c/strong\u003e\u003cbr/\u003e\n    Clear Ruin of Beginning.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/ee508c8b907f8ab3883feb28aea8870096cd9ae0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/ee508c8b907f8ab3883feb28aea8870096cd9ae0.jpg\" alt=\"Death After Death\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Death After Death\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDeath After Death\u003c/strong\u003e\u003cbr/\u003e\n    Clear Old Garden of Undead.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/82124f533d281122d3e027eeae2c45ac713d619a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/82124f533d281122d3e027eeae2c45ac713d619a.jpg\" alt=\"Who\u0026#39;s the Hunter Now?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Who\u0026#39;s the Hunter Now?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWho\u0026#39;s the Hunter Now?\u003c/strong\u003e\u003cbr/\u003e\n    Clear Ruin of Hunters.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/154fbb17840236906b46c6df7d583a7514645241.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/154fbb17840236906b46c6df7d583a7514645241.jpg\" alt=\"Maneuver Kill\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Maneuver Kill\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eManeuver Kill\u003c/strong\u003e\u003cbr/\u003e\n    Clear Old Garden of Storms.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/ebf0455476535c92177dc15793d4cfe2b3663ce4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/ebf0455476535c92177dc15793d4cfe2b3663ce4.jpg\" alt=\"Noble Bullfrog\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Noble Bullfrog\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNoble Bullfrog\u003c/strong\u003e\u003cbr/\u003e\n    Clear Labyrinth of Torrent.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/91fdcea8483f57b03c62d2846839a4cbe335b5b5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/91fdcea8483f57b03c62d2846839a4cbe335b5b5.jpg\" alt=\"Skillful Executioner\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Skillful Executioner\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSkillful Executioner\u003c/strong\u003e\u003cbr/\u003e\n    Clear Old Garden of Massacre.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/dacbfe7f3429d2cbcf9f42cd531a43f383dfa360.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/dacbfe7f3429d2cbcf9f42cd531a43f383dfa360.jpg\" alt=\"Chill Down the Spine\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Chill Down the Spine\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChill Down the Spine\u003c/strong\u003e\u003cbr/\u003e\n    Clear Ruin of Everfrost.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/a0d4fb3fadbec670800177352cf6f2e40bf4d9cb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/a0d4fb3fadbec670800177352cf6f2e40bf4d9cb.jpg\" alt=\"Over the Dungeon\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Over the Dungeon\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOver the Dungeon\u003c/strong\u003e\u003cbr/\u003e\n    Clear Grinding Dungeon of Difficulty Hell 100 or more times.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/42f4dcda27878890575170225167d05d9e4285f5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/42f4dcda27878890575170225167d05d9e4285f5.jpg\" alt=\"How Many Miles to the Summit?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: How Many Miles to the Summit?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHow Many Miles to the Summit?\u003c/strong\u003e\u003cbr/\u003e\n    Reach Anubis\u0026#39;s floating island.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/e998deeac1bf95ce9f99fccca1c484a52de66abf.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/e998deeac1bf95ce9f99fccca1c484a52de66abf.jpg\" alt=\"Beanstalk\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Beanstalk\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeanstalk\u003c/strong\u003e\u003cbr/\u003e\n    Reach the highest point of the big tree in Archipelago.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/669d3a180ebf84f81b604c42113f135d3234cd5f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/669d3a180ebf84f81b604c42113f135d3234cd5f.jpg\" alt=\"Ground Zero\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ground Zero\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGround Zero\u003c/strong\u003e\u003cbr/\u003e\n    Reach the deepest point of the large hole in Valley.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/87bb20ae25d0b5e4d181272478de6a5650e93dd3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/87bb20ae25d0b5e4d181272478de6a5650e93dd3.jpg\" alt=\"The Highest Peak\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Highest Peak\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Highest Peak\u003c/strong\u003e\u003cbr/\u003e\n    Reach the highest point of the pinnacle floating on top of the Sherbert Iceberg.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/1a635dc920bb88c0b497df7670c25ca8d36fba7d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/1a635dc920bb88c0b497df7670c25ca8d36fba7d.jpg\" alt=\"Power of Tower\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Power of Tower\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePower of Tower\u003c/strong\u003e\u003cbr/\u003e\n    Repair Wedge Tower in Geezah Plateau.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/9380af8f8d7064fb38d2202446dd5cc3f55536dd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/9380af8f8d7064fb38d2202446dd5cc3f55536dd.jpg\" alt=\"Is It Higher Than a Windmill?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Is It Higher Than a Windmill?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIs It Higher Than a Windmill?\u003c/strong\u003e\u003cbr/\u003e\n    Repair Wedge Tower in Millewind Hill.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/6b8b73113a0a19046d53609ebaa7297d7b277a86.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/6b8b73113a0a19046d53609ebaa7297d7b277a86.jpg\" alt=\"Right Spot to Find a Prey\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Right Spot to Find a Prey\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRight Spot to Find a Prey\u003c/strong\u003e\u003cbr/\u003e\n    Repair Wedge Tower in Yarden Meadow\u0026#39;s Mountain.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/e6cc0f582c402597ce9e546ec73865308ac1c00e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/e6cc0f582c402597ce9e546ec73865308ac1c00e.jpg\" alt=\"How Much Is It Worth...?…？\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: How Much Is It Worth...?…？\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHow Much Is It Worth...?…？\u003c/strong\u003e\u003cbr/\u003e\n    Repair Wedge Tower in Yarden Meadow\u0026#39;s Ruin.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/1f28ade2ee6d5c95d9cd9ef3a8616e34492cf3c3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/1f28ade2ee6d5c95d9cd9ef3a8616e34492cf3c3.jpg\" alt=\"Landscape Protection\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Landscape Protection\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLandscape Protection\u003c/strong\u003e\u003cbr/\u003e\n    Repair Wedge Tower in Owatatsu Archipelago.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/757f75904217bfbf1498242d3cfb2f94e0107dd3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/757f75904217bfbf1498242d3cfb2f94e0107dd3.jpg\" alt=\"Height Difference\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Height Difference\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHeight Difference\u003c/strong\u003e\u003cbr/\u003e\n    Repair Wedge Tower in Brigandine Valley.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/730b66811ea9593918d1e98701f476be5fd55117.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/730b66811ea9593918d1e98701f476be5fd55117.jpg\" alt=\"Still Lower Than Mountains\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Still Lower Than Mountains\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStill Lower Than Mountains\u003c/strong\u003e\u003cbr/\u003e\n    Repair Wedge Tower in Sherbert Iceberg.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/ba6e252a7d5cd7bbeb41db227302616aae8a4bf4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/ba6e252a7d5cd7bbeb41db227302616aae8a4bf4.jpg\" alt=\"Craft of Tanks\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Craft of Tanks\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCraft of Tanks\u003c/strong\u003e\u003cbr/\u003e\n    Craft War Tank.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/dfb9398bf24678c6a8e465a49248d1af7399ea39.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/dfb9398bf24678c6a8e465a49248d1af7399ea39.jpg\" alt=\"The sky\u0026#39;s the limit...\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The sky\u0026#39;s the limit...\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe sky\u0026#39;s the limit...\u003c/strong\u003e\u003cbr/\u003e\n    Launch Prototype Rocket.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/e069432500420d42acc6329842f9dc23aff6e764.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/e069432500420d42acc6329842f9dc23aff6e764.jpg\" alt=\"Pipeline is Lifeline\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Pipeline is Lifeline\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePipeline is Lifeline\u003c/strong\u003e\u003cbr/\u003e\n    Build a continuous pipeline with 200 or more connections.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/64941c362e09471f0eeec93a6f5003fc177ae812.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/64941c362e09471f0eeec93a6f5003fc177ae812.jpg\" alt=\"1：4：9\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: 1：4：9\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e1：4：9\u003c/strong\u003e\u003cbr/\u003e\n    Craft Artificial Monolith.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/47e79186ca8bf913a1a9bfd1a6c5e25ffe5eabd7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/47e79186ca8bf913a1a9bfd1a6c5e25ffe5eabd7.jpg\" alt=\"Blasphemy Against Life\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Blasphemy Against Life\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlasphemy Against Life\u003c/strong\u003e\u003cbr/\u003e\n    Produce 100 or more lives at Breeding Facility.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/bfc573945c40b721df6e5e39c0533e05c19d73e5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/bfc573945c40b721df6e5e39c0533e05c19d73e5.jpg\" alt=\"Coal Miner\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Coal Miner\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCoal Miner\u003c/strong\u003e\u003cbr/\u003e\n    Mine from Bedrock with Excavator.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/b79c309db81b4f320def0378f35a5faf37e6d844.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/b79c309db81b4f320def0378f35a5faf37e6d844.jpg\" alt=\"Put Food on the Table\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Put Food on the Table\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePut Food on the Table\u003c/strong\u003e\u003cbr/\u003e\n    Put Livestock Farm in operation.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/1291855158b5ea03eb66ba416a35e3c57a019acb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/1291855158b5ea03eb66ba416a35e3c57a019acb.jpg\" alt=\"Disassembler\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Disassembler\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDisassembler\u003c/strong\u003e\u003cbr/\u003e\n    Reach Refinement Level 100 or higher.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/96bd23b019e652feb6fac4084bca507732b5527e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/96bd23b019e652feb6fac4084bca507732b5527e.jpg\" alt=\"1000 Practice Swings\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: 1000 Practice Swings\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e1000 Practice Swings\u003c/strong\u003e\u003cbr/\u003e\n    Obtain 10000 Stored Energies.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/0ac9bfe6d2f73bfdbb905f3ecc74c471718f44d4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/0ac9bfe6d2f73bfdbb905f3ecc74c471718f44d4.jpg\" alt=\"Enchanter\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Enchanter\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEnchanter\u003c/strong\u003e\u003cbr/\u003e\n    Collect 300 or more kind of Enchantments.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/79f0693c676de92550fc3bea2c8a75576fae1516.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/79f0693c676de92550fc3bea2c8a75576fae1516.jpg\" alt=\"Specialist\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Specialist\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpecialist\u003c/strong\u003e\u003cbr/\u003e\n    Learn Tier 5 Skill.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/4f8e9b62b01387ac97cdecccffc33f1aaaf284b2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/4f8e9b62b01387ac97cdecccffc33f1aaaf284b2.jpg\" alt=\"Millionaire\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Millionaire\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMillionaire\u003c/strong\u003e\u003cbr/\u003e\n    Obtain 100,000,000 G.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/2af31aff4a737338956fc1f8ae7468553f95220c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/2af31aff4a737338956fc1f8ae7468553f95220c.jpg\" alt=\"You\u0026#39;ll Know Squid or Octopus If You Grill\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: You\u0026#39;ll Know Squid or Octopus If You Grill\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou\u0026#39;ll Know Squid or Octopus If You Grill\u003c/strong\u003e\u003cbr/\u003e\n    Catch Kraken.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/04d58c87b3553e3522b0ff28e4f5a514702a59b1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/04d58c87b3553e3522b0ff28e4f5a514702a59b1.jpg\" alt=\"This Mineral Used to Be Legendary\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: This Mineral Used to Be Legendary\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThis Mineral Used to Be Legendary\u003c/strong\u003e\u003cbr/\u003e\n    Obtain Adamantite.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/0cdd7a596888c726c0e6fdd6063ac306058771dd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/0cdd7a596888c726c0e6fdd6063ac306058771dd.jpg\" alt=\"Dragontamer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Dragontamer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDragontamer\u003c/strong\u003e\u003cbr/\u003e\n    Tame Dragon as a pet.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/7387cc4b878e055efe8fb682a500185b5d3abac4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/7387cc4b878e055efe8fb682a500185b5d3abac4.jpg\" alt=\"Blasphemy Against the God\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Blasphemy Against the God\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlasphemy Against the God\u003c/strong\u003e\u003cbr/\u003e\n    Tame Anubis as a pet.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/27217493bbfa5d08d4fb0c11698986366d7aa064.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/27217493bbfa5d08d4fb0c11698986366d7aa064.jpg\" alt=\"Non-Humanitarian\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Non-Humanitarian\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNon-Humanitarian\u003c/strong\u003e\u003cbr/\u003e\n    Tame Camille as a pet.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/356557ca6b5423f5366fd72013fe939379df709d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/356557ca6b5423f5366fd72013fe939379df709d.jpg\" alt=\"Breeder\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Breeder\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBreeder\u003c/strong\u003e\u003cbr/\u003e\n    Reach Pet Level 50 or higher.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/62a2abdfe2794aaee8b9fabee29e07444f94dedb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/62a2abdfe2794aaee8b9fabee29e07444f94dedb.jpg\" alt=\"Veteran\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Veteran\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVeteran\u003c/strong\u003e\u003cbr/\u003e\n    Reach Player Level 50 or higher.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/d1535b9fec3d5fe61728f618064e47badd901a34.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/d1535b9fec3d5fe61728f618064e47badd901a34.jpg\" alt=\"Professional Jack of all Trades\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Professional Jack of all Trades\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eProfessional Jack of all Trades\u003c/strong\u003e\u003cbr/\u003e\n    Complete 40 or more quests.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/baefd5dea0117cca85679e9b3b458bc284fbb98a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/baefd5dea0117cca85679e9b3b458bc284fbb98a.jpg\" alt=\"Breaker of the Divine Scales\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Breaker of the Divine Scales\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBreaker of the Divine Scales\u003c/strong\u003e\u003cbr/\u003e\n    Defeat Lv 255 Anubis, Harbinger of Divine Punishment.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/eed7473b4f4030592fedb4c970d75beb1566364f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/eed7473b4f4030592fedb4c970d75beb1566364f.jpg\" alt=\"Shadow That Defies Judgment\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Shadow That Defies Judgment\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShadow That Defies Judgment\u003c/strong\u003e\u003cbr/\u003e\n    Defeat Lv 255 Judging God \u0026lt;\u003canubis\u003e\u0026gt;.\n  \u003c/anubis\u003e\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/d20b5e5f397c9722f89bb4088fbc4590fbe33f6f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/d20b5e5f397c9722f89bb4088fbc4590fbe33f6f.jpg\" alt=\"Conqueror of the Gate of Trials\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Conqueror of the Gate of Trials\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eConqueror of the Gate of Trials\u003c/strong\u003e\u003cbr/\u003e\n    Reach Floor 10 of the Boss Rush Dungeon.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/c89a369d1d6b00eb6277e7fb09078cb44f75ef36.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/c89a369d1d6b00eb6277e7fb09078cb44f75ef36.jpg\" alt=\"Beyond a Hundred Deaths\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Beyond a Hundred Deaths\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeyond a Hundred Deaths\u003c/strong\u003e\u003cbr/\u003e\n    Reach Floor 100 of the Boss Rush Dungeon.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/ebf53370b6eb626f1708c2b1f445741cca61c3b8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/ebf53370b6eb626f1708c2b1f445741cca61c3b8.jpg\" alt=\"Craftopia\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Craftopia\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCraftopia\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/1307550/library_600x900.jpg\" alt=\"Craftopia box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/1307550/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eCraftopia\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 0.0%\"\u003e\n        0.0%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e0/50 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e10.3h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2023-06-05\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (50)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/329510a52cd9bb6ef54a054bdcd61c472d8372bb.jpg\" alt=\"The Return of the King\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Return of the King\u003c/strong\u003e\u003cbr\u003e\n    Defeat King Mono.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/d1d1a5977208c34f12a85fc8939c827085de653a.jpg\" alt=\"Forehead Flicking\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eForehead Flicking\u003c/strong\u003e\u003cbr\u003e\n    Defeat Ancient Golem.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/ce3367638d82957519367740005dcb56288725b3.jpg\" alt=\"Herbicide\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHerbicide\u003c/strong\u003e\u003cbr\u003e\n    Defeat Fleur.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/2465beee3ab49db8ea26ef1b5c91b669dd7c47cc.jpg\" alt=\"Getting Bored of Slaying Dragons…\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGetting Bored of Slaying Dragons…\u003c/strong\u003e\u003cbr\u003e\n    Defeat Dragon.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/c007650dfc135e6cbb98ab434b374c9c96f01dd1.jpg\" alt=\"Gryps Conflict\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGryps Conflict\u003c/strong\u003e\u003cbr\u003e\n    Defeat Griffon of Golden Sky.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/74cca2e3ff6b03a6d9e85de679d34c760e269852.jpg\" alt=\"Calcium Deficiency\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCalcium Deficiency\u003c/strong\u003e\u003cbr\u003e\n    Defeat Bone Dragon.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/d0e5e5be11f44273db20e2b47458ae1485c3a68b.jpg\" alt=\"Enter the Dungeon\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEnter the Dungeon\u003c/strong\u003e\u003cbr\u003e\n    Clear Ruin of Beginning.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/ee508c8b907f8ab3883feb28aea8870096cd9ae0.jpg\" alt=\"Death After Death\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDeath After Death\u003c/strong\u003e\u003cbr\u003e\n    Clear Old Garden of Undead.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/82124f533d281122d3e027eeae2c45ac713d619a.jpg\" alt=\"Who's the Hunter Now?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWho's the Hunter Now?\u003c/strong\u003e\u003cbr\u003e\n    Clear Ruin of Hunters.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/154fbb17840236906b46c6df7d583a7514645241.jpg\" alt=\"Maneuver Kill\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eManeuver Kill\u003c/strong\u003e\u003cbr\u003e\n    Clear Old Garden of Storms.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/ebf0455476535c92177dc15793d4cfe2b3663ce4.jpg\" alt=\"Noble Bullfrog\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNoble Bullfrog\u003c/strong\u003e\u003cbr\u003e\n    Clear Labyrinth of Torrent.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/91fdcea8483f57b03c62d2846839a4cbe335b5b5.jpg\" alt=\"Skillful Executioner\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSkillful Executioner\u003c/strong\u003e\u003cbr\u003e\n    Clear Old Garden of Massacre.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/dacbfe7f3429d2cbcf9f42cd531a43f383dfa360.jpg\" alt=\"Chill Down the Spine\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChill Down the Spine\u003c/strong\u003e\u003cbr\u003e\n    Clear Ruin of Everfrost.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/a0d4fb3fadbec670800177352cf6f2e40bf4d9cb.jpg\" alt=\"Over the Dungeon\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOver the Dungeon\u003c/strong\u003e\u003cbr\u003e\n    Clear Grinding Dungeon of Difficulty Hell 100 or more times.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/42f4dcda27878890575170225167d05d9e4285f5.jpg\" alt=\"How Many Miles to the Summit?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHow Many Miles to the Summit?\u003c/strong\u003e\u003cbr\u003e\n    Reach Anubis's floating island.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/e998deeac1bf95ce9f99fccca1c484a52de66abf.jpg\" alt=\"Beanstalk\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeanstalk\u003c/strong\u003e\u003cbr\u003e\n    Reach the highest point of the big tree in Archipelago.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/669d3a180ebf84f81b604c42113f135d3234cd5f.jpg\" alt=\"Ground Zero\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGround Zero\u003c/strong\u003e\u003cbr\u003e\n    Reach the deepest point of the large hole in Valley.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/87bb20ae25d0b5e4d181272478de6a5650e93dd3.jpg\" alt=\"The Highest Peak\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Highest Peak\u003c/strong\u003e\u003cbr\u003e\n    Reach the highest point of the pinnacle floating on top of the Sherbert Iceberg.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/1a635dc920bb88c0b497df7670c25ca8d36fba7d.jpg\" alt=\"Power of Tower\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePower of Tower\u003c/strong\u003e\u003cbr\u003e\n    Repair Wedge Tower in Geezah Plateau.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/9380af8f8d7064fb38d2202446dd5cc3f55536dd.jpg\" alt=\"Is It Higher Than a Windmill?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIs It Higher Than a Windmill?\u003c/strong\u003e\u003cbr\u003e\n    Repair Wedge Tower in Millewind Hill.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/6b8b73113a0a19046d53609ebaa7297d7b277a86.jpg\" alt=\"Right Spot to Find a Prey\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRight Spot to Find a Prey\u003c/strong\u003e\u003cbr\u003e\n    Repair Wedge Tower in Yarden Meadow's Mountain.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/e6cc0f582c402597ce9e546ec73865308ac1c00e.jpg\" alt=\"How Much Is It Worth...?…？\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHow Much Is It Worth...?…？\u003c/strong\u003e\u003cbr\u003e\n    Repair Wedge Tower in Yarden Meadow's Ruin.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/1f28ade2ee6d5c95d9cd9ef3a8616e34492cf3c3.jpg\" alt=\"Landscape Protection\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLandscape Protection\u003c/strong\u003e\u003cbr\u003e\n    Repair Wedge Tower in Owatatsu Archipelago.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/757f75904217bfbf1498242d3cfb2f94e0107dd3.jpg\" alt=\"Height Difference\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHeight Difference\u003c/strong\u003e\u003cbr\u003e\n    Repair Wedge Tower in Brigandine Valley.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/730b66811ea9593918d1e98701f476be5fd55117.jpg\" alt=\"Still Lower Than Mountains\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStill Lower Than Mountains\u003c/strong\u003e\u003cbr\u003e\n    Repair Wedge Tower in Sherbert Iceberg.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/ba6e252a7d5cd7bbeb41db227302616aae8a4bf4.jpg\" alt=\"Craft of Tanks\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCraft of Tanks\u003c/strong\u003e\u003cbr\u003e\n    Craft War Tank.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/dfb9398bf24678c6a8e465a49248d1af7399ea39.jpg\" alt=\"The sky's the limit...\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe sky's the limit...\u003c/strong\u003e\u003cbr\u003e\n    Launch Prototype Rocket.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/e069432500420d42acc6329842f9dc23aff6e764.jpg\" alt=\"Pipeline is Lifeline\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePipeline is Lifeline\u003c/strong\u003e\u003cbr\u003e\n    Build a continuous pipeline with 200 or more connections.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/64941c362e09471f0eeec93a6f5003fc177ae812.jpg\" alt=\"1：4：9\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e1：4：9\u003c/strong\u003e\u003cbr\u003e\n    Craft Artificial Monolith.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/47e79186ca8bf913a1a9bfd1a6c5e25ffe5eabd7.jpg\" alt=\"Blasphemy Against Life\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlasphemy Against Life\u003c/strong\u003e\u003cbr\u003e\n    Produce 100 or more lives at Breeding Facility.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/bfc573945c40b721df6e5e39c0533e05c19d73e5.jpg\" alt=\"Coal Miner\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCoal Miner\u003c/strong\u003e\u003cbr\u003e\n    Mine from Bedrock with Excavator.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/b79c309db81b4f320def0378f35a5faf37e6d844.jpg\" alt=\"Put Food on the Table\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePut Food on the Table\u003c/strong\u003e\u003cbr\u003e\n    Put Livestock Farm in operation.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/1291855158b5ea03eb66ba416a35e3c57a019acb.jpg\" alt=\"Disassembler\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDisassembler\u003c/strong\u003e\u003cbr\u003e\n    Reach Refinement Level 100 or higher.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/96bd23b019e652feb6fac4084bca507732b5527e.jpg\" alt=\"1000 Practice Swings\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e1000 Practice Swings\u003c/strong\u003e\u003cbr\u003e\n    Obtain 10000 Stored Energies.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/0ac9bfe6d2f73bfdbb905f3ecc74c471718f44d4.jpg\" alt=\"Enchanter\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEnchanter\u003c/strong\u003e\u003cbr\u003e\n    Collect 300 or more kind of Enchantments.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/79f0693c676de92550fc3bea2c8a75576fae1516.jpg\" alt=\"Specialist\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpecialist\u003c/strong\u003e\u003cbr\u003e\n    Learn Tier 5 Skill.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/4f8e9b62b01387ac97cdecccffc33f1aaaf284b2.jpg\" alt=\"Millionaire\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMillionaire\u003c/strong\u003e\u003cbr\u003e\n    Obtain 100,000,000 G.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/2af31aff4a737338956fc1f8ae7468553f95220c.jpg\" alt=\"You'll Know Squid or Octopus If You Grill\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou'll Know Squid or Octopus If You Grill\u003c/strong\u003e\u003cbr\u003e\n    Catch Kraken.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/04d58c87b3553e3522b0ff28e4f5a514702a59b1.jpg\" alt=\"This Mineral Used to Be Legendary\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThis Mineral Used to Be Legendary\u003c/strong\u003e\u003cbr\u003e\n    Obtain Adamantite.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/0cdd7a596888c726c0e6fdd6063ac306058771dd.jpg\" alt=\"Dragontamer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDragontamer\u003c/strong\u003e\u003cbr\u003e\n    Tame Dragon as a pet.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/7387cc4b878e055efe8fb682a500185b5d3abac4.jpg\" alt=\"Blasphemy Against the God\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlasphemy Against the God\u003c/strong\u003e\u003cbr\u003e\n    Tame Anubis as a pet.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/27217493bbfa5d08d4fb0c11698986366d7aa064.jpg\" alt=\"Non-Humanitarian\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNon-Humanitarian\u003c/strong\u003e\u003cbr\u003e\n    Tame Camille as a pet.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/356557ca6b5423f5366fd72013fe939379df709d.jpg\" alt=\"Breeder\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBreeder\u003c/strong\u003e\u003cbr\u003e\n    Reach Pet Level 50 or higher.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/62a2abdfe2794aaee8b9fabee29e07444f94dedb.jpg\" alt=\"Veteran\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVeteran\u003c/strong\u003e\u003cbr\u003e\n    Reach Player Level 50 or higher.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/d1535b9fec3d5fe61728f618064e47badd901a34.jpg\" alt=\"Professional Jack of all Trades\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eProfessional Jack of all Trades\u003c/strong\u003e\u003cbr\u003e\n    Complete 40 or more quests.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/baefd5dea0117cca85679e9b3b458bc284fbb98a.jpg\" alt=\"Breaker of the Divine Scales\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBreaker of the Divine Scales\u003c/strong\u003e\u003cbr\u003e\n    Defeat Lv 255 Anubis, Harbinger of Divine Punishment.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/eed7473b4f4030592fedb4c970d75beb1566364f.jpg\" alt=\"Shadow That Defies Judgment\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShadow That Defies Judgment\u003c/strong\u003e\u003cbr\u003e\n    Defeat Lv 255 Judging God \u003c\u003cAnubis\u003e\u003e.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/d20b5e5f397c9722f89bb4088fbc4590fbe33f6f.jpg\" alt=\"Conqueror of the Gate of Trials\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eConqueror of the Gate of Trials\u003c/strong\u003e\u003cbr\u003e\n    Reach Floor 10 of the Boss Rush Dungeon.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/c89a369d1d6b00eb6277e7fb09078cb44f75ef36.jpg\" alt=\"Beyond a Hundred Deaths\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBeyond a Hundred Deaths\u003c/strong\u003e\u003cbr\u003e\n    Reach Floor 100 of the Boss Rush Dungeon.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1307550/ebf53370b6eb626f1708c2b1f445741cca61c3b8.jpg\" alt=\"Craftopia\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCraftopia\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Craftopia - 0.0% complete with 0/50 achievements unlocked.",
      "date_published": "2023-06-05T00:00:00Z",
      "date_modified": "2023-06-05T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "craftopia"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/getting-started-with-pydantic/",
      "url": "https://go.waylonwalker.com/getting-started-with-pydantic/",
      "title": "Getting Started with Pydantic",
      "content_html": "\u003cpre\u003e\u003ccode class=\"language-{.python\"\u003eglobal Field\nglobal BaseModel\nfrom pydantic import BaseModel\nfrom pydantic import Field\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePydantic is a Python library for serializing data into models that can be\nvalidated with a deep set of built in valitators or your own custom validators,\nand deserialize back to JSON or dictionary.\u003c/p\u003e\n\u003ch2 id=\"installation\"\u003eInstallation \u003ca href=\"#installation\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eTo install pydantic you will first need python and pip. Once you have pip\ninstalled you can install pydantic with pip.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epip install pydantic\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003eAlways install in a \u003ca href=\"/virtual-environment/\" class=\"glossary-term\" title=\"Virtual Environment is term for a sandboxed environment commonly associated with the python programming language. If you are installing any sort of python...\"\u003evirtual environment\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"creating-a-pydantic-model\"\u003eCreating a Pydantic model \u003ca href=\"#creating-a-pydantic-model\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eTo get started with pydantic you will first need to create a Pydantic model.\nThis is a python class that inherits from \u003ccode\u003epydantic.BaseModel\u003c/code\u003e.\u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"language-{.python\"\u003efrom pydantic import BaseModel\nfrom pydantic import Field\nfrom typing import Optional\n\nclass Person(BaseModel):\n    name: str = Field(...)\n    age: int\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2 id=\"parsing-an-object\"\u003eparsing an object \u003ca href=\"#parsing-an-object\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre\u003e\u003ccode class=\"language-{.python\"\u003eperson = Person(name=\u0026#34;John Doe\u0026#34;, age=30)\nprint(person)\n\u003c/code\u003e\u003c/pre\u003e\n\u003cpre\u003e\u003ccode class=\"language-{.console\"\u003ename=\u0026#39;John Doe\u0026#39; age=30\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2 id=\"data-serialization\"\u003edata serialization \u003ca href=\"#data-serialization\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003ePydantic has some very robust serialization methods that will automatically\ncoherse your data into the type specified by the type-hint in the model if it can.\u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"language-{.python\"\u003eperson = Person(name=12, age=\u0026#34;30\u0026#34;)\nprint(f\u0026#39;name: {person.name}, type: {type(person.name)}\u0026#39;)\nprint(f\u0026#39;age: {person.age}, type: {type(person.age)}\u0026#39;)\n\u003c/code\u003e\u003c/pre\u003e\n\u003cpre\u003e\u003ccode class=\"language-{.console\"\u003e1 validation error for Person\nname\n  Input should be a valid string [type=string_type, input_value=12, input_type=int]\n    For further information visit https://errors.pydantic.dev/2.3/v/string_type\n\u003c/code\u003e\u003c/pre\u003e\n\u003cpre\u003e\u003ccode class=\"language-{.python\"\u003eperson = Person(name=\u0026#34;John Doe\u0026#34;, age=\u0026#39;thirty\u0026#39;)\nprint(f\u0026#39;name: {person.name}, type: {type(person.name)}\u0026#39;)\nprint(f\u0026#39;age: {person.age}, type: {type(person.age)}\u0026#39;)\n\u003c/code\u003e\u003c/pre\u003e\n\u003cpre\u003e\u003ccode class=\"language-{.console\"\u003e1 validation error for Person\nage\n  Input should be a valid integer, unable to parse string as an integer [type=int_parsing, input_value=\u0026#39;thirty\u0026#39;, input_type=str]\n    For further information visit https://errors.pydantic.dev/2.3/v/int_parsing\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2 id=\"loading-from-json\"\u003eloading from json \u003ca href=\"#loading-from-json\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"serializing-to-json\"\u003eserializing to json \u003ca href=\"#serializing-to-json\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"validation\"\u003evalidation \u003ca href=\"#validation\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n",
      "content_text": "\n```{.python .darkmark}\nglobal Field\nglobal BaseModel\nfrom pydantic import BaseModel\nfrom pydantic import Field\n```\n\nPydantic is a Python library for serializing data into models that can be\nvalidated with a deep set of built in valitators or your own custom validators,\nand deserialize back to JSON or dictionary.\n\n## Installation\n\nTo install pydantic you will first need python and pip. Once you have pip\ninstalled you can install pydantic with pip.\n\n```bash\npip install pydantic\n```\n\n\u003e Always install in a virtual environment\n\n## Creating a Pydantic model\n\nTo get started with pydantic you will first need to create a Pydantic model.\nThis is a python class that inherits from `pydantic.BaseModel`.\n\n```{.python .darkmark}\nfrom pydantic import BaseModel\nfrom pydantic import Field\nfrom typing import Optional\n\nclass Person(BaseModel):\n    name: str = Field(...)\n    age: int\n```\n\n## parsing an object\n\n```{.python .darkmark}\nperson = Person(name=\"John Doe\", age=30)\nprint(person)\n```\n``` {.console .darkmark_output}\nname='John Doe' age=30\n\n```\n\n\n## data serialization\n\nPydantic has some very robust serialization methods that will automatically\ncoherse your data into the type specified by the type-hint in the model if it can.\n\n```{.python .darkmark}\nperson = Person(name=12, age=\"30\")\nprint(f'name: {person.name}, type: {type(person.name)}')\nprint(f'age: {person.age}, type: {type(person.age)}')\n```\n``` {.console .darkmark_output}\n1 validation error for Person\nname\n  Input should be a valid string [type=string_type, input_value=12, input_type=int]\n    For further information visit https://errors.pydantic.dev/2.3/v/string_type\n```\n\n\n```{.python .darkmark}\nperson = Person(name=\"John Doe\", age='thirty')\nprint(f'name: {person.name}, type: {type(person.name)}')\nprint(f'age: {person.age}, type: {type(person.age)}')\n```\n``` {.console .darkmark_output}\n1 validation error for Person\nage\n  Input should be a valid integer, unable to parse string as an integer [type=int_parsing, input_value='thirty', input_type=str]\n    For further information visit https://errors.pydantic.dev/2.3/v/int_parsing\n```\n\n\n## loading from json\n\n## serializing to json\n\n## validation\n",
      "summary": "Pydantic is a Python library for serializing data into models that can be validated with a deep set of built in valitators or your own custom validators, and...",
      "date_published": "2023-05-30T13:35:27Z",
      "date_modified": "2023-05-30T13:35:27Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "pydantic"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/knockout-city/",
      "url": "https://go.waylonwalker.com/steam/knockout-city/",
      "title": "Knockout City™",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/1301210/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/1301210/library_600x900.jpg\" alt=\"Knockout City™ box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/1301210/header.jpg\u0026#39;\"/ data-glightbox=\"description: Knockout City™ box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eKnockout City™\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 2.0%\"\u003e\n        2.0%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e1/50 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e4.0h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2023-05-25\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (1)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/47a2036b2a11249ff986fb4e36e165f8e151e316.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/47a2036b2a11249ff986fb4e36e165f8e151e316.jpg\" alt=\"Blast Off\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Blast Off\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlast Off\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 21, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (49)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/0016fdab5e27db59af5f97bf40ab2bbe28cabac3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/0016fdab5e27db59af5f97bf40ab2bbe28cabac3.jpg\" alt=\"Welcome to KO City\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Welcome to KO City\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWelcome to KO City\u003c/strong\u003e\u003cbr/\u003e\n    Earn 50,000 XP\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/1b4ab1a342315f00d141ae85c42952cbc3a49125.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/1b4ab1a342315f00d141ae85c42952cbc3a49125.jpg\" alt=\"Well on Your Way\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Well on Your Way\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWell on Your Way\u003c/strong\u003e\u003cbr/\u003e\n    Earn 100,000 XP\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/62cb3938a31aac17ff20cf36c9248372cc294e02.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/62cb3938a31aac17ff20cf36c9248372cc294e02.jpg\" alt=\"Welcome to the Big Leagues\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Welcome to the Big Leagues\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWelcome to the Big Leagues\u003c/strong\u003e\u003cbr/\u003e\n    Earn 250,000 XP\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/5e7fc3c747c26da551aa7d06a32feea1703d9e17.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/5e7fc3c747c26da551aa7d06a32feea1703d9e17.jpg\" alt=\"Tag Team Victory\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tag Team Victory\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTag Team Victory\u003c/strong\u003e\u003cbr/\u003e\n    Win 10 matches while grouped with a Friend\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/211c25511337c48b2d1d189a86783a89daf4e83c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/211c25511337c48b2d1d189a86783a89daf4e83c.jpg\" alt=\"Squad Up\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Squad Up\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSquad Up\u003c/strong\u003e\u003cbr/\u003e\n    Play 30 matches while grouped with a Friend\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/39e0b86712b473e192c8daa4ddd88434e1403e7c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/39e0b86712b473e192c8daa4ddd88434e1403e7c.jpg\" alt=\"Making Waves\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Making Waves\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaking Waves\u003c/strong\u003e\u003cbr/\u003e\n    Win 5 matches while grouped with a Crewmate\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/2a8ab05b7732393b25662eaa44321cb58fd3134a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/2a8ab05b7732393b25662eaa44321cb58fd3134a.jpg\" alt=\"Glug Glug\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Glug Glug\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGlug Glug\u003c/strong\u003e\u003cbr/\u003e\n    Use 5 Energy Drinks\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/1695fb47095f7079c9679f1b9912564b70f40ed0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/1695fb47095f7079c9679f1b9912564b70f40ed0.jpg\" alt=\"True Brawler\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: True Brawler\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTrue Brawler\u003c/strong\u003e\u003cbr/\u003e\n    Play 100 matches\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/a3cb71dca8492b82d85d78bc8211949f34d3e347.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/a3cb71dca8492b82d85d78bc8211949f34d3e347.jpg\" alt=\"Knockout Master\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Knockout Master\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKnockout Master\u003c/strong\u003e\u003cbr/\u003e\n    Score 1000 KOs\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/cb70273979e05310381a81b5fdda96778ebe2225.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/cb70273979e05310381a81b5fdda96778ebe2225.jpg\" alt=\"Most Valuable Player\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Most Valuable Player\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMost Valuable Player\u003c/strong\u003e\u003cbr/\u003e\n    Be the MVP of a three or four player team 5 times\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/4a740bfeed5cdf5456b05459f0ad100fe6d846b3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/4a740bfeed5cdf5456b05459f0ad100fe6d846b3.jpg\" alt=\"Star on the Rise\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Star on the Rise\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStar on the Rise\u003c/strong\u003e\u003cbr/\u003e\n    Win 30 matches\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/10946b829cdf19d7574fc6ca2729e6e62f6b6a5f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/10946b829cdf19d7574fc6ca2729e6e62f6b6a5f.jpg\" alt=\"Catch-o-matic\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Catch-o-matic\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCatch-o-matic\u003c/strong\u003e\u003cbr/\u003e\n    Catch 1000 dodgeballs\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/c333cc3af8ddc8ff425a292e81a9b989d72eb147.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/c333cc3af8ddc8ff425a292e81a9b989d72eb147.jpg\" alt=\"Point Guard\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Point Guard\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePoint Guard\u003c/strong\u003e\u003cbr/\u003e\n    Score 1000 KO Assists\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/3b4786eb56d352008e3957c36eb2372a75752dff.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/3b4786eb56d352008e3957c36eb2372a75752dff.jpg\" alt=\"Boom Goes the Dynamite\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Boom Goes the Dynamite\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBoom Goes the Dynamite\u003c/strong\u003e\u003cbr/\u003e\n    Score 100 KO Finishes with Ultimate Throws\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/4e5f1e6dad7d61ef6f94f57825fbab4ed6f244f8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/4e5f1e6dad7d61ef6f94f57825fbab4ed6f244f8.jpg\" alt=\"Rollin \u0026#39;Round the City\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Rollin \u0026#39;Round the City\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRollin \u0026#39;Round the City\u003c/strong\u003e\u003cbr/\u003e\n    Travel 100km in ballform\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/d7af84d0b4cfb0537d5352953c337663fa6d3e09.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/d7af84d0b4cfb0537d5352953c337663fa6d3e09.jpg\" alt=\"Overwhelming Victory\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Overwhelming Victory\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOverwhelming Victory\u003c/strong\u003e\u003cbr/\u003e\n    Win 10 rounds with five times the opponent\u0026#39;s score\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/17a81e6883f83c25eba40f5a1fc9b269ed82298d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/17a81e6883f83c25eba40f5a1fc9b269ed82298d.jpg\" alt=\"Invincible\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Invincible\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInvincible\u003c/strong\u003e\u003cbr/\u003e\n    Win a match without being KO\u0026#39;d\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/32b6241848ba99525db4c7c1f81f13eff1f25ef4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/32b6241848ba99525db4c7c1f81f13eff1f25ef4.jpg\" alt=\"Unstoppable\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Unstoppable\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUnstoppable\u003c/strong\u003e\u003cbr/\u003e\n    Score 10 KOs without being KO\u0026#39;d\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/1b46508cb9b6f437c905185618ed4f11de0892f9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/1b46508cb9b6f437c905185618ed4f11de0892f9.jpg\" alt=\"Passing Prodigy\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Passing Prodigy\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePassing Prodigy\u003c/strong\u003e\u003cbr/\u003e\n    Win a match without throwing a single dodgeball - Passing is allowed!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/311605e5d1f910a181ec40eeb8c3719e10e6a77e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/311605e5d1f910a181ec40eeb8c3719e10e6a77e.jpg\" alt=\"Walk-In Closet\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Walk-In Closet\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWalk-In Closet\u003c/strong\u003e\u003cbr/\u003e\n    Win matches with 10 unique Outfits\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/276c9ef694eeb79a845f1db1dd8f18267c680f2c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/276c9ef694eeb79a845f1db1dd8f18267c680f2c.jpg\" alt=\"Fashion Statement\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fashion Statement\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFashion Statement\u003c/strong\u003e\u003cbr/\u003e\n    Win a match while having an Uncommon (or rarer) accessory equipped in each slot\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/44ba11c5cd2b020a47480b59e35d62bd1341c6df.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/44ba11c5cd2b020a47480b59e35d62bd1341c6df.jpg\" alt=\"Fancy duds\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fancy duds\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFancy duds\u003c/strong\u003e\u003cbr/\u003e\n    Win a match while having a Legendary Outfit equipped\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/24b5242aa5eba649a27f66da1f846ad3e41242d0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/24b5242aa5eba649a27f66da1f846ad3e41242d0.jpg\" alt=\"Stylin \u0026#39;and Profilin\u0026#39;\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Stylin \u0026#39;and Profilin\u0026#39;\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStylin \u0026#39;and Profilin\u0026#39;\u003c/strong\u003e\u003cbr/\u003e\n    Win matches with each Style of an Outfit\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/664402f81dbaedccd4234962a27f165069303226.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/664402f81dbaedccd4234962a27f165069303226.jpg\" alt=\"Leg and Dairy\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Leg and Dairy\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLeg and Dairy\u003c/strong\u003e\u003cbr/\u003e\n    Win a match while having 5 or more Legendary accessories equipped\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/2c4824e61a8ac345f2adf3885fa08ecf108ad31d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/2c4824e61a8ac345f2adf3885fa08ecf108ad31d.jpg\" alt=\"Fashionista\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fashionista\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFashionista\u003c/strong\u003e\u003cbr/\u003e\n    Win matches with 20 Outfit and/or Glove Styles\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/01a8f1c191de4b2d471008860cff5ade60a9cfd7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/01a8f1c191de4b2d471008860cff5ade60a9cfd7.jpg\" alt=\"Optomendary\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Optomendary\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOptomendary\u003c/strong\u003e\u003cbr/\u003e\n    Win a match while having Legendary Glasses equipped\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/f0deed4e7b053d32a26a89880f5fcd158fd2a0e3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/f0deed4e7b053d32a26a89880f5fcd158fd2a0e3.jpg\" alt=\"Fisticuffs\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fisticuffs\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFisticuffs\u003c/strong\u003e\u003cbr/\u003e\n    Win a match while having Legendary Gloves equipped\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/7faf7edfd08dff4d160deb1fbff043038f7fa79b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/7faf7edfd08dff4d160deb1fbff043038f7fa79b.jpg\" alt=\"It\u0026#39;s a Bird! It\u0026#39;s a Plane!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: It\u0026#39;s a Bird! It\u0026#39;s a Plane!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt\u0026#39;s a Bird! It\u0026#39;s a Plane!\u003c/strong\u003e\u003cbr/\u003e\n    Win a match while having a Legendary Glider equipped\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/452b7c01540da08b73520955c6fae4ead8ae96b5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/452b7c01540da08b73520955c6fae4ead8ae96b5.jpg\" alt=\"Daily Doer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Daily Doer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDaily Doer\u003c/strong\u003e\u003cbr/\u003e\n    Complete 100 Daily Contracts\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/3cde7b14fa99382e714b97e89834061ba39858ba.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/3cde7b14fa99382e714b97e89834061ba39858ba.jpg\" alt=\"Crew Completer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Crew Completer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCrew Completer\u003c/strong\u003e\u003cbr/\u003e\n    Complete 30 Crew Contracts\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/c0baf6a16360373d312475ca75909d98fc2d1864.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/c0baf6a16360373d312475ca75909d98fc2d1864.jpg\" alt=\"Event Evangelist\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Event Evangelist\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEvent Evangelist\u003c/strong\u003e\u003cbr/\u003e\n    Complete 5 Event Contracts\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/5944456a17da422c3c7e3a2347dff3204086fefc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/5944456a17da422c3c7e3a2347dff3204086fefc.jpg\" alt=\"Sensational Season\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sensational Season\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSensational Season\u003c/strong\u003e\u003cbr/\u003e\n    Complete 5 Season Contracts\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/594514c8afb0e4f8c3da3b22c8dd50bd77b38245.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/594514c8afb0e4f8c3da3b22c8dd50bd77b38245.jpg\" alt=\"True Talent\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: True Talent\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTrue Talent\u003c/strong\u003e\u003cbr/\u003e\n    Complete the first 5 Training Levels\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/56dc930208cb08bcc733c1960255a4c6301ec9cd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/56dc930208cb08bcc733c1960255a4c6301ec9cd.jpg\" alt=\"Career Brawler\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Career Brawler\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCareer Brawler\u003c/strong\u003e\u003cbr/\u003e\n    Complete 100 Contracts\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/3bcd17f98fb183fdd08f2f1b624b7dd09a3666b0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/3bcd17f98fb183fdd08f2f1b624b7dd09a3666b0.jpg\" alt=\"No Escape\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: No Escape\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNo Escape\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/caa4ffe35d4a222a9f33ba6f6e91b6c91526966e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/caa4ffe35d4a222a9f33ba6f6e91b6c91526966e.jpg\" alt=\"High Score\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: High Score\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHigh Score\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/e42beae27e9e5bad1704ac77d510627cf8605b4c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/e42beae27e9e5bad1704ac77d510627cf8605b4c.jpg\" alt=\"Catching Bullets\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Catching Bullets\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCatching Bullets\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/d2d896af37a5f6bd37a1f9a2569375dde544f18d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/d2d896af37a5f6bd37a1f9a2569375dde544f18d.jpg\" alt=\"One Small Step for Man\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: One Small Step for Man\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOne Small Step for Man\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/db88fc2bce16b9874708a4364e86d00a75761c1c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/db88fc2bce16b9874708a4364e86d00a75761c1c.jpg\" alt=\"You Shall Not Pass\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: You Shall Not Pass\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou Shall Not Pass\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/ea1a859f4be8252ec788514b3c9468b73d7a42d4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/ea1a859f4be8252ec788514b3c9468b73d7a42d4.jpg\" alt=\"Wreck \u0026#39;Em!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Wreck \u0026#39;Em!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWreck \u0026#39;Em!\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/7c94af637f1add93b1650884e54692a34a4a9bad.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/7c94af637f1add93b1650884e54692a34a4a9bad.jpg\" alt=\"Hit and Run\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hit and Run\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHit and Run\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/14c1b5111a934853dc65fa9455dbfbcf8d49dc47.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/14c1b5111a934853dc65fa9455dbfbcf8d49dc47.jpg\" alt=\"Taking Out the Trash\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Taking Out the Trash\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTaking Out the Trash\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/0ebf89dba718845c2975eab3536287e62d38a210.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/0ebf89dba718845c2975eab3536287e62d38a210.jpg\" alt=\"Hasta Luego!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hasta Luego!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHasta Luego!\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/204a1374df261d782aaac534c560d05cc4617157.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/204a1374df261d782aaac534c560d05cc4617157.jpg\" alt=\"Get Off My Lawn\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Get Off My Lawn\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGet Off My Lawn\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/00259d91c3df2dcbffd88053b4157448479060af.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/00259d91c3df2dcbffd88053b4157448479060af.jpg\" alt=\"Pendulum\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Pendulum\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePendulum\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/988975828fa28bfbb2c002e6bcf2aa6cd4b96d12.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/988975828fa28bfbb2c002e6bcf2aa6cd4b96d12.jpg\" alt=\"Earning Miles\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Earning Miles\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEarning Miles\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/72186dcbb6b69faa50799e81c02862140794e6aa.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/72186dcbb6b69faa50799e81c02862140794e6aa.jpg\" alt=\"Traffic Circle\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Traffic Circle\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTraffic Circle\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/f4a8b924a1229456b6e13f158d095c7ee7af0643.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/f4a8b924a1229456b6e13f158d095c7ee7af0643.jpg\" alt=\"Garbage Disposal\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Garbage Disposal\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGarbage Disposal\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/241ed1de41d4d362e75a754636f9ed78a0e7d7b7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/241ed1de41d4d362e75a754636f9ed78a0e7d7b7.jpg\" alt=\"Dangerous Delivery\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Dangerous Delivery\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDangerous Delivery\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/1301210/library_600x900.jpg\" alt=\"Knockout City™ box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/1301210/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eKnockout City™\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 2.0%\"\u003e\n        2.0%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e1/50 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e4.0h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2023-05-25\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (1)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/47a2036b2a11249ff986fb4e36e165f8e151e316.jpg\" alt=\"Blast Off\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlast Off\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 21, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (49)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/0016fdab5e27db59af5f97bf40ab2bbe28cabac3.jpg\" alt=\"Welcome to KO City\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWelcome to KO City\u003c/strong\u003e\u003cbr\u003e\n    Earn 50,000 XP\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/1b4ab1a342315f00d141ae85c42952cbc3a49125.jpg\" alt=\"Well on Your Way\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWell on Your Way\u003c/strong\u003e\u003cbr\u003e\n    Earn 100,000 XP\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/62cb3938a31aac17ff20cf36c9248372cc294e02.jpg\" alt=\"Welcome to the Big Leagues\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWelcome to the Big Leagues\u003c/strong\u003e\u003cbr\u003e\n    Earn 250,000 XP\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/5e7fc3c747c26da551aa7d06a32feea1703d9e17.jpg\" alt=\"Tag Team Victory\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTag Team Victory\u003c/strong\u003e\u003cbr\u003e\n    Win 10 matches while grouped with a Friend\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/211c25511337c48b2d1d189a86783a89daf4e83c.jpg\" alt=\"Squad Up\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSquad Up\u003c/strong\u003e\u003cbr\u003e\n    Play 30 matches while grouped with a Friend\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/39e0b86712b473e192c8daa4ddd88434e1403e7c.jpg\" alt=\"Making Waves\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaking Waves\u003c/strong\u003e\u003cbr\u003e\n    Win 5 matches while grouped with a Crewmate\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/2a8ab05b7732393b25662eaa44321cb58fd3134a.jpg\" alt=\"Glug Glug\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGlug Glug\u003c/strong\u003e\u003cbr\u003e\n    Use 5 Energy Drinks\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/1695fb47095f7079c9679f1b9912564b70f40ed0.jpg\" alt=\"True Brawler\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTrue Brawler\u003c/strong\u003e\u003cbr\u003e\n    Play 100 matches\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/a3cb71dca8492b82d85d78bc8211949f34d3e347.jpg\" alt=\"Knockout Master\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKnockout Master\u003c/strong\u003e\u003cbr\u003e\n    Score 1000 KOs\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/cb70273979e05310381a81b5fdda96778ebe2225.jpg\" alt=\"Most Valuable Player\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMost Valuable Player\u003c/strong\u003e\u003cbr\u003e\n    Be the MVP of a three or four player team 5 times\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/4a740bfeed5cdf5456b05459f0ad100fe6d846b3.jpg\" alt=\"Star on the Rise\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStar on the Rise\u003c/strong\u003e\u003cbr\u003e\n    Win 30 matches\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/10946b829cdf19d7574fc6ca2729e6e62f6b6a5f.jpg\" alt=\"Catch-o-matic\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCatch-o-matic\u003c/strong\u003e\u003cbr\u003e\n    Catch 1000 dodgeballs\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/c333cc3af8ddc8ff425a292e81a9b989d72eb147.jpg\" alt=\"Point Guard\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePoint Guard\u003c/strong\u003e\u003cbr\u003e\n    Score 1000 KO Assists\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/3b4786eb56d352008e3957c36eb2372a75752dff.jpg\" alt=\"Boom Goes the Dynamite\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBoom Goes the Dynamite\u003c/strong\u003e\u003cbr\u003e\n    Score 100 KO Finishes with Ultimate Throws\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/4e5f1e6dad7d61ef6f94f57825fbab4ed6f244f8.jpg\" alt=\"Rollin 'Round the City\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRollin 'Round the City\u003c/strong\u003e\u003cbr\u003e\n    Travel 100km in ballform\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/d7af84d0b4cfb0537d5352953c337663fa6d3e09.jpg\" alt=\"Overwhelming Victory\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOverwhelming Victory\u003c/strong\u003e\u003cbr\u003e\n    Win 10 rounds with five times the opponent's score\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/17a81e6883f83c25eba40f5a1fc9b269ed82298d.jpg\" alt=\"Invincible\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInvincible\u003c/strong\u003e\u003cbr\u003e\n    Win a match without being KO'd\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/32b6241848ba99525db4c7c1f81f13eff1f25ef4.jpg\" alt=\"Unstoppable\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUnstoppable\u003c/strong\u003e\u003cbr\u003e\n    Score 10 KOs without being KO'd\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/1b46508cb9b6f437c905185618ed4f11de0892f9.jpg\" alt=\"Passing Prodigy\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePassing Prodigy\u003c/strong\u003e\u003cbr\u003e\n    Win a match without throwing a single dodgeball - Passing is allowed!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/311605e5d1f910a181ec40eeb8c3719e10e6a77e.jpg\" alt=\"Walk-In Closet\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWalk-In Closet\u003c/strong\u003e\u003cbr\u003e\n    Win matches with 10 unique Outfits\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/276c9ef694eeb79a845f1db1dd8f18267c680f2c.jpg\" alt=\"Fashion Statement\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFashion Statement\u003c/strong\u003e\u003cbr\u003e\n    Win a match while having an Uncommon (or rarer) accessory equipped in each slot\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/44ba11c5cd2b020a47480b59e35d62bd1341c6df.jpg\" alt=\"Fancy duds\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFancy duds\u003c/strong\u003e\u003cbr\u003e\n    Win a match while having a Legendary Outfit equipped\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/24b5242aa5eba649a27f66da1f846ad3e41242d0.jpg\" alt=\"Stylin 'and Profilin'\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStylin 'and Profilin'\u003c/strong\u003e\u003cbr\u003e\n    Win matches with each Style of an Outfit\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/664402f81dbaedccd4234962a27f165069303226.jpg\" alt=\"Leg and Dairy\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLeg and Dairy\u003c/strong\u003e\u003cbr\u003e\n    Win a match while having 5 or more Legendary accessories equipped\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/2c4824e61a8ac345f2adf3885fa08ecf108ad31d.jpg\" alt=\"Fashionista\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFashionista\u003c/strong\u003e\u003cbr\u003e\n    Win matches with 20 Outfit and/or Glove Styles\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/01a8f1c191de4b2d471008860cff5ade60a9cfd7.jpg\" alt=\"Optomendary\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOptomendary\u003c/strong\u003e\u003cbr\u003e\n    Win a match while having Legendary Glasses equipped\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/f0deed4e7b053d32a26a89880f5fcd158fd2a0e3.jpg\" alt=\"Fisticuffs\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFisticuffs\u003c/strong\u003e\u003cbr\u003e\n    Win a match while having Legendary Gloves equipped\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/7faf7edfd08dff4d160deb1fbff043038f7fa79b.jpg\" alt=\"It's a Bird! It's a Plane!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt's a Bird! It's a Plane!\u003c/strong\u003e\u003cbr\u003e\n    Win a match while having a Legendary Glider equipped\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/452b7c01540da08b73520955c6fae4ead8ae96b5.jpg\" alt=\"Daily Doer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDaily Doer\u003c/strong\u003e\u003cbr\u003e\n    Complete 100 Daily Contracts\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/3cde7b14fa99382e714b97e89834061ba39858ba.jpg\" alt=\"Crew Completer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCrew Completer\u003c/strong\u003e\u003cbr\u003e\n    Complete 30 Crew Contracts\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/c0baf6a16360373d312475ca75909d98fc2d1864.jpg\" alt=\"Event Evangelist\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEvent Evangelist\u003c/strong\u003e\u003cbr\u003e\n    Complete 5 Event Contracts\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/5944456a17da422c3c7e3a2347dff3204086fefc.jpg\" alt=\"Sensational Season\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSensational Season\u003c/strong\u003e\u003cbr\u003e\n    Complete 5 Season Contracts\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/594514c8afb0e4f8c3da3b22c8dd50bd77b38245.jpg\" alt=\"True Talent\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTrue Talent\u003c/strong\u003e\u003cbr\u003e\n    Complete the first 5 Training Levels\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/56dc930208cb08bcc733c1960255a4c6301ec9cd.jpg\" alt=\"Career Brawler\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCareer Brawler\u003c/strong\u003e\u003cbr\u003e\n    Complete 100 Contracts\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/3bcd17f98fb183fdd08f2f1b624b7dd09a3666b0.jpg\" alt=\"No Escape\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNo Escape\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/caa4ffe35d4a222a9f33ba6f6e91b6c91526966e.jpg\" alt=\"High Score\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHigh Score\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/e42beae27e9e5bad1704ac77d510627cf8605b4c.jpg\" alt=\"Catching Bullets\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCatching Bullets\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/d2d896af37a5f6bd37a1f9a2569375dde544f18d.jpg\" alt=\"One Small Step for Man\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOne Small Step for Man\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/db88fc2bce16b9874708a4364e86d00a75761c1c.jpg\" alt=\"You Shall Not Pass\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou Shall Not Pass\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/ea1a859f4be8252ec788514b3c9468b73d7a42d4.jpg\" alt=\"Wreck 'Em!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWreck 'Em!\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/7c94af637f1add93b1650884e54692a34a4a9bad.jpg\" alt=\"Hit and Run\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHit and Run\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/14c1b5111a934853dc65fa9455dbfbcf8d49dc47.jpg\" alt=\"Taking Out the Trash\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTaking Out the Trash\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/0ebf89dba718845c2975eab3536287e62d38a210.jpg\" alt=\"Hasta Luego!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHasta Luego!\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/204a1374df261d782aaac534c560d05cc4617157.jpg\" alt=\"Get Off My Lawn\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGet Off My Lawn\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/00259d91c3df2dcbffd88053b4157448479060af.jpg\" alt=\"Pendulum\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePendulum\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/988975828fa28bfbb2c002e6bcf2aa6cd4b96d12.jpg\" alt=\"Earning Miles\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEarning Miles\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/72186dcbb6b69faa50799e81c02862140794e6aa.jpg\" alt=\"Traffic Circle\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTraffic Circle\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/f4a8b924a1229456b6e13f158d095c7ee7af0643.jpg\" alt=\"Garbage Disposal\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGarbage Disposal\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1301210/241ed1de41d4d362e75a754636f9ed78a0e7d7b7.jpg\" alt=\"Dangerous Delivery\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDangerous Delivery\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Knockout City™ - 2.0% complete with 1/50 achievements unlocked.",
      "date_published": "2023-05-25T00:00:00Z",
      "date_modified": "2023-05-25T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "knockout-city"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/badger/",
      "url": "https://go.waylonwalker.com/steam/badger/",
      "title": "Badger",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/1928870/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/1928870/library_600x900.jpg\" alt=\"Badger box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/1928870/header.jpg\u0026#39;\"/ data-glightbox=\"description: Badger box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eBadger\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 12.5%\"\u003e\n        12.5%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e5/40 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e19.0h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2023-04-28\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (5)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/9b4b7e3f2d68a29dff2f8a92c9475af87648486c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/9b4b7e3f2d68a29dff2f8a92c9475af87648486c.jpg\" alt=\"With Light Comes Hope\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: With Light Comes Hope\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWith Light Comes Hope\u003c/strong\u003e\u003cbr/\u003e\n    Destroy the Night Beacon Base.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 18, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/41320ed02fabab94b9904ca04353cfd5470f50c8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/41320ed02fabab94b9904ca04353cfd5470f50c8.jpg\" alt=\"Working Together\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Working Together\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWorking Together\u003c/strong\u003e\u003cbr/\u003e\n    Play a game of co-op.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 18, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/316d58b8f754c0ffcb1395afb558ca4d5c405fc8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/316d58b8f754c0ffcb1395afb558ca4d5c405fc8.jpg\" alt=\"No Time for Swine\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: No Time for Swine\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNo Time for Swine\u003c/strong\u003e\u003cbr/\u003e\n    Defeat 1,000 piglins in a single world.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 18, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/683b7d644cbb7451c3b643bfd9ad591ad6608378.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/683b7d644cbb7451c3b643bfd9ad591ad6608378.jpg\" alt=\"Ridin’ the Grain Train\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ridin’ the Grain Train\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRidin’ the Grain Train\u003c/strong\u003e\u003cbr/\u003e\n    Spend 2 minutes buffed by speed wheat in a single world.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 19, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/9a69c0979f54957a3c534aa49839cff8b34eae55.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/9a69c0979f54957a3c534aa49839cff8b34eae55.jpg\" alt=\"Impressive Gifts\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Impressive Gifts\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eImpressive Gifts\u003c/strong\u003e\u003cbr/\u003e\n    Complete the tutorial.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 18, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (35)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/18cbceedcd4464ce31882eea66332f6d96af358e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/18cbceedcd4464ce31882eea66332f6d96af358e.jpg\" alt=\"Became the Hunted\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Became the Hunted\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBecame the Hunted\u003c/strong\u003e\u003cbr/\u003e\n    Defeat The Beast.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/4d464eedc5c1698ff183056e757c8e0246e1333d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/4d464eedc5c1698ff183056e757c8e0246e1333d.jpg\" alt=\"Broken\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Broken\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBroken\u003c/strong\u003e\u003cbr/\u003e\n    Defeat The Unbreakable.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/5c8c1a6e5d23843f9d9a1091b1511ce669da3891.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/5c8c1a6e5d23843f9d9a1091b1511ce669da3891.jpg\" alt=\"More Than It Could Chew\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: More Than It Could Chew\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMore Than It Could Chew\u003c/strong\u003e\u003cbr/\u003e\n    Defeat The Devourer.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/605eb1d602afe8ef4577c04795ab72ca7394989e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/605eb1d602afe8ef4577c04795ab72ca7394989e.jpg\" alt=\"Defender of the Overworld\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Defender of the Overworld\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDefender of the Overworld\u003c/strong\u003e\u003cbr/\u003e\n    Defeat The Great Hog.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/44eaeedea4f966e3ce8bfd65878ee9993c63cb0a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/44eaeedea4f966e3ce8bfd65878ee9993c63cb0a.jpg\" alt=\"Riding in Style\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Riding in Style\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRiding in Style\u003c/strong\u003e\u003cbr/\u003e\n    Ride all of the different mounts in a single world.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/3a56d6ac742f5617c1d1877c95e992448ca9e082.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/3a56d6ac742f5617c1d1877c95e992448ca9e082.jpg\" alt=\"Variety is the Spice of Life\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Variety is the Spice of Life\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVariety is the Spice of Life\u003c/strong\u003e\u003cbr/\u003e\n    Build all the different improvements at the Well of Fate in a single world.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/13856b0790fdbaf592199651b60acf4b08faddf5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/13856b0790fdbaf592199651b60acf4b08faddf5.jpg\" alt=\"I Can See My Village From Here\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: I Can See My Village From Here\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI Can See My Village From Here\u003c/strong\u003e\u003cbr/\u003e\n    Spend 20 minutes buffed by bouncecaps in a single world.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/73346e3fb7ee81c4f865c7799115a89fad7a3c60.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/73346e3fb7ee81c4f865c7799115a89fad7a3c60.jpg\" alt=\"Legendary Hero\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Legendary Hero\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLegendary Hero\u003c/strong\u003e\u003cbr/\u003e\n    Defeat the campaign on Legendary.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/d833cffc12ed45193528a0ca115101f274526236.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/d833cffc12ed45193528a0ca115101f274526236.jpg\" alt=\"Bulldozer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bulldozer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBulldozer\u003c/strong\u003e\u003cbr/\u003e\n    Destroy a base in under 7 minutes!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/44e22ecb0f879184660ab297d11a4e3a8a688913.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/44e22ecb0f879184660ab297d11a4e3a8a688913.jpg\" alt=\"Wheeeeeeeeeee!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Wheeeeeeeeeee!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWheeeeeeeeeee!\u003c/strong\u003e\u003cbr/\u003e\n    Glide for 30 seconds consecutively on the big beak or brilliant beetle.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/620f761c3374db65ecffab6a575b5d3e2f2ea6e9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/620f761c3374db65ecffab6a575b5d3e2f2ea6e9.jpg\" alt=\"Resource Reinforcements\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Resource Reinforcements\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eResource Reinforcements\u003c/strong\u003e\u003cbr/\u003e\n    Open 5 allay chests in a single world.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/2a3ecd339d16b3c3c81acfeb805e47339fc6dd8e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/2a3ecd339d16b3c3c81acfeb805e47339fc6dd8e.jpg\" alt=\"The Way of the Sword\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Way of the Sword\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Way of the Sword\u003c/strong\u003e\u003cbr/\u003e\n    Defeat another player with your sword in Versus Mode.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/36a527d3a21c974588cc040d36e0b140d4c33c3a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/36a527d3a21c974588cc040d36e0b140d4c33c3a.jpg\" alt=\"Soothe the Scars\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Soothe the Scars\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSoothe the Scars\u003c/strong\u003e\u003cbr/\u003e\n    Cure 20,000 netherrack blocks in a single world.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/5bfc400707f6ecb7cb011647fdbef3b4654c26c4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/5bfc400707f6ecb7cb011647fdbef3b4654c26c4.jpg\" alt=\"Are These Made of Nether Wart?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Are These Made of Nether Wart?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAre These Made of Nether Wart?\u003c/strong\u003e\u003cbr/\u003e\n    Destroy 250 piglin buildings in a single world.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/ccb0637ac02e23cad63a9bde6b54f28fd04d7111.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/ccb0637ac02e23cad63a9bde6b54f28fd04d7111.jpg\" alt=\"Nailbiter\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Nailbiter\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNailbiter\u003c/strong\u003e\u003cbr/\u003e\n    Defeat an opponent with less than 10% of your HQ\u0026#39;s health remaining in Versus Mode.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/085968940424c1786171a5bf590cf16496a1c3b8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/085968940424c1786171a5bf590cf16496a1c3b8.jpg\" alt=\"Excitable New Friends\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Excitable New Friends\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExcitable New Friends\u003c/strong\u003e\u003cbr/\u003e\n    Forge an alliance with the creepers.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/978a2f0a733bbe27c5ec1f0f59b8664887eb97cb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/978a2f0a733bbe27c5ec1f0f59b8664887eb97cb.jpg\" alt=\"Unnatural Aim\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Unnatural Aim\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUnnatural Aim\u003c/strong\u003e\u003cbr/\u003e\n    Forge an alliance with the skeletons.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/7f9fa803d79fc39bce4c3cf09aeec06d95fdb56b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/7f9fa803d79fc39bce4c3cf09aeec06d95fdb56b.jpg\" alt=\"They REALLY Like That Flower\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: They REALLY Like That Flower\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThey REALLY Like That Flower\u003c/strong\u003e\u003cbr/\u003e\n    Forge an alliance with the zombies.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/6dcfe6725e055a9c91816e79e4b03ab42f6f085e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/6dcfe6725e055a9c91816e79e4b03ab42f6f085e.jpg\" alt=\"Bringing Out the Big Blocks\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bringing Out the Big Blocks\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBringing Out the Big Blocks\u003c/strong\u003e\u003cbr/\u003e\n    Construct 3 host towers within attack range of one another.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/d3d28822c337c5baf610cf1d7062ed31f3cb56d5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/d3d28822c337c5baf610cf1d7062ed31f3cb56d5.jpg\" alt=\"All-Star Cast\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: All-Star Cast\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAll-Star Cast\u003c/strong\u003e\u003cbr/\u003e\n    Collect all the Firsts in a single world.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/2d271c871a6779ea3c9febafd37d3d1eedd955ba.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/2d271c871a6779ea3c9febafd37d3d1eedd955ba.jpg\" alt=\"Bounty of the Overworld\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bounty of the Overworld\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBounty of the Overworld\u003c/strong\u003e\u003cbr/\u003e\n    Gather 1,000 wood and stone and 125 iron, coal, redstone and diamond in a single world.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/d6337b8d63111f3457ce34cb9543b4a59ebe0388.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/d6337b8d63111f3457ce34cb9543b4a59ebe0388.jpg\" alt=\"Feed the Flames\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Feed the Flames\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFeed the Flames\u003c/strong\u003e\u003cbr/\u003e\n    Gather 2,400 lapis in 30 minutes or less in Versus Mode.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/6c932cfe257cfb2415edaee42ab8ae1cda3d66ff.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/6c932cfe257cfb2415edaee42ab8ae1cda3d66ff.jpg\" alt=\"Banner Expert\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Banner Expert\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBanner Expert\u003c/strong\u003e\u003cbr/\u003e\n    Give 25 orders from Banner View in a single world.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/1ffdb6391935e6cf1e9ba185d8950e8d12f89283.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/1ffdb6391935e6cf1e9ba185d8950e8d12f89283.jpg\" alt=\"One Boom at a Time\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: One Boom at a Time\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOne Boom at a Time\u003c/strong\u003e\u003cbr/\u003e\n    Give 10 individual orders to creepers from Banner View in a single world.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/c19e0bd886b090abcfaaf6fd01a99d4fc30b2ea7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/c19e0bd886b090abcfaaf6fd01a99d4fc30b2ea7.jpg\" alt=\"Full Force\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Full Force\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFull Force\u003c/strong\u003e\u003cbr/\u003e\n    Give an army of 80 mobs an order.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/c98c2e7a9c3340d812a109103ddb1e4a48aa6b36.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/c98c2e7a9c3340d812a109103ddb1e4a48aa6b36.jpg\" alt=\"Petting Zoo\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Petting Zoo\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePetting Zoo\u003c/strong\u003e\u003cbr/\u003e\n    Pat Pat every type of animal in a single world.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/c83611a0bb6799648bf0320346d440bc626011a8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/c83611a0bb6799648bf0320346d440bc626011a8.jpg\" alt=\"Witchy Business\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Witchy Business\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWitchy Business\u003c/strong\u003e\u003cbr/\u003e\n    Spawn 50 witches in a single world.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/7cba130538620d120dc09b7481d1b3fbb2b9b255.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/7cba130538620d120dc09b7481d1b3fbb2b9b255.jpg\" alt=\"Cauldron Connoisseur\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cauldron Connoisseur\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCauldron Connoisseur\u003c/strong\u003e\u003cbr/\u003e\n    Build 10 cauldrons in a single world.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/4294e916588496831fa5b5a63aa8a8a665a4df05.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/4294e916588496831fa5b5a63aa8a8a665a4df05.jpg\" alt=\"Not A Fan\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Not A Fan\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNot A Fan\u003c/strong\u003e\u003cbr/\u003e\n    Defeat 10 piglin clangers in a single world.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/be596cdbbb5afe8cf7c0c1e5b47da8f3f9bc83f6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/be596cdbbb5afe8cf7c0c1e5b47da8f3f9bc83f6.jpg\" alt=\"Quiet the Clanging\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Quiet the Clanging\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eQuiet the Clanging\u003c/strong\u003e\u003cbr/\u003e\n    Defeat 10 piglin clangers in a single world.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/d20d8b9a3721a1b87593928b251d1af124b439c7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/d20d8b9a3721a1b87593928b251d1af124b439c7.jpg\" alt=\"Amphibian\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Amphibian\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAmphibian\u003c/strong\u003e\u003cbr/\u003e\n    Spend 10 minutes swimming on a frog mount in a single world.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/0b7041ad81f175142cca5ab823c6429a0667a20c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/0b7041ad81f175142cca5ab823c6429a0667a20c.jpg\" alt=\"The Best Defense is... No Defense\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Best Defense is... No Defense\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Best Defense is... No Defense\u003c/strong\u003e\u003cbr/\u003e\n    Win a custom Versus game with 2 or more players that has walls and gates disabled.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/7700bcfb2cd8a6cf014151c7211c6835fb59a81e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/7700bcfb2cd8a6cf014151c7211c6835fb59a81e.jpg\" alt=\"Head Start\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Head Start\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHead Start\u003c/strong\u003e\u003cbr/\u003e\n    Win a custom Versus game with 2 or more players that has tech unlocked and at least 2 starting resouces to 9999.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/a84619fa5292a627bac6829d0fefa3cadfcd3e23.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/a84619fa5292a627bac6829d0fefa3cadfcd3e23.jpg\" alt=\"When Pig(lins) Fly\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: When Pig(lins) Fly\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhen Pig(lins) Fly\u003c/strong\u003e\u003cbr/\u003e\n    Defeat a custom campaign with a knockback value of 200% or greater.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/d724ba1c267db618a57c070e89122bf55c3c933a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/d724ba1c267db618a57c070e89122bf55c3c933a.jpg\" alt=\"Elytra Envy\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Elytra Envy\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eElytra Envy\u003c/strong\u003e\u003cbr/\u003e\n    Defeat a custom campaign with a gravity value of 60% or less and high jump enabled.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/1928870/library_600x900.jpg\" alt=\"Badger box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/1928870/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eBadger\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 12.5%\"\u003e\n        12.5%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e5/40 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e19.0h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2023-04-28\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (5)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/9b4b7e3f2d68a29dff2f8a92c9475af87648486c.jpg\" alt=\"With Light Comes Hope\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWith Light Comes Hope\u003c/strong\u003e\u003cbr\u003e\n    Destroy the Night Beacon Base.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 18, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/41320ed02fabab94b9904ca04353cfd5470f50c8.jpg\" alt=\"Working Together\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWorking Together\u003c/strong\u003e\u003cbr\u003e\n    Play a game of co-op.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 18, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/316d58b8f754c0ffcb1395afb558ca4d5c405fc8.jpg\" alt=\"No Time for Swine\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNo Time for Swine\u003c/strong\u003e\u003cbr\u003e\n    Defeat 1,000 piglins in a single world.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 18, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/683b7d644cbb7451c3b643bfd9ad591ad6608378.jpg\" alt=\"Ridin’ the Grain Train\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRidin’ the Grain Train\u003c/strong\u003e\u003cbr\u003e\n    Spend 2 minutes buffed by speed wheat in a single world.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 19, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/9a69c0979f54957a3c534aa49839cff8b34eae55.jpg\" alt=\"Impressive Gifts\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eImpressive Gifts\u003c/strong\u003e\u003cbr\u003e\n    Complete the tutorial.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 18, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (35)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/18cbceedcd4464ce31882eea66332f6d96af358e.jpg\" alt=\"Became the Hunted\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBecame the Hunted\u003c/strong\u003e\u003cbr\u003e\n    Defeat The Beast.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/4d464eedc5c1698ff183056e757c8e0246e1333d.jpg\" alt=\"Broken\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBroken\u003c/strong\u003e\u003cbr\u003e\n    Defeat The Unbreakable.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/5c8c1a6e5d23843f9d9a1091b1511ce669da3891.jpg\" alt=\"More Than It Could Chew\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMore Than It Could Chew\u003c/strong\u003e\u003cbr\u003e\n    Defeat The Devourer.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/605eb1d602afe8ef4577c04795ab72ca7394989e.jpg\" alt=\"Defender of the Overworld\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDefender of the Overworld\u003c/strong\u003e\u003cbr\u003e\n    Defeat The Great Hog.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/44eaeedea4f966e3ce8bfd65878ee9993c63cb0a.jpg\" alt=\"Riding in Style\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRiding in Style\u003c/strong\u003e\u003cbr\u003e\n    Ride all of the different mounts in a single world.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/3a56d6ac742f5617c1d1877c95e992448ca9e082.jpg\" alt=\"Variety is the Spice of Life\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVariety is the Spice of Life\u003c/strong\u003e\u003cbr\u003e\n    Build all the different improvements at the Well of Fate in a single world.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/13856b0790fdbaf592199651b60acf4b08faddf5.jpg\" alt=\"I Can See My Village From Here\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI Can See My Village From Here\u003c/strong\u003e\u003cbr\u003e\n    Spend 20 minutes buffed by bouncecaps in a single world.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/73346e3fb7ee81c4f865c7799115a89fad7a3c60.jpg\" alt=\"Legendary Hero\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLegendary Hero\u003c/strong\u003e\u003cbr\u003e\n    Defeat the campaign on Legendary.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/d833cffc12ed45193528a0ca115101f274526236.jpg\" alt=\"Bulldozer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBulldozer\u003c/strong\u003e\u003cbr\u003e\n    Destroy a base in under 7 minutes!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/44e22ecb0f879184660ab297d11a4e3a8a688913.jpg\" alt=\"Wheeeeeeeeeee!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWheeeeeeeeeee!\u003c/strong\u003e\u003cbr\u003e\n    Glide for 30 seconds consecutively on the big beak or brilliant beetle.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/620f761c3374db65ecffab6a575b5d3e2f2ea6e9.jpg\" alt=\"Resource Reinforcements\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eResource Reinforcements\u003c/strong\u003e\u003cbr\u003e\n    Open 5 allay chests in a single world.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/2a3ecd339d16b3c3c81acfeb805e47339fc6dd8e.jpg\" alt=\"The Way of the Sword\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Way of the Sword\u003c/strong\u003e\u003cbr\u003e\n    Defeat another player with your sword in Versus Mode.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/36a527d3a21c974588cc040d36e0b140d4c33c3a.jpg\" alt=\"Soothe the Scars\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSoothe the Scars\u003c/strong\u003e\u003cbr\u003e\n    Cure 20,000 netherrack blocks in a single world.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/5bfc400707f6ecb7cb011647fdbef3b4654c26c4.jpg\" alt=\"Are These Made of Nether Wart?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAre These Made of Nether Wart?\u003c/strong\u003e\u003cbr\u003e\n    Destroy 250 piglin buildings in a single world.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/ccb0637ac02e23cad63a9bde6b54f28fd04d7111.jpg\" alt=\"Nailbiter\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNailbiter\u003c/strong\u003e\u003cbr\u003e\n    Defeat an opponent with less than 10% of your HQ's health remaining in Versus Mode.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/085968940424c1786171a5bf590cf16496a1c3b8.jpg\" alt=\"Excitable New Friends\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExcitable New Friends\u003c/strong\u003e\u003cbr\u003e\n    Forge an alliance with the creepers.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/978a2f0a733bbe27c5ec1f0f59b8664887eb97cb.jpg\" alt=\"Unnatural Aim\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUnnatural Aim\u003c/strong\u003e\u003cbr\u003e\n    Forge an alliance with the skeletons.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/7f9fa803d79fc39bce4c3cf09aeec06d95fdb56b.jpg\" alt=\"They REALLY Like That Flower\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThey REALLY Like That Flower\u003c/strong\u003e\u003cbr\u003e\n    Forge an alliance with the zombies.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/6dcfe6725e055a9c91816e79e4b03ab42f6f085e.jpg\" alt=\"Bringing Out the Big Blocks\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBringing Out the Big Blocks\u003c/strong\u003e\u003cbr\u003e\n    Construct 3 host towers within attack range of one another.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/d3d28822c337c5baf610cf1d7062ed31f3cb56d5.jpg\" alt=\"All-Star Cast\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAll-Star Cast\u003c/strong\u003e\u003cbr\u003e\n    Collect all the Firsts in a single world.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/2d271c871a6779ea3c9febafd37d3d1eedd955ba.jpg\" alt=\"Bounty of the Overworld\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBounty of the Overworld\u003c/strong\u003e\u003cbr\u003e\n    Gather 1,000 wood and stone and 125 iron, coal, redstone and diamond in a single world.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/d6337b8d63111f3457ce34cb9543b4a59ebe0388.jpg\" alt=\"Feed the Flames\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFeed the Flames\u003c/strong\u003e\u003cbr\u003e\n    Gather 2,400 lapis in 30 minutes or less in Versus Mode.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/6c932cfe257cfb2415edaee42ab8ae1cda3d66ff.jpg\" alt=\"Banner Expert\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBanner Expert\u003c/strong\u003e\u003cbr\u003e\n    Give 25 orders from Banner View in a single world.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/1ffdb6391935e6cf1e9ba185d8950e8d12f89283.jpg\" alt=\"One Boom at a Time\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOne Boom at a Time\u003c/strong\u003e\u003cbr\u003e\n    Give 10 individual orders to creepers from Banner View in a single world.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/c19e0bd886b090abcfaaf6fd01a99d4fc30b2ea7.jpg\" alt=\"Full Force\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFull Force\u003c/strong\u003e\u003cbr\u003e\n    Give an army of 80 mobs an order.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/c98c2e7a9c3340d812a109103ddb1e4a48aa6b36.jpg\" alt=\"Petting Zoo\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePetting Zoo\u003c/strong\u003e\u003cbr\u003e\n    Pat Pat every type of animal in a single world.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/c83611a0bb6799648bf0320346d440bc626011a8.jpg\" alt=\"Witchy Business\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWitchy Business\u003c/strong\u003e\u003cbr\u003e\n    Spawn 50 witches in a single world.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/7cba130538620d120dc09b7481d1b3fbb2b9b255.jpg\" alt=\"Cauldron Connoisseur\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCauldron Connoisseur\u003c/strong\u003e\u003cbr\u003e\n    Build 10 cauldrons in a single world.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/4294e916588496831fa5b5a63aa8a8a665a4df05.jpg\" alt=\"Not A Fan\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNot A Fan\u003c/strong\u003e\u003cbr\u003e\n    Defeat 10 piglin clangers in a single world.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/be596cdbbb5afe8cf7c0c1e5b47da8f3f9bc83f6.jpg\" alt=\"Quiet the Clanging\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eQuiet the Clanging\u003c/strong\u003e\u003cbr\u003e\n    Defeat 10 piglin clangers in a single world.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/d20d8b9a3721a1b87593928b251d1af124b439c7.jpg\" alt=\"Amphibian\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAmphibian\u003c/strong\u003e\u003cbr\u003e\n    Spend 10 minutes swimming on a frog mount in a single world.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/0b7041ad81f175142cca5ab823c6429a0667a20c.jpg\" alt=\"The Best Defense is... No Defense\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Best Defense is... No Defense\u003c/strong\u003e\u003cbr\u003e\n    Win a custom Versus game with 2 or more players that has walls and gates disabled.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/7700bcfb2cd8a6cf014151c7211c6835fb59a81e.jpg\" alt=\"Head Start\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHead Start\u003c/strong\u003e\u003cbr\u003e\n    Win a custom Versus game with 2 or more players that has tech unlocked and at least 2 starting resouces to 9999.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/a84619fa5292a627bac6829d0fefa3cadfcd3e23.jpg\" alt=\"When Pig(lins) Fly\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhen Pig(lins) Fly\u003c/strong\u003e\u003cbr\u003e\n    Defeat a custom campaign with a knockback value of 200% or greater.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1928870/d724ba1c267db618a57c070e89122bf55c3c933a.jpg\" alt=\"Elytra Envy\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eElytra Envy\u003c/strong\u003e\u003cbr\u003e\n    Defeat a custom campaign with a gravity value of 60% or less and high jump enabled.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Badger - 12.5% complete with 5/40 achievements unlocked.",
      "date_published": "2023-04-28T00:00:00Z",
      "date_modified": "2023-04-28T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "badger"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/frozen-flame/",
      "url": "https://go.waylonwalker.com/steam/frozen-flame/",
      "title": "Frozen Flame",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/715400/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/715400/library_600x900.jpg\" alt=\"Frozen Flame box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/715400/header.jpg\u0026#39;\"/ data-glightbox=\"description: Frozen Flame box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eFrozen Flame\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 6.25%\"\u003e\n        6.25%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e2/32 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e4.2h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2023-04-17\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (2)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/46455a40cedcf380d8cbe3d01ff196dd4dfe11b0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/46455a40cedcf380d8cbe3d01ff196dd4dfe11b0.jpg\" alt=\"Home, sweet home\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Home, sweet home\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHome, sweet home\u003c/strong\u003e\u003cbr/\u003e\n    Place a Workbench\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 07, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/8217ab7e849fb86044f2a615b7a4ff4f9d6262df.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/8217ab7e849fb86044f2a615b7a4ff4f9d6262df.jpg\" alt=\"I knew it!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: I knew it!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI knew it!\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: January 07, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (30)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/ecca784feff0e5da4df3753fb99b4b01ae99bbe6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/ecca784feff0e5da4df3753fb99b4b01ae99bbe6.jpg\" alt=\"Unchained\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Unchained\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUnchained\u003c/strong\u003e\u003cbr/\u003e\n    Get out of the Asylum of Faceless \n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/86a5b44664d4f819aaf57a079ec9100d6cae1b81.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/86a5b44664d4f819aaf57a079ec9100d6cae1b81.jpg\" alt=\"Mystery\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mystery\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMystery\u003c/strong\u003e\u003cbr/\u003e\n    Find the Tablet of the Bard in Prologue\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/cc5360da0c6fbcbe6dca02661d7f928910c5389f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/cc5360da0c6fbcbe6dca02661d7f928910c5389f.jpg\" alt=\"Furious Slaughter\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Furious Slaughter\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFurious Slaughter\u003c/strong\u003e\u003cbr/\u003e\n    Defeat the Raging Slayer\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/6a2c8b2e6c399f2567c026c018cc5ba54ab301d8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/6a2c8b2e6c399f2567c026c018cc5ba54ab301d8.jpg\" alt=\"Flames from Above\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Flames from Above\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFlames from Above\u003c/strong\u003e\u003cbr/\u003e\n    Defeat the Smoldering Warlock\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/29940652fbaa43774be3f8fd4707589b394f1be6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/29940652fbaa43774be3f8fd4707589b394f1be6.jpg\" alt=\"Arrows of Discord\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Arrows of Discord\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArrows of Discord\u003c/strong\u003e\u003cbr/\u003e\n    Defeat the Skull Hunter\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/58435ab9d11d2c6d907ffd418bdb3c017d4b8813.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/58435ab9d11d2c6d907ffd418bdb3c017d4b8813.jpg\" alt=\"Cold Welcome\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cold Welcome\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCold Welcome\u003c/strong\u003e\u003cbr/\u003e\n    Defeat the Ice Elemental\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/96ae63e5317a661436ab89c60a6fae41cdc504aa.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/96ae63e5317a661436ab89c60a6fae41cdc504aa.jpg\" alt=\"Sleepless Giant\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sleepless Giant\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSleepless Giant\u003c/strong\u003e\u003cbr/\u003e\n    Defeat the Titan\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/e94a90930febfa5b78ce89011378423fc3c49e82.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/e94a90930febfa5b78ce89011378423fc3c49e82.jpg\" alt=\"Floating Islands\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Floating Islands\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFloating Islands\u003c/strong\u003e\u003cbr/\u003e\n    Make your way to the Broken Valley\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/5de7cc09491821cb925271f6939c46482518e7d8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/5de7cc09491821cb925271f6939c46482518e7d8.jpg\" alt=\"Novice\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Novice\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNovice\u003c/strong\u003e\u003cbr/\u003e\n    Get the 5th Level\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/8b49c361b06af85c79fb9f9c3ed848f7540cbbc4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/8b49c361b06af85c79fb9f9c3ed848f7540cbbc4.jpg\" alt=\"Guardian\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Guardian\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGuardian\u003c/strong\u003e\u003cbr/\u003e\n    Get the 10th Level\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/30669e7d8293c30248e6da832e978c37b453ecb4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/30669e7d8293c30248e6da832e978c37b453ecb4.jpg\" alt=\"Master\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Master\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaster\u003c/strong\u003e\u003cbr/\u003e\n    Get the 20th Level\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/e2ea4949ddf7dd82704ed4aeb331ffa14dcddc88.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/e2ea4949ddf7dd82704ed4aeb331ffa14dcddc88.jpg\" alt=\"Magister\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Magister\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMagister\u003c/strong\u003e\u003cbr/\u003e\n    Get the 30th Level\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/0766ad03e45a83e7b7a4090907ca5587df2dd204.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/0766ad03e45a83e7b7a4090907ca5587df2dd204.jpg\" alt=\"Archimagister\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Archimagister\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArchimagister\u003c/strong\u003e\u003cbr/\u003e\n    Get the 40th Level\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/d51fd4f25844535a916b2e6ac41fa057df56c234.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/d51fd4f25844535a916b2e6ac41fa057df56c234.jpg\" alt=\"Cursed Melody\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cursed Melody\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCursed Melody\u003c/strong\u003e\u003cbr/\u003e\n    Find all Bard\u0026#39;s musical instruments\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/c5e4711e475d33486d8d90fd935bddd395b86d51.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/c5e4711e475d33486d8d90fd935bddd395b86d51.jpg\" alt=\"Chef\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Chef\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChef\u003c/strong\u003e\u003cbr/\u003e\n    Cook a rare dish at the bonfire\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/a9c1c98a9f76387d675e5a0c24ed22c24bd8da12.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/a9c1c98a9f76387d675e5a0c24ed22c24bd8da12.jpg\" alt=\"Stories of the Cradle\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Stories of the Cradle\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStories of the Cradle\u003c/strong\u003e\u003cbr/\u003e\n    Unlock all the Memorials in the Cradle of Keepers\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/f5f00f0f1f3745ada193816b54e62a7926b4d5b0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/f5f00f0f1f3745ada193816b54e62a7926b4d5b0.jpg\" alt=\"Tales of the Broken Valley\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tales of the Broken Valley\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTales of the Broken Valley\u003c/strong\u003e\u003cbr/\u003e\n    Unlock all the Memorials in the Broken Valley\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/728bf5157a6503854e766d5baee81e18aca4c44f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/728bf5157a6503854e766d5baee81e18aca4c44f.jpg\" alt=\"Savior of the Broken Valley\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Savior of the Broken Valley\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSavior of the Broken Valley\u003c/strong\u003e\u003cbr/\u003e\n    Vanquish all elite enemies in the Broken Valley\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/0bcd31840313819da2f08dedc37065af51f91587.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/0bcd31840313819da2f08dedc37065af51f91587.jpg\" alt=\"Invincible\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Invincible\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInvincible\u003c/strong\u003e\u003cbr/\u003e\n    Defeat the Ironbound\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/bb244ab34775dc686fb833bf7cde8544a7d45bd8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/bb244ab34775dc686fb833bf7cde8544a7d45bd8.jpg\" alt=\"Oinking Demon\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Oinking Demon\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOinking Demon\u003c/strong\u003e\u003cbr/\u003e\n    Deal with Bonehead\u0026#39;s debtor\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/663f55cb9e2f5b4f7aac102a2729ed811b18bac4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/663f55cb9e2f5b4f7aac102a2729ed811b18bac4.jpg\" alt=\"The Pigeon Hunter\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Pigeon Hunter\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Pigeon Hunter\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/a86e9da173ee45878a22284bf9c762a1678d47d6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/a86e9da173ee45878a22284bf9c762a1678d47d6.jpg\" alt=\"Money for Nothing\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Money for Nothing\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMoney for Nothing\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/b89a241203cc9f7e6b31982b6618263c32f2fd60.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/b89a241203cc9f7e6b31982b6618263c32f2fd60.jpg\" alt=\"Icarus\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Icarus\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIcarus\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/453d551b0af821cacf6260d064711268a5c9c453.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/453d551b0af821cacf6260d064711268a5c9c453.jpg\" alt=\"Feel Good\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Feel Good\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFeel Good\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/d3fa48130eb699a38a5b161abcc4600106953690.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/d3fa48130eb699a38a5b161abcc4600106953690.jpg\" alt=\"Do you see this statue?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Do you see this statue?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDo you see this statue?\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/c6a4986c64dedf3785c6dd69d1aaf4d04c0855b0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/c6a4986c64dedf3785c6dd69d1aaf4d04c0855b0.jpg\" alt=\"Liberator of the Dragons\u0026#39; Grove\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Liberator of the Dragons\u0026#39; Grove\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLiberator of the Dragons\u0026#39; Grove\u003c/strong\u003e\u003cbr/\u003e\n    Vanquish all elite enemies in the Dragons\u0026#39; Grove\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/a8759f556494643185c543b865333d0f576cf0c3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/a8759f556494643185c543b865333d0f576cf0c3.jpg\" alt=\"Protected Forests\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Protected Forests\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eProtected Forests\u003c/strong\u003e\u003cbr/\u003e\n    Make your way to the Dragons\u0026#39; Grove\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/fe7fed5b840b7d6521569a9c7abcd2952e867ef3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/fe7fed5b840b7d6521569a9c7abcd2952e867ef3.jpg\" alt=\"Chronicles of the Dragons\u0026#39; Grove\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Chronicles of the Dragons\u0026#39; Grove\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChronicles of the Dragons\u0026#39; Grove\u003c/strong\u003e\u003cbr/\u003e\n    Unlock all Memorials in the Dragons\u0026#39; Grove\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/24a62f7b325b16f5c67aa97f33c75efa25bd8395.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/24a62f7b325b16f5c67aa97f33c75efa25bd8395.jpg\" alt=\"Accursed Armoury\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Accursed Armoury\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAccursed Armoury\u003c/strong\u003e\u003cbr/\u003e\n    Find all Blacksmith\u0026#39;s weapons\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/12f4fdc6edf3fc1eba2606f74f7f2d667dc54f19.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/12f4fdc6edf3fc1eba2606f74f7f2d667dc54f19.jpg\" alt=\"Cursed Creature\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cursed Creature\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCursed Creature\u003c/strong\u003e\u003cbr/\u003e\n    Defeat the Golem\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/715400/library_600x900.jpg\" alt=\"Frozen Flame box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/715400/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eFrozen Flame\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 6.25%\"\u003e\n        6.25%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e2/32 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e4.2h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2023-04-17\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (2)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/46455a40cedcf380d8cbe3d01ff196dd4dfe11b0.jpg\" alt=\"Home, sweet home\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHome, sweet home\u003c/strong\u003e\u003cbr\u003e\n    Place a Workbench\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 07, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/8217ab7e849fb86044f2a615b7a4ff4f9d6262df.jpg\" alt=\"I knew it!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI knew it!\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: January 07, 2023\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (30)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/ecca784feff0e5da4df3753fb99b4b01ae99bbe6.jpg\" alt=\"Unchained\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUnchained\u003c/strong\u003e\u003cbr\u003e\n    Get out of the Asylum of Faceless \n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/86a5b44664d4f819aaf57a079ec9100d6cae1b81.jpg\" alt=\"Mystery\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMystery\u003c/strong\u003e\u003cbr\u003e\n    Find the Tablet of the Bard in Prologue\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/cc5360da0c6fbcbe6dca02661d7f928910c5389f.jpg\" alt=\"Furious Slaughter\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFurious Slaughter\u003c/strong\u003e\u003cbr\u003e\n    Defeat the Raging Slayer\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/6a2c8b2e6c399f2567c026c018cc5ba54ab301d8.jpg\" alt=\"Flames from Above\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFlames from Above\u003c/strong\u003e\u003cbr\u003e\n    Defeat the Smoldering Warlock\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/29940652fbaa43774be3f8fd4707589b394f1be6.jpg\" alt=\"Arrows of Discord\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArrows of Discord\u003c/strong\u003e\u003cbr\u003e\n    Defeat the Skull Hunter\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/58435ab9d11d2c6d907ffd418bdb3c017d4b8813.jpg\" alt=\"Cold Welcome\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCold Welcome\u003c/strong\u003e\u003cbr\u003e\n    Defeat the Ice Elemental\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/96ae63e5317a661436ab89c60a6fae41cdc504aa.jpg\" alt=\"Sleepless Giant\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSleepless Giant\u003c/strong\u003e\u003cbr\u003e\n    Defeat the Titan\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/e94a90930febfa5b78ce89011378423fc3c49e82.jpg\" alt=\"Floating Islands\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFloating Islands\u003c/strong\u003e\u003cbr\u003e\n    Make your way to the Broken Valley\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/5de7cc09491821cb925271f6939c46482518e7d8.jpg\" alt=\"Novice\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNovice\u003c/strong\u003e\u003cbr\u003e\n    Get the 5th Level\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/8b49c361b06af85c79fb9f9c3ed848f7540cbbc4.jpg\" alt=\"Guardian\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGuardian\u003c/strong\u003e\u003cbr\u003e\n    Get the 10th Level\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/30669e7d8293c30248e6da832e978c37b453ecb4.jpg\" alt=\"Master\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaster\u003c/strong\u003e\u003cbr\u003e\n    Get the 20th Level\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/e2ea4949ddf7dd82704ed4aeb331ffa14dcddc88.jpg\" alt=\"Magister\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMagister\u003c/strong\u003e\u003cbr\u003e\n    Get the 30th Level\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/0766ad03e45a83e7b7a4090907ca5587df2dd204.jpg\" alt=\"Archimagister\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArchimagister\u003c/strong\u003e\u003cbr\u003e\n    Get the 40th Level\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/d51fd4f25844535a916b2e6ac41fa057df56c234.jpg\" alt=\"Cursed Melody\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCursed Melody\u003c/strong\u003e\u003cbr\u003e\n    Find all Bard's musical instruments\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/c5e4711e475d33486d8d90fd935bddd395b86d51.jpg\" alt=\"Chef\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChef\u003c/strong\u003e\u003cbr\u003e\n    Cook a rare dish at the bonfire\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/a9c1c98a9f76387d675e5a0c24ed22c24bd8da12.jpg\" alt=\"Stories of the Cradle\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStories of the Cradle\u003c/strong\u003e\u003cbr\u003e\n    Unlock all the Memorials in the Cradle of Keepers\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/f5f00f0f1f3745ada193816b54e62a7926b4d5b0.jpg\" alt=\"Tales of the Broken Valley\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTales of the Broken Valley\u003c/strong\u003e\u003cbr\u003e\n    Unlock all the Memorials in the Broken Valley\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/728bf5157a6503854e766d5baee81e18aca4c44f.jpg\" alt=\"Savior of the Broken Valley\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSavior of the Broken Valley\u003c/strong\u003e\u003cbr\u003e\n    Vanquish all elite enemies in the Broken Valley\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/0bcd31840313819da2f08dedc37065af51f91587.jpg\" alt=\"Invincible\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInvincible\u003c/strong\u003e\u003cbr\u003e\n    Defeat the Ironbound\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/bb244ab34775dc686fb833bf7cde8544a7d45bd8.jpg\" alt=\"Oinking Demon\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOinking Demon\u003c/strong\u003e\u003cbr\u003e\n    Deal with Bonehead's debtor\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/663f55cb9e2f5b4f7aac102a2729ed811b18bac4.jpg\" alt=\"The Pigeon Hunter\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Pigeon Hunter\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/a86e9da173ee45878a22284bf9c762a1678d47d6.jpg\" alt=\"Money for Nothing\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMoney for Nothing\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/b89a241203cc9f7e6b31982b6618263c32f2fd60.jpg\" alt=\"Icarus\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIcarus\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/453d551b0af821cacf6260d064711268a5c9c453.jpg\" alt=\"Feel Good\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFeel Good\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/d3fa48130eb699a38a5b161abcc4600106953690.jpg\" alt=\"Do you see this statue?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDo you see this statue?\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/c6a4986c64dedf3785c6dd69d1aaf4d04c0855b0.jpg\" alt=\"Liberator of the Dragons' Grove\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLiberator of the Dragons' Grove\u003c/strong\u003e\u003cbr\u003e\n    Vanquish all elite enemies in the Dragons' Grove\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/a8759f556494643185c543b865333d0f576cf0c3.jpg\" alt=\"Protected Forests\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eProtected Forests\u003c/strong\u003e\u003cbr\u003e\n    Make your way to the Dragons' Grove\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/fe7fed5b840b7d6521569a9c7abcd2952e867ef3.jpg\" alt=\"Chronicles of the Dragons' Grove\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChronicles of the Dragons' Grove\u003c/strong\u003e\u003cbr\u003e\n    Unlock all Memorials in the Dragons' Grove\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/24a62f7b325b16f5c67aa97f33c75efa25bd8395.jpg\" alt=\"Accursed Armoury\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAccursed Armoury\u003c/strong\u003e\u003cbr\u003e\n    Find all Blacksmith's weapons\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/715400/12f4fdc6edf3fc1eba2606f74f7f2d667dc54f19.jpg\" alt=\"Cursed Creature\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCursed Creature\u003c/strong\u003e\u003cbr\u003e\n    Defeat the Golem\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Frozen Flame - 6.25% complete with 2/32 achievements unlocked.",
      "date_published": "2023-04-17T00:00:00Z",
      "date_modified": "2023-04-17T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "frozen-flame"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/multiversus/",
      "url": "https://go.waylonwalker.com/steam/multiversus/",
      "title": "MultiVersus",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/1818750/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/1818750/library_600x900.jpg\" alt=\"MultiVersus box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/1818750/header.jpg\u0026#39;\"/ data-glightbox=\"description: MultiVersus box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eMultiVersus\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 53.57%\"\u003e\n        53.57%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e15/28 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e115.5h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2023-04-15\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (15)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/4b85ba29676bab11f1d89539e64ea323d3242177.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/4b85ba29676bab11f1d89539e64ea323d3242177.jpg\" alt=\"Credit Where It\u0026#39;s Due\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Credit Where It\u0026#39;s Due\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCredit Where It\u0026#39;s Due\u003c/strong\u003e\u003cbr/\u003e\n    Give out 5 Toasts to other players\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 05, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/b07dbda60305056100b7e8ba13f26f1b8d6006ae.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/b07dbda60305056100b7e8ba13f26f1b8d6006ae.jpg\" alt=\"Nice Speech\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Nice Speech\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNice Speech\u003c/strong\u003e\u003cbr/\u003e\n    Give out 10 Toasts to other players\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 06, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/4b85ba29676bab11f1d89539e64ea323d3242177.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/4b85ba29676bab11f1d89539e64ea323d3242177.jpg\" alt=\"Matchmaker\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Matchmaker\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMatchmaker\u003c/strong\u003e\u003cbr/\u003e\n    Play 1 matchmade game\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/4b85ba29676bab11f1d89539e64ea323d3242177.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/4b85ba29676bab11f1d89539e64ea323d3242177.jpg\" alt=\"You Mean Business\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: You Mean Business\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou Mean Business\u003c/strong\u003e\u003cbr/\u003e\n    Get 30 Ringouts\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 06, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/b07dbda60305056100b7e8ba13f26f1b8d6006ae.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/b07dbda60305056100b7e8ba13f26f1b8d6006ae.jpg\" alt=\"You\u0026#39;re Getting Pretty Good At This!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: You\u0026#39;re Getting Pretty Good At This!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou\u0026#39;re Getting Pretty Good At This!\u003c/strong\u003e\u003cbr/\u003e\n    Get 50 Ringouts\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 06, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/b002680bbaac3dbf3434668a6ca29e94cb4c2da0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/b002680bbaac3dbf3434668a6ca29e94cb4c2da0.jpg\" alt=\"Bun-Puncher Supreme\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bun-Puncher Supreme\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBun-Puncher Supreme\u003c/strong\u003e\u003cbr/\u003e\n    Get 100 Ringouts\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 09, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/4b85ba29676bab11f1d89539e64ea323d3242177.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/4b85ba29676bab11f1d89539e64ea323d3242177.jpg\" alt=\"Stepping Out\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Stepping Out\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStepping Out\u003c/strong\u003e\u003cbr/\u003e\n    Win 10 matchmade games\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 06, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/4b85ba29676bab11f1d89539e64ea323d3242177.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/4b85ba29676bab11f1d89539e64ea323d3242177.jpg\" alt=\"Bring A Friend\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bring A Friend\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBring A Friend\u003c/strong\u003e\u003cbr/\u003e\n    Get 10 Double Ringouts\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 12, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/4b85ba29676bab11f1d89539e64ea323d3242177.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/4b85ba29676bab11f1d89539e64ea323d3242177.jpg\" alt=\"Watch Your Step\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Watch Your Step\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWatch Your Step\u003c/strong\u003e\u003cbr/\u003e\n    Get 10 Ringouts using your spike\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 09, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/4b85ba29676bab11f1d89539e64ea323d3242177.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/4b85ba29676bab11f1d89539e64ea323d3242177.jpg\" alt=\"Aerial Specialist\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Aerial Specialist\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAerial Specialist\u003c/strong\u003e\u003cbr/\u003e\n    Get 10 Ringouts using the top of the Blast Zone\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 05, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/4b85ba29676bab11f1d89539e64ea323d3242177.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/4b85ba29676bab11f1d89539e64ea323d3242177.jpg\" alt=\"Southpaw Specialist\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Southpaw Specialist\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSouthpaw Specialist\u003c/strong\u003e\u003cbr/\u003e\n    Get 10 Ringouts using the left-side of the Blast Zone\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 06, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/4b85ba29676bab11f1d89539e64ea323d3242177.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/4b85ba29676bab11f1d89539e64ea323d3242177.jpg\" alt=\"Rightie Specialist\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Rightie Specialist\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRightie Specialist\u003c/strong\u003e\u003cbr/\u003e\n    Get 10 Ringouts using the right-side of the Blast Zone\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 06, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/4b85ba29676bab11f1d89539e64ea323d3242177.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/4b85ba29676bab11f1d89539e64ea323d3242177.jpg\" alt=\"Spike Specialist\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Spike Specialist\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpike Specialist\u003c/strong\u003e\u003cbr/\u003e\n    Get 10 Ringouts using the bottom of the Blast Zone\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 06, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/4b85ba29676bab11f1d89539e64ea323d3242177.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/4b85ba29676bab11f1d89539e64ea323d3242177.jpg\" alt=\"Social Butterfly\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Social Butterfly\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSocial Butterfly\u003c/strong\u003e\u003cbr/\u003e\n    Play 25 matches in a party\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 08, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/4b85ba29676bab11f1d89539e64ea323d3242177.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/4b85ba29676bab11f1d89539e64ea323d3242177.jpg\" alt=\"Signature Slammer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Signature Slammer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSignature Slammer\u003c/strong\u003e\u003cbr/\u003e\n    Get 10 low-damage Ringouts\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: August 07, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (13)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/ed52e0befec3cf7f8c71254e5a01c4a665b90553.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/ed52e0befec3cf7f8c71254e5a01c4a665b90553.jpg\" alt=\"Toast Master\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Toast Master\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eToast Master\u003c/strong\u003e\u003cbr/\u003e\n    Give out 100 Toasts to other players\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/5ed9c3621b2d3c95a7fa6e239836dea32fdfef35.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/5ed9c3621b2d3c95a7fa6e239836dea32fdfef35.jpg\" alt=\"Run It Back\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Run It Back\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRun It Back\u003c/strong\u003e\u003cbr/\u003e\n    Accept 100 rematches\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/ed52e0befec3cf7f8c71254e5a01c4a665b90553.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/ed52e0befec3cf7f8c71254e5a01c4a665b90553.jpg\" alt=\"Proving Yourself\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Proving Yourself\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eProving Yourself\u003c/strong\u003e\u003cbr/\u003e\n    Win 100 matchmade games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/ed52e0befec3cf7f8c71254e5a01c4a665b90553.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/ed52e0befec3cf7f8c71254e5a01c4a665b90553.jpg\" alt=\"The Throne Is Yours\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Throne Is Yours\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Throne Is Yours\u003c/strong\u003e\u003cbr/\u003e\n    Win 300 matchmade games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/ed52e0befec3cf7f8c71254e5a01c4a665b90553.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/ed52e0befec3cf7f8c71254e5a01c4a665b90553.jpg\" alt=\"Ringouts Are Better In Pairs\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ringouts Are Better In Pairs\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRingouts Are Better In Pairs\u003c/strong\u003e\u003cbr/\u003e\n    Get 25 Double Ringouts\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/ed52e0befec3cf7f8c71254e5a01c4a665b90553.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/ed52e0befec3cf7f8c71254e5a01c4a665b90553.jpg\" alt=\"And Your Little Dog, Too!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: And Your Little Dog, Too!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAnd Your Little Dog, Too!\u003c/strong\u003e\u003cbr/\u003e\n    Get 100 Double Ringouts\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/ed52e0befec3cf7f8c71254e5a01c4a665b90553.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/ed52e0befec3cf7f8c71254e5a01c4a665b90553.jpg\" alt=\"Going Down?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Going Down?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGoing Down?\u003c/strong\u003e\u003cbr/\u003e\n    Get 50 Ringouts using your spike\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/ed52e0befec3cf7f8c71254e5a01c4a665b90553.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/ed52e0befec3cf7f8c71254e5a01c4a665b90553.jpg\" alt=\"Ground Floor: Ringouts\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ground Floor: Ringouts\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGround Floor: Ringouts\u003c/strong\u003e\u003cbr/\u003e\n    Get 100 Ringouts using your spike\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/ed52e0befec3cf7f8c71254e5a01c4a665b90553.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/ed52e0befec3cf7f8c71254e5a01c4a665b90553.jpg\" alt=\"Watch Your Head\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Watch Your Head\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWatch Your Head\u003c/strong\u003e\u003cbr/\u003e\n    Get 20 Ringouts with a Projectile\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/ed52e0befec3cf7f8c71254e5a01c4a665b90553.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/ed52e0befec3cf7f8c71254e5a01c4a665b90553.jpg\" alt=\"Catch This\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Catch This\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCatch This\u003c/strong\u003e\u003cbr/\u003e\n    Get 50 Ringouts with a Projectile\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/ed52e0befec3cf7f8c71254e5a01c4a665b90553.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/ed52e0befec3cf7f8c71254e5a01c4a665b90553.jpg\" alt=\"Distanced Damage Dealer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Distanced Damage Dealer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDistanced Damage Dealer\u003c/strong\u003e\u003cbr/\u003e\n    Get 200 Ringouts with a Projectile\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/ed52e0befec3cf7f8c71254e5a01c4a665b90553.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/ed52e0befec3cf7f8c71254e5a01c4a665b90553.jpg\" alt=\"Life of the Party\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Life of the Party\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLife of the Party\u003c/strong\u003e\u003cbr/\u003e\n    Play 100 matches in a party\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/ed52e0befec3cf7f8c71254e5a01c4a665b90553.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/ed52e0befec3cf7f8c71254e5a01c4a665b90553.jpg\" alt=\"Party Animal\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Party Animal\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eParty Animal\u003c/strong\u003e\u003cbr/\u003e\n    Play 500 matches in a party\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/1818750/library_600x900.jpg\" alt=\"MultiVersus box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/1818750/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eMultiVersus\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 53.57%\"\u003e\n        53.57%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e15/28 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e115.5h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2023-04-15\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (15)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/4b85ba29676bab11f1d89539e64ea323d3242177.jpg\" alt=\"Credit Where It's Due\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCredit Where It's Due\u003c/strong\u003e\u003cbr\u003e\n    Give out 5 Toasts to other players\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 05, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/b07dbda60305056100b7e8ba13f26f1b8d6006ae.jpg\" alt=\"Nice Speech\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNice Speech\u003c/strong\u003e\u003cbr\u003e\n    Give out 10 Toasts to other players\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 06, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/4b85ba29676bab11f1d89539e64ea323d3242177.jpg\" alt=\"Matchmaker\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMatchmaker\u003c/strong\u003e\u003cbr\u003e\n    Play 1 matchmade game\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 04, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/4b85ba29676bab11f1d89539e64ea323d3242177.jpg\" alt=\"You Mean Business\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou Mean Business\u003c/strong\u003e\u003cbr\u003e\n    Get 30 Ringouts\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 06, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/b07dbda60305056100b7e8ba13f26f1b8d6006ae.jpg\" alt=\"You're Getting Pretty Good At This!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou're Getting Pretty Good At This!\u003c/strong\u003e\u003cbr\u003e\n    Get 50 Ringouts\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 06, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/b002680bbaac3dbf3434668a6ca29e94cb4c2da0.jpg\" alt=\"Bun-Puncher Supreme\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBun-Puncher Supreme\u003c/strong\u003e\u003cbr\u003e\n    Get 100 Ringouts\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 09, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/4b85ba29676bab11f1d89539e64ea323d3242177.jpg\" alt=\"Stepping Out\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStepping Out\u003c/strong\u003e\u003cbr\u003e\n    Win 10 matchmade games\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 06, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/4b85ba29676bab11f1d89539e64ea323d3242177.jpg\" alt=\"Bring A Friend\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBring A Friend\u003c/strong\u003e\u003cbr\u003e\n    Get 10 Double Ringouts\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 12, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/4b85ba29676bab11f1d89539e64ea323d3242177.jpg\" alt=\"Watch Your Step\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWatch Your Step\u003c/strong\u003e\u003cbr\u003e\n    Get 10 Ringouts using your spike\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 09, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/4b85ba29676bab11f1d89539e64ea323d3242177.jpg\" alt=\"Aerial Specialist\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAerial Specialist\u003c/strong\u003e\u003cbr\u003e\n    Get 10 Ringouts using the top of the Blast Zone\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 05, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/4b85ba29676bab11f1d89539e64ea323d3242177.jpg\" alt=\"Southpaw Specialist\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSouthpaw Specialist\u003c/strong\u003e\u003cbr\u003e\n    Get 10 Ringouts using the left-side of the Blast Zone\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 06, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/4b85ba29676bab11f1d89539e64ea323d3242177.jpg\" alt=\"Rightie Specialist\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRightie Specialist\u003c/strong\u003e\u003cbr\u003e\n    Get 10 Ringouts using the right-side of the Blast Zone\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 06, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/4b85ba29676bab11f1d89539e64ea323d3242177.jpg\" alt=\"Spike Specialist\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpike Specialist\u003c/strong\u003e\u003cbr\u003e\n    Get 10 Ringouts using the bottom of the Blast Zone\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 06, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/4b85ba29676bab11f1d89539e64ea323d3242177.jpg\" alt=\"Social Butterfly\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSocial Butterfly\u003c/strong\u003e\u003cbr\u003e\n    Play 25 matches in a party\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 08, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/4b85ba29676bab11f1d89539e64ea323d3242177.jpg\" alt=\"Signature Slammer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSignature Slammer\u003c/strong\u003e\u003cbr\u003e\n    Get 10 low-damage Ringouts\u003cbr\u003e\n    \u003csmall\u003eUnlocked: August 07, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (13)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/ed52e0befec3cf7f8c71254e5a01c4a665b90553.jpg\" alt=\"Toast Master\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eToast Master\u003c/strong\u003e\u003cbr\u003e\n    Give out 100 Toasts to other players\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/5ed9c3621b2d3c95a7fa6e239836dea32fdfef35.jpg\" alt=\"Run It Back\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRun It Back\u003c/strong\u003e\u003cbr\u003e\n    Accept 100 rematches\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/ed52e0befec3cf7f8c71254e5a01c4a665b90553.jpg\" alt=\"Proving Yourself\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eProving Yourself\u003c/strong\u003e\u003cbr\u003e\n    Win 100 matchmade games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/ed52e0befec3cf7f8c71254e5a01c4a665b90553.jpg\" alt=\"The Throne Is Yours\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Throne Is Yours\u003c/strong\u003e\u003cbr\u003e\n    Win 300 matchmade games\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/ed52e0befec3cf7f8c71254e5a01c4a665b90553.jpg\" alt=\"Ringouts Are Better In Pairs\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRingouts Are Better In Pairs\u003c/strong\u003e\u003cbr\u003e\n    Get 25 Double Ringouts\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/ed52e0befec3cf7f8c71254e5a01c4a665b90553.jpg\" alt=\"And Your Little Dog, Too!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAnd Your Little Dog, Too!\u003c/strong\u003e\u003cbr\u003e\n    Get 100 Double Ringouts\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/ed52e0befec3cf7f8c71254e5a01c4a665b90553.jpg\" alt=\"Going Down?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGoing Down?\u003c/strong\u003e\u003cbr\u003e\n    Get 50 Ringouts using your spike\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/ed52e0befec3cf7f8c71254e5a01c4a665b90553.jpg\" alt=\"Ground Floor: Ringouts\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGround Floor: Ringouts\u003c/strong\u003e\u003cbr\u003e\n    Get 100 Ringouts using your spike\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/ed52e0befec3cf7f8c71254e5a01c4a665b90553.jpg\" alt=\"Watch Your Head\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWatch Your Head\u003c/strong\u003e\u003cbr\u003e\n    Get 20 Ringouts with a Projectile\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/ed52e0befec3cf7f8c71254e5a01c4a665b90553.jpg\" alt=\"Catch This\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCatch This\u003c/strong\u003e\u003cbr\u003e\n    Get 50 Ringouts with a Projectile\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/ed52e0befec3cf7f8c71254e5a01c4a665b90553.jpg\" alt=\"Distanced Damage Dealer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDistanced Damage Dealer\u003c/strong\u003e\u003cbr\u003e\n    Get 200 Ringouts with a Projectile\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/ed52e0befec3cf7f8c71254e5a01c4a665b90553.jpg\" alt=\"Life of the Party\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLife of the Party\u003c/strong\u003e\u003cbr\u003e\n    Play 100 matches in a party\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1818750/ed52e0befec3cf7f8c71254e5a01c4a665b90553.jpg\" alt=\"Party Animal\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eParty Animal\u003c/strong\u003e\u003cbr\u003e\n    Play 500 matches in a party\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for MultiVersus - 53.57% complete with 15/28 achievements unlocked.",
      "date_published": "2023-04-15T00:00:00Z",
      "date_modified": "2023-04-15T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "multiversus"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/useful-btrfs-tools/",
      "url": "https://go.waylonwalker.com/useful-btrfs-tools/",
      "title": "useful btrfs tools",
      "content_html": "\u003ch2 id=\"disk-usage\"\u003edisk usage \u003ca href=\"#disk-usage\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLooking at disk usage on any of these must be done using a tool built for it if\nyou want an accurate measurement. General purpose tools like du will be\ninaccurate as they do not count things like duplicate copies in snapshots.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ sudo btrfs \u003cspan class=\"k\"\u003efi\u003c/span\u003e usage -T /\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e[\u003c/span\u003esudo\u003cspan class=\"o\"\u003e]\u003c/span\u003e password \u003cspan class=\"k\"\u003efor\u003c/span\u003e waylon:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eOverall:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    Device size:                 465.26GiB\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    Device allocated:            251.06GiB\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    Device unallocated:          214.20GiB\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    Device missing:                  0.00B\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    Device slack:                    0.00B\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    Used:                        234.44GiB\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    Free \u003cspan class=\"o\"\u003e(\u003c/span\u003eestimated\u003cspan class=\"o\"\u003e)\u003c/span\u003e:            227.37GiB      \u003cspan class=\"o\"\u003e(\u003c/span\u003emin: 120.27GiB\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    Free \u003cspan class=\"o\"\u003e(\u003c/span\u003estatfs, df\u003cspan class=\"o\"\u003e)\u003c/span\u003e:           227.37GiB\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    Data ratio:                       1.00\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    Metadata ratio:                   2.00\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    Global reserve:              478.88MiB      \u003cspan class=\"o\"\u003e(\u003c/span\u003eused: 0.00B\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    Multiple profiles:                  no\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                  Data      Metadata System\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eId Path           single    DUP      DUP      Unallocated Total     Slack\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e-- -------------- --------- -------- -------- ----------- --------- -----\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e \u003cspan class=\"m\"\u003e1\u003c/span\u003e /dev/nvme1n1p2 239.00GiB 12.00GiB 64.00MiB   214.20GiB 465.26GiB     -\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e-- -------------- --------- -------- -------- ----------- --------- -----\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   Total          239.00GiB  6.00GiB 32.00MiB   214.20GiB 465.26GiB 0.00B\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   Used           225.82GiB  4.31GiB 64.00KiB\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003e-T for tabular format\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"mounting-the-drive\"\u003emounting the drive \u003ca href=\"#mounting-the-drive\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo mkdir /mnt/nvme1n1p2/\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo mount -o \u003cspan class=\"nv\"\u003esubvol\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e/ /dev/nvme1n1p2 /mnt/nvme1n1p2\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"mounting-a-snapshot\"\u003emounting a snapshot \u003ca href=\"#mounting-a-snapshot\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"snapper\"\u003esnapper \u003ca href=\"#snapper\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"btdu\"\u003ebtdu \u003ca href=\"#btdu\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo btdu /mnt/nvme1n1p2\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e btdu v0.5.0 @ /mnt/nvme1n1p2\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e--- / -----------------------------------------------------------------------------------  ~5.974 GiB \u003cspan class=\"o\"\u003e[\u003c/span\u003e          \u003cspan class=\"o\"\u003e]\u003c/span\u003e /\u0026lt;DUP\u0026gt;  ~239.1 GiB \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"c1\"\u003e##########] /\u0026lt;SINGLE\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e--- Details: ----------------------------------------------------------------------------\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e- Full path: /mnt/nvme1n1p2/\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e- Average query duration: 0.0002558 seconds\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e- Represented size: ~245.0 GiB \u003cspan class=\"o\"\u003e(\u003c/span\u003e\u003cspan class=\"m\"\u003e607659\u003c/span\u003e samples\u003cspan class=\"o\"\u003e)\u003c/span\u003e, ±0.0 B\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e- Logical offsets: ..., 2659587804610, 2608834997278, \u003cspan class=\"m\"\u003e2688762158568\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e--- Explanation:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eWelcome to btdu. You are in the hierarchy root\u003cspan class=\"p\"\u003e;\u003c/span\u003e results will be arranged according to\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003etheir block group and profile, and \u003cspan class=\"k\"\u003ethen\u003c/span\u003e by path.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUse the arrow keys to navigate, press ? \u003cspan class=\"k\"\u003efor\u003c/span\u003e help.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e Samples: \u003cspan class=\"m\"\u003e607659\u003c/span\u003e  Resolution: ~422.8 KiB\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"btrfs-assistant\"\u003ebtrfs-assistant \u003ca href=\"#btrfs-assistant\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n",
      "content_text": "\n## disk usage\n\nLooking at disk usage on any of these must be done using a tool built for it if\nyou want an accurate measurement. General purpose tools like du will be\ninaccurate as they do not count things like duplicate copies in snapshots.\n\n```bash\n❯ sudo btrfs fi usage -T /\n[sudo] password for waylon:\nOverall:\n    Device size:                 465.26GiB\n    Device allocated:            251.06GiB\n    Device unallocated:          214.20GiB\n    Device missing:                  0.00B\n    Device slack:                    0.00B\n    Used:                        234.44GiB\n    Free (estimated):            227.37GiB      (min: 120.27GiB)\n    Free (statfs, df):           227.37GiB\n    Data ratio:                       1.00\n    Metadata ratio:                   2.00\n    Global reserve:              478.88MiB      (used: 0.00B)\n    Multiple profiles:                  no\n\n                  Data      Metadata System\nId Path           single    DUP      DUP      Unallocated Total     Slack\n-- -------------- --------- -------- -------- ----------- --------- -----\n 1 /dev/nvme1n1p2 239.00GiB 12.00GiB 64.00MiB   214.20GiB 465.26GiB     -\n-- -------------- --------- -------- -------- ----------- --------- -----\n   Total          239.00GiB  6.00GiB 32.00MiB   214.20GiB 465.26GiB 0.00B\n   Used           225.82GiB  4.31GiB 64.00KiB\n```\n\n\u003e -T for tabular format\n\n## mounting the drive\n\n```bash\nsudo mkdir /mnt/nvme1n1p2/\nsudo mount -o subvol=/ /dev/nvme1n1p2 /mnt/nvme1n1p2\n```\n\n## mounting a snapshot\n\n## snapper\n\n## btdu\n\n```bash\nsudo btdu /mnt/nvme1n1p2\n```\n\n```bash\n btdu v0.5.0 @ /mnt/nvme1n1p2\n--- / -----------------------------------------------------------------------------------  ~5.974 GiB [          ] /\u003cDUP\u003e  ~239.1 GiB [##########] /\u003cSINGLE\u003e\n\n--- Details: ----------------------------------------------------------------------------\n- Full path: /mnt/nvme1n1p2/\n- Average query duration: 0.0002558 seconds\n- Represented size: ~245.0 GiB (607659 samples), ±0.0 B\n- Logical offsets: ..., 2659587804610, 2608834997278, 2688762158568\n\n--- Explanation:\nWelcome to btdu. You are in the hierarchy root; results will be arranged according to\ntheir block group and profile, and then by path.\n\nUse the arrow keys to navigate, press ? for help.\n\n Samples: 607659  Resolution: ~422.8 KiB\n```\n\n## btrfs-assistant\n",
      "summary": "Looking at disk usage on any of these must be done using a tool built for it if you want an accurate measurement. General purpose tools like du will be...",
      "date_published": "2023-03-22T17:31:39Z",
      "date_modified": "2023-03-22T17:31:39Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/subnautica/",
      "url": "https://go.waylonwalker.com/steam/subnautica/",
      "title": "Subnautica",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/264710/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/264710/library_600x900.jpg\" alt=\"Subnautica box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/264710/header.jpg\u0026#39;\"/ data-glightbox=\"description: Subnautica box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eSubnautica\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 5.88%\"\u003e\n        5.88%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e1/17 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e4.6h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2023-03-19\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (1)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/89b61cdeb0e1b6d22532245ce394f00d0a4277e1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/89b61cdeb0e1b6d22532245ce394f00d0a4277e1.jpg\" alt=\"Getting Your Feet Wet\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Getting Your Feet Wet\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGetting Your Feet Wet\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 02, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (16)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" alt=\"Extinction Event Avoided\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Extinction Event Avoided\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExtinction Event Avoided\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" alt=\"Ancient Technologies\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ancient Technologies\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAncient Technologies\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" alt=\"Thermal Activity\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Thermal Activity\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThermal Activity\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" alt=\"Follow the Lost River\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Follow the Lost River\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFollow the Lost River\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" alt=\"Fourteen Thousand Leagues Under the Sea\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fourteen Thousand Leagues Under the Sea\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFourteen Thousand Leagues Under the Sea\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" alt=\"Optimal Health\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Optimal Health\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOptimal Health\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" alt=\"Leave Only Time Capsules\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Leave Only Time Capsules\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLeave Only Time Capsules\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" alt=\"Seaside Living with an Ocean View\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Seaside Living with an Ocean View\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSeaside Living with an Ocean View\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" alt=\"Follow the Degasi\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Follow the Degasi\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFollow the Degasi\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" alt=\"Seamonsters\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Seamonsters\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSeamonsters\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" alt=\"Settling in for the Long Haul\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Settling in for the Long Haul\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSettling in for the Long Haul\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" alt=\"Personal Propulsion\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Personal Propulsion\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePersonal Propulsion\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" alt=\"40-foot Sub For One\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: 40-foot Sub For One\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e40-foot Sub For One\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" alt=\"Ordered the Prawn\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Ordered the Prawn\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOrdered the Prawn\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" alt=\"Go Among the Stars\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Go Among the Stars\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGo Among the Stars\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" alt=\"\" man's=\"\" best=\"\" friend\"\"=\"\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: \"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e\u0026#34;Man\u0026#39;s Best Friend\u0026#34;\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/264710/library_600x900.jpg\" alt=\"Subnautica box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/264710/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eSubnautica\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 5.88%\"\u003e\n        5.88%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e1/17 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e4.6h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2023-03-19\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (1)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/89b61cdeb0e1b6d22532245ce394f00d0a4277e1.jpg\" alt=\"Getting Your Feet Wet\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGetting Your Feet Wet\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 02, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (16)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" alt=\"Extinction Event Avoided\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExtinction Event Avoided\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" alt=\"Ancient Technologies\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAncient Technologies\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" alt=\"Thermal Activity\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThermal Activity\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" alt=\"Follow the Lost River\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFollow the Lost River\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" alt=\"Fourteen Thousand Leagues Under the Sea\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFourteen Thousand Leagues Under the Sea\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" alt=\"Optimal Health\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOptimal Health\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" alt=\"Leave Only Time Capsules\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLeave Only Time Capsules\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" alt=\"Seaside Living with an Ocean View\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSeaside Living with an Ocean View\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" alt=\"Follow the Degasi\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFollow the Degasi\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" alt=\"Seamonsters\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSeamonsters\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" alt=\"Settling in for the Long Haul\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSettling in for the Long Haul\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" alt=\"Personal Propulsion\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePersonal Propulsion\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" alt=\"40-foot Sub For One\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e40-foot Sub For One\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" alt=\"Ordered the Prawn\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOrdered the Prawn\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" alt=\"Go Among the Stars\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGo Among the Stars\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/264710/680214ffd7727865ea404b897aecbc0f667a9377.jpg\" alt=\"\"Man's Best Friend\"\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e\"Man's Best Friend\"\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Subnautica - 5.88% complete with 1/17 achievements unlocked.",
      "date_published": "2023-03-19T00:00:00Z",
      "date_modified": "2023-03-19T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "subnautica"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/poly-bridge/",
      "url": "https://go.waylonwalker.com/steam/poly-bridge/",
      "title": "Poly Bridge",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/367450/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/367450/library_600x900.jpg\" alt=\"Poly Bridge box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/367450/header.jpg\u0026#39;\"/ data-glightbox=\"description: Poly Bridge box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003ePoly Bridge\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 9.09%\"\u003e\n        9.09%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e2/22 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e5.2h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2023-01-07\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (2)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/3263bf1fd114fe1a6ece19c9c2f0e5b6b79162a2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/3263bf1fd114fe1a6ece19c9c2f0e5b6b79162a2.jpg\" alt=\"Tutorial Completed\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tutorial Completed\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTutorial Completed\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 25, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/36b69427cd0fdc61bf7fd613306035b022317e63.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/36b69427cd0fdc61bf7fd613306035b022317e63.jpg\" alt=\"Completed Alpine Meadows\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Completed Alpine Meadows\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompleted Alpine Meadows\u003c/strong\u003e\u003cbr/\u003e\n    No description\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: December 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (20)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/8bc2f1e1f4e494922de4b14530b908f563c219f0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/8bc2f1e1f4e494922de4b14530b908f563c219f0.jpg\" alt=\"Completed Alpine Meadows Under Budget \" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Completed Alpine Meadows Under Budget\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompleted Alpine Meadows Under Budget \u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/56f956ab1ed67fe9bb312b2e674dcdf3b8cf33dc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/56f956ab1ed67fe9bb312b2e674dcdf3b8cf33dc.jpg\" alt=\"Completed Desert Winds\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Completed Desert Winds\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompleted Desert Winds\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/9047e997dccee96ea55154dc35a639bd6d4e1903.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/9047e997dccee96ea55154dc35a639bd6d4e1903.jpg\" alt=\"Completed Desert Winds Under Budget\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Completed Desert Winds Under Budget\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompleted Desert Winds Under Budget\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/a574c5ce56b946bb95183b137073da5f83a78ff3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/a574c5ce56b946bb95183b137073da5f83a78ff3.jpg\" alt=\"Completed Ancient Ruins\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Completed Ancient Ruins\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompleted Ancient Ruins\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/b6a1c12da1d4750c0a78de8821a2388528725eaa.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/b6a1c12da1d4750c0a78de8821a2388528725eaa.jpg\" alt=\"Completed Ancient Ruins Under Budget\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Completed Ancient Ruins Under Budget\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompleted Ancient Ruins Under Budget\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/164ce1cbbf4b2ec8017d95ae897b12d2a5dc60f0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/164ce1cbbf4b2ec8017d95ae897b12d2a5dc60f0.jpg\" alt=\"Completed Fun Land\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Completed Fun Land\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompleted Fun Land\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/1fd0e66c45c0164563e67e399e035f2343869f24.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/1fd0e66c45c0164563e67e399e035f2343869f24.jpg\" alt=\"Completed Fun Land Under Budget\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Completed Fun Land Under Budget\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompleted Fun Land Under Budget\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/18656f5e4324f6a48a58ba01f71e93a70033cc8a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/18656f5e4324f6a48a58ba01f71e93a70033cc8a.jpg\" alt=\"Completed Snow Drift\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Completed Snow Drift\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompleted Snow Drift\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/0250a20cc33cefd6753309d66347c8fdb96929b2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/0250a20cc33cefd6753309d66347c8fdb96929b2.jpg\" alt=\"Completed Snow Drift Under Budget\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Completed Snow Drift Under Budget\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompleted Snow Drift Under Budget\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/efb4f9f3d1a10e1ec12546b79c671f3132e612e0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/efb4f9f3d1a10e1ec12546b79c671f3132e612e0.jpg\" alt=\"Completed Zen Gardens\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Completed Zen Gardens\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompleted Zen Gardens\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/4a8dfa40d78ef9d75d6181028e704132aa1f5fa2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/4a8dfa40d78ef9d75d6181028e704132aa1f5fa2.jpg\" alt=\"Completed Zen Gardens Under Budget\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Completed Zen Gardens Under Budget\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompleted Zen Gardens Under Budget\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/62199aea1f522f4da281e726a1721253c1d74f39.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/62199aea1f522f4da281e726a1721253c1d74f39.jpg\" alt=\"Completed Alpine Meadows Under Budget and Under 100% Stress\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Completed Alpine Meadows Under Budget and Under 100% Stress\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompleted Alpine Meadows Under Budget and Under 100% Stress\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/01ffad7e33d106ab5ce51ee1bb4ab7ea27707761.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/01ffad7e33d106ab5ce51ee1bb4ab7ea27707761.jpg\" alt=\"Completed Desert Winds Under Budget and Under 100% Stress\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Completed Desert Winds Under Budget and Under 100% Stress\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompleted Desert Winds Under Budget and Under 100% Stress\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/55d125e9c2763adc3285834de294b9b98f198623.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/55d125e9c2763adc3285834de294b9b98f198623.jpg\" alt=\"Completed Snow Drift Under Budget and Under 100% Stress\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Completed Snow Drift Under Budget and Under 100% Stress\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompleted Snow Drift Under Budget and Under 100% Stress\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/bcb4d6e72c45e9315a422aae9cce292456ce96f7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/bcb4d6e72c45e9315a422aae9cce292456ce96f7.jpg\" alt=\"Completed Fun Land Under Budget and Under 100% Stress\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Completed Fun Land Under Budget and Under 100% Stress\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompleted Fun Land Under Budget and Under 100% Stress\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/a74bbdd95bfc1ea80bc4d386cef3b88d9d89e872.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/a74bbdd95bfc1ea80bc4d386cef3b88d9d89e872.jpg\" alt=\"Completed Ancient Ruins Under Budget and Under 100% Stress\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Completed Ancient Ruins Under Budget and Under 100% Stress\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompleted Ancient Ruins Under Budget and Under 100% Stress\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/7b9dc642e72ea4c9a0db0ef5124dfb2739e4a0ea.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/7b9dc642e72ea4c9a0db0ef5124dfb2739e4a0ea.jpg\" alt=\"Completed Zen Gardens Under Budget and Under 100% Stress\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Completed Zen Gardens Under Budget and Under 100% Stress\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompleted Zen Gardens Under Budget and Under 100% Stress\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/10437e0eb6fb984e2bcaf142646014e0feb8f775.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/10437e0eb6fb984e2bcaf142646014e0feb8f775.jpg\" alt=\"Completed Tropical Paradise\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Completed Tropical Paradise\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompleted Tropical Paradise\u003c/strong\u003e\u003cbr/\u003e\n    Completed Tropical Paradise\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/b60a04ac76625e8751b05066d56e75ee36294183.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/b60a04ac76625e8751b05066d56e75ee36294183.jpg\" alt=\"Completed Tropical Paradise Under Budget\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Completed Tropical Paradise Under Budget\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompleted Tropical Paradise Under Budget\u003c/strong\u003e\u003cbr/\u003e\n    Completed Tropical Paradise Under Budget\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/7cf3c1635fa9aa779c5cd333173c8abcca38d492.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/7cf3c1635fa9aa779c5cd333173c8abcca38d492.jpg\" alt=\" Completed Tropical Paradise Under Budget and Under 100% Stress\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Completed Tropical Paradise Under Budget and Under 100% Stress\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e Completed Tropical Paradise Under Budget and Under 100% Stress\u003c/strong\u003e\u003cbr/\u003e\n     Completed Tropical Paradise Under Budget and Under 100% Stress\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/367450/library_600x900.jpg\" alt=\"Poly Bridge box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/367450/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003ePoly Bridge\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 9.09%\"\u003e\n        9.09%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e2/22 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e5.2h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2023-01-07\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (2)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/3263bf1fd114fe1a6ece19c9c2f0e5b6b79162a2.jpg\" alt=\"Tutorial Completed\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTutorial Completed\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 25, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/36b69427cd0fdc61bf7fd613306035b022317e63.jpg\" alt=\"Completed Alpine Meadows\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompleted Alpine Meadows\u003c/strong\u003e\u003cbr\u003e\n    No description\u003cbr\u003e\n    \u003csmall\u003eUnlocked: December 28, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (20)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/8bc2f1e1f4e494922de4b14530b908f563c219f0.jpg\" alt=\"Completed Alpine Meadows Under Budget \" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompleted Alpine Meadows Under Budget \u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/56f956ab1ed67fe9bb312b2e674dcdf3b8cf33dc.jpg\" alt=\"Completed Desert Winds\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompleted Desert Winds\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/9047e997dccee96ea55154dc35a639bd6d4e1903.jpg\" alt=\"Completed Desert Winds Under Budget\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompleted Desert Winds Under Budget\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/a574c5ce56b946bb95183b137073da5f83a78ff3.jpg\" alt=\"Completed Ancient Ruins\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompleted Ancient Ruins\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/b6a1c12da1d4750c0a78de8821a2388528725eaa.jpg\" alt=\"Completed Ancient Ruins Under Budget\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompleted Ancient Ruins Under Budget\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/164ce1cbbf4b2ec8017d95ae897b12d2a5dc60f0.jpg\" alt=\"Completed Fun Land\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompleted Fun Land\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/1fd0e66c45c0164563e67e399e035f2343869f24.jpg\" alt=\"Completed Fun Land Under Budget\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompleted Fun Land Under Budget\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/18656f5e4324f6a48a58ba01f71e93a70033cc8a.jpg\" alt=\"Completed Snow Drift\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompleted Snow Drift\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/0250a20cc33cefd6753309d66347c8fdb96929b2.jpg\" alt=\"Completed Snow Drift Under Budget\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompleted Snow Drift Under Budget\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/efb4f9f3d1a10e1ec12546b79c671f3132e612e0.jpg\" alt=\"Completed Zen Gardens\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompleted Zen Gardens\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/4a8dfa40d78ef9d75d6181028e704132aa1f5fa2.jpg\" alt=\"Completed Zen Gardens Under Budget\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompleted Zen Gardens Under Budget\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/62199aea1f522f4da281e726a1721253c1d74f39.jpg\" alt=\"Completed Alpine Meadows Under Budget and Under 100% Stress\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompleted Alpine Meadows Under Budget and Under 100% Stress\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/01ffad7e33d106ab5ce51ee1bb4ab7ea27707761.jpg\" alt=\"Completed Desert Winds Under Budget and Under 100% Stress\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompleted Desert Winds Under Budget and Under 100% Stress\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/55d125e9c2763adc3285834de294b9b98f198623.jpg\" alt=\"Completed Snow Drift Under Budget and Under 100% Stress\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompleted Snow Drift Under Budget and Under 100% Stress\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/bcb4d6e72c45e9315a422aae9cce292456ce96f7.jpg\" alt=\"Completed Fun Land Under Budget and Under 100% Stress\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompleted Fun Land Under Budget and Under 100% Stress\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/a74bbdd95bfc1ea80bc4d386cef3b88d9d89e872.jpg\" alt=\"Completed Ancient Ruins Under Budget and Under 100% Stress\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompleted Ancient Ruins Under Budget and Under 100% Stress\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/7b9dc642e72ea4c9a0db0ef5124dfb2739e4a0ea.jpg\" alt=\"Completed Zen Gardens Under Budget and Under 100% Stress\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompleted Zen Gardens Under Budget and Under 100% Stress\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/10437e0eb6fb984e2bcaf142646014e0feb8f775.jpg\" alt=\"Completed Tropical Paradise\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompleted Tropical Paradise\u003c/strong\u003e\u003cbr\u003e\n    Completed Tropical Paradise\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/b60a04ac76625e8751b05066d56e75ee36294183.jpg\" alt=\"Completed Tropical Paradise Under Budget\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCompleted Tropical Paradise Under Budget\u003c/strong\u003e\u003cbr\u003e\n    Completed Tropical Paradise Under Budget\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/367450/7cf3c1635fa9aa779c5cd333173c8abcca38d492.jpg\" alt=\" Completed Tropical Paradise Under Budget and Under 100% Stress\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e Completed Tropical Paradise Under Budget and Under 100% Stress\u003c/strong\u003e\u003cbr\u003e\n     Completed Tropical Paradise Under Budget and Under 100% Stress\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Poly Bridge - 9.09% complete with 2/22 achievements unlocked.",
      "date_published": "2023-01-07T00:00:00Z",
      "date_modified": "2023-01-07T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "poly-bridge"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/devops-philosophy/",
      "url": "https://go.waylonwalker.com/devops-philosophy/",
      "title": "devops philosophy",
      "content_html": "\u003cp\u003eHow to keep a secret - \u003ca href=\"https://changelog.com/shipit/58\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/changelog.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/changelog.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://changelog.com/shipit/58\u003c/a\u003e\nKelsey Heightower Fundamentals - \u003ca href=\"https://changelog.com/shipit/44\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/changelog.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/changelog.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://changelog.com/shipit/44\u003c/a\u003e\nWhat does good devops look like - \u003ca href=\"https://changelog.com/shipit/28\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/changelog.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/changelog.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://changelog.com/shipit/28\u003c/a\u003e\nDocs are not optional - \u003ca href=\"https://changelog.com/shipit/17\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/changelog.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/changelog.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://changelog.com/shipit/17\u003c/a\u003e\nDave Farley the foundations of Continuous Delivery - \u003ca href=\"https://changelog.com/shipit/5\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/changelog.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/changelog.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://changelog.com/shipit/5\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\nHow to keep a secret - \u003chttps://changelog.com/shipit/58\u003e\nKelsey Heightower Fundamentals - \u003chttps://changelog.com/shipit/44\u003e\nWhat does good devops look like - \u003chttps://changelog.com/shipit/28\u003e\nDocs are not optional - \u003chttps://changelog.com/shipit/17\u003e\nDave Farley the foundations of Continuous Delivery - \u003chttps://changelog.com/shipit/5\u003e\n",
      "summary": "How to keep a secret - Kelsey Heightower Fundamentals - What does good devops look like - Docs are not optional - Dave Farley the foundations of Continuous...",
      "date_published": "2022-12-06T09:49:04Z",
      "date_modified": "2022-12-06T09:49:04Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "catalytic",
        "catalytic",
        "catalytic"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/steep/",
      "url": "https://go.waylonwalker.com/steam/steep/",
      "title": "Steep",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/460920/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/460920/library_600x900.jpg\" alt=\"Steep box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/460920/header.jpg\u0026#39;\"/ data-glightbox=\"description: Steep box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eSteep\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 0.0%\"\u003e\n        0.0%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e0/41 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e4.6h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2022-11-29\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (41)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/f323451375290eaddac136697c9caae938d04e68.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/f323451375290eaddac136697c9caae938d04e68.jpg\" alt=\"You\u0026#39;re ready now\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: You\u0026#39;re ready now\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou\u0026#39;re ready now\u003c/strong\u003e\u003cbr/\u003e\n    Complete the ONBOARDING sequence\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/558b06c6b25ab04f7ebea6ff89addd0d6c3f923b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/558b06c6b25ab04f7ebea6ff89addd0d6c3f923b.jpg\" alt=\"Halfway there\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Halfway there\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHalfway there\u003c/strong\u003e\u003cbr/\u003e\n    Reach REPUTATION level 10\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/eee2eb2ce6a898dd79814097dded0a492438dd37.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/eee2eb2ce6a898dd79814097dded0a492438dd37.jpg\" alt=\"The legend starts here\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The legend starts here\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe legend starts here\u003c/strong\u003e\u003cbr/\u003e\n    Reach REPUTATION level 25\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/f323451375290eaddac136697c9caae938d04e68.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/f323451375290eaddac136697c9caae938d04e68.jpg\" alt=\"Baby steps\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Baby steps\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBaby steps\u003c/strong\u003e\u003cbr/\u003e\n    Reach the ROOKIE rank in any field of expertise\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/558b06c6b25ab04f7ebea6ff89addd0d6c3f923b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/558b06c6b25ab04f7ebea6ff89addd0d6c3f923b.jpg\" alt=\"Legend\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Legend\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLegend\u003c/strong\u003e\u003cbr/\u003e\n    Reach the LEGEND rank in any field of expertise\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/558b06c6b25ab04f7ebea6ff89addd0d6c3f923b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/558b06c6b25ab04f7ebea6ff89addd0d6c3f923b.jpg\" alt=\"The legend was not enough\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The legend was not enough\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe legend was not enough\u003c/strong\u003e\u003cbr/\u003e\n    Reach the LEGEND rank in 3 different fields of expertise\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/eee2eb2ce6a898dd79814097dded0a492438dd37.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/eee2eb2ce6a898dd79814097dded0a492438dd37.jpg\" alt=\"Legendary legend!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Legendary legend!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLegendary legend!\u003c/strong\u003e\u003cbr/\u003e\n    Reach the LEGEND rank in 6 different fields of expertise\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/558b06c6b25ab04f7ebea6ff89addd0d6c3f923b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/558b06c6b25ab04f7ebea6ff89addd0d6c3f923b.jpg\" alt=\"Challenge accepted!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Challenge accepted!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChallenge accepted!\u003c/strong\u003e\u003cbr/\u003e\n    Get 115 Bronze Medals in Alps Public Challenges\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/f323451375290eaddac136697c9caae938d04e68.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/f323451375290eaddac136697c9caae938d04e68.jpg\" alt=\"Gold-plated challenger\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Gold-plated challenger\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGold-plated challenger\u003c/strong\u003e\u003cbr/\u003e\n    Get 12 Gold Medals on Alps Public Challenges\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/558b06c6b25ab04f7ebea6ff89addd0d6c3f923b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/558b06c6b25ab04f7ebea6ff89addd0d6c3f923b.jpg\" alt=\"14 carats Gold challenger\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: 14 carats Gold challenger\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e14 carats Gold challenger\u003c/strong\u003e\u003cbr/\u003e\n    Get 58 Gold Medals on Alps Public Challenges\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/eee2eb2ce6a898dd79814097dded0a492438dd37.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/eee2eb2ce6a898dd79814097dded0a492438dd37.jpg\" alt=\"24 carats Gold challenger\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: 24 carats Gold challenger\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e24 carats Gold challenger\u003c/strong\u003e\u003cbr/\u003e\n    Get 115 Gold Medals on Alps Public Challenges\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/558b06c6b25ab04f7ebea6ff89addd0d6c3f923b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/558b06c6b25ab04f7ebea6ff89addd0d6c3f923b.jpg\" alt=\"Shinier than Gold\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Shinier than Gold\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShinier than Gold\u003c/strong\u003e\u003cbr/\u003e\n    Get 7 GOLD MEDALS in the Alps Invitational Challenges\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/f323451375290eaddac136697c9caae938d04e68.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/f323451375290eaddac136697c9caae938d04e68.jpg\" alt=\"The memory remains\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The memory remains\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe memory remains\u003c/strong\u003e\u003cbr/\u003e\n    Get 1 MEMORABLE MOMENT of each category\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/558b06c6b25ab04f7ebea6ff89addd0d6c3f923b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/558b06c6b25ab04f7ebea6ff89addd0d6c3f923b.jpg\" alt=\"Red-letter day\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Red-letter day\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRed-letter day\u003c/strong\u003e\u003cbr/\u003e\n    Get 15 Different MEMORABLE MOMENTS\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/f323451375290eaddac136697c9caae938d04e68.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/f323451375290eaddac136697c9caae938d04e68.jpg\" alt=\"Once upon a time\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Once upon a time\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOnce upon a time\u003c/strong\u003e\u003cbr/\u003e\n    Complete a MOUNTAIN STORY in Alps\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/558b06c6b25ab04f7ebea6ff89addd0d6c3f923b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/558b06c6b25ab04f7ebea6ff89addd0d6c3f923b.jpg\" alt=\"Road to mountain knowledge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Road to mountain knowledge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRoad to mountain knowledge\u003c/strong\u003e\u003cbr/\u003e\n    Complete 15 MOUNTAIN STORIES in Alps\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/eee2eb2ce6a898dd79814097dded0a492438dd37.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/eee2eb2ce6a898dd79814097dded0a492438dd37.jpg\" alt=\"Mountain legend\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mountain legend\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMountain legend\u003c/strong\u003e\u003cbr/\u003e\n    Complete 30 MOUNTAIN STORIES in Alps\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/f323451375290eaddac136697c9caae938d04e68.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/f323451375290eaddac136697c9caae938d04e68.jpg\" alt=\"Tourist\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tourist\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTourist\u003c/strong\u003e\u003cbr/\u003e\n    Find 10 Points of Interest in Alps\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/558b06c6b25ab04f7ebea6ff89addd0d6c3f923b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/558b06c6b25ab04f7ebea6ff89addd0d6c3f923b.jpg\" alt=\"Tour guide\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tour guide\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTour guide\u003c/strong\u003e\u003cbr/\u003e\n    Find 149 Points of Interest in Alps\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/f323451375290eaddac136697c9caae938d04e68.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/f323451375290eaddac136697c9caae938d04e68.jpg\" alt=\"Seek...\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Seek...\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSeek...\u003c/strong\u003e\u003cbr/\u003e\n    Find and unlock 10 Drop Zones in Alps\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/558b06c6b25ab04f7ebea6ff89addd0d6c3f923b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/558b06c6b25ab04f7ebea6ff89addd0d6c3f923b.jpg\" alt=\"... and you shall find\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: ... and you shall find\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e... and you shall find\u003c/strong\u003e\u003cbr/\u003e\n    Find and unlock 110 Drop Zones in Alps\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/f323451375290eaddac136697c9caae938d04e68.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/f323451375290eaddac136697c9caae938d04e68.jpg\" alt=\"The end of the World\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The end of the World\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe end of the World\u003c/strong\u003e\u003cbr/\u003e\n    Reach the end of ALPS game world\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/558b06c6b25ab04f7ebea6ff89addd0d6c3f923b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/558b06c6b25ab04f7ebea6ff89addd0d6c3f923b.jpg\" alt=\"Like the back of your hand\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Like the back of your hand\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLike the back of your hand\u003c/strong\u003e\u003cbr/\u003e\n    Reach 100% exploration on one REGION in Alps\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/eee2eb2ce6a898dd79814097dded0a492438dd37.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/eee2eb2ce6a898dd79814097dded0a492438dd37.jpg\" alt=\"No more secrets\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: No more secrets\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNo more secrets\u003c/strong\u003e\u003cbr/\u003e\n    Find 110 Drop zones, 115 challenges and 149 Point of Interest in Alps\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/f323451375290eaddac136697c9caae938d04e68.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/f323451375290eaddac136697c9caae938d04e68.jpg\" alt=\"Upside down\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Upside down\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUpside down\u003c/strong\u003e\u003cbr/\u003e\n    Perform your first double backflip\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/f323451375290eaddac136697c9caae938d04e68.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/f323451375290eaddac136697c9caae938d04e68.jpg\" alt=\"You spin around\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: You spin around\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou spin around\u003c/strong\u003e\u003cbr/\u003e\n    Perform your first 1080°\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/f323451375290eaddac136697c9caae938d04e68.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/f323451375290eaddac136697c9caae938d04e68.jpg\" alt=\"Crash Test\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Crash Test\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCrash Test\u003c/strong\u003e\u003cbr/\u003e\n    Fall and endure between 90 and 99.9 Gs\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/558b06c6b25ab04f7ebea6ff89addd0d6c3f923b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/558b06c6b25ab04f7ebea6ff89addd0d6c3f923b.jpg\" alt=\"Scoring master\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Scoring master\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eScoring master\u003c/strong\u003e\u003cbr/\u003e\n    Score more than 2000 point in one jump\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/f323451375290eaddac136697c9caae938d04e68.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/f323451375290eaddac136697c9caae938d04e68.jpg\" alt=\"Shaked by the bell\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Shaked by the bell\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShaked by the bell\u003c/strong\u003e\u003cbr/\u003e\n    Fly into and ring the village church bell while wingsuiting\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/08af0389084d79e35db1d1d4cd4e26a29facd9d1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/08af0389084d79e35db1d1d4cd4e26a29facd9d1.jpg\" alt=\"King of the Winterfest\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: King of the Winterfest\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of the Winterfest\u003c/strong\u003e\u003cbr/\u003e\n    Defeat \u0026#34;The Beast\u0026#34; during Winterfest\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/5a986425000fbd7b82402d31fbb2228dd2b2b748.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/5a986425000fbd7b82402d31fbb2228dd2b2b748.jpg\" alt=\"The Dragon\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Dragon\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Dragon\u003c/strong\u003e\u003cbr/\u003e\n    Defeat \u0026#34;The Dragon\u0026#34; during Winterfest\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/b395a8afb5372feb707d0e26d68825fa80fe982c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/b395a8afb5372feb707d0e26d68825fa80fe982c.jpg\" alt=\"The Fratelli Twins\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Fratelli Twins\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Fratelli Twins\u003c/strong\u003e\u003cbr/\u003e\n    Defeat \u0026#34;The Fratelli Twins\u0026#34; during Winterfest\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/7a5b0b57a2bb540c9b7a9754b5246d5a9240fa7a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/7a5b0b57a2bb540c9b7a9754b5246d5a9240fa7a.jpg\" alt=\"Super Savoyard\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Super Savoyard\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSuper Savoyard\u003c/strong\u003e\u003cbr/\u003e\n    Defeat \u0026#34;Super Savoyard\u0026#34; during Winterfest\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/d22d15c42b9758b7bc833d45da4f1608b5ff7b10.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/d22d15c42b9758b7bc833d45da4f1608b5ff7b10.jpg\" alt=\"Lincoln Black\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Lincoln Black\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLincoln Black\u003c/strong\u003e\u003cbr/\u003e\n    Defeat \u0026#34;Lincoln Black\u0026#34; during Winterfest\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/48005d3809e00d0fbaeef0b4da4aae619a050489.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/48005d3809e00d0fbaeef0b4da4aae619a050489.jpg\" alt=\"Mush!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Mush!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMush!\u003c/strong\u003e\u003cbr/\u003e\n    Stay on the Sled without falling for 30 seconds (Winterfest DLC required)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/b3e281bea75cb1dcf1dd039a11b536ffb083b68d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/b3e281bea75cb1dcf1dd039a11b536ffb083b68d.jpg\" alt=\"The Extreme Ten\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Extreme Ten\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Extreme Ten\u003c/strong\u003e\u003cbr/\u003e\n    Obtain the Gold medal in 10 Challenges of Extreme Pack\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/3440008ec21a881908cbc30c6feb356d31d249a9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/3440008ec21a881908cbc30c6feb356d31d249a9.jpg\" alt=\"The Extreme Five\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Extreme Five\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Extreme Five\u003c/strong\u003e\u003cbr/\u003e\n    Obtain the Gold medal in 5 Challenges of Extreme Pack\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/61c2ea30b11a8217bc0b40773e328032f9357f27.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/61c2ea30b11a8217bc0b40773e328032f9357f27.jpg\" alt=\"Are you ready for this?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Are you ready for this?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAre you ready for this?\u003c/strong\u003e\u003cbr/\u003e\n    Finish the Trial Rogue 4 of Extreme Pack\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/d27f4ca88432f251033e4a8d372af5a49826c939.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/d27f4ca88432f251033e4a8d372af5a49826c939.jpg\" alt=\"Riding rabbit\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Riding rabbit\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRiding rabbit\u003c/strong\u003e\u003cbr/\u003e\n    Take off and land 5 times in the same Speed Riding run (Extreme Pack DLC required)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/cc0f1d08fa29e1061e289ebacc4a2b3c124fdd89.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/cc0f1d08fa29e1061e289ebacc4a2b3c124fdd89.jpg\" alt=\"I am an eagle!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: I am an eagle!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI am an eagle!\u003c/strong\u003e\u003cbr/\u003e\n    Fly for 5 minutes with the Rocket Wingsuit (Extreme Pack DLC required)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/e6d1823998f4f0800a08bde0a22101d494355ffc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/e6d1823998f4f0800a08bde0a22101d494355ffc.jpg\" alt=\"I can see my house from up there\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: I can see my house from up there\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI can see my house from up there\u003c/strong\u003e\u003cbr/\u003e\n    Safely land after jumping from all the 7 Base Jump Spots in Alaska (Extreme Pack DLC required)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/460920/library_600x900.jpg\" alt=\"Steep box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/460920/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eSteep\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 0.0%\"\u003e\n        0.0%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e0/41 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e4.6h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2022-11-29\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (41)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/f323451375290eaddac136697c9caae938d04e68.jpg\" alt=\"You're ready now\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou're ready now\u003c/strong\u003e\u003cbr\u003e\n    Complete the ONBOARDING sequence\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/558b06c6b25ab04f7ebea6ff89addd0d6c3f923b.jpg\" alt=\"Halfway there\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHalfway there\u003c/strong\u003e\u003cbr\u003e\n    Reach REPUTATION level 10\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/eee2eb2ce6a898dd79814097dded0a492438dd37.jpg\" alt=\"The legend starts here\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe legend starts here\u003c/strong\u003e\u003cbr\u003e\n    Reach REPUTATION level 25\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/f323451375290eaddac136697c9caae938d04e68.jpg\" alt=\"Baby steps\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBaby steps\u003c/strong\u003e\u003cbr\u003e\n    Reach the ROOKIE rank in any field of expertise\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/558b06c6b25ab04f7ebea6ff89addd0d6c3f923b.jpg\" alt=\"Legend\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLegend\u003c/strong\u003e\u003cbr\u003e\n    Reach the LEGEND rank in any field of expertise\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/558b06c6b25ab04f7ebea6ff89addd0d6c3f923b.jpg\" alt=\"The legend was not enough\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe legend was not enough\u003c/strong\u003e\u003cbr\u003e\n    Reach the LEGEND rank in 3 different fields of expertise\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/eee2eb2ce6a898dd79814097dded0a492438dd37.jpg\" alt=\"Legendary legend!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLegendary legend!\u003c/strong\u003e\u003cbr\u003e\n    Reach the LEGEND rank in 6 different fields of expertise\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/558b06c6b25ab04f7ebea6ff89addd0d6c3f923b.jpg\" alt=\"Challenge accepted!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChallenge accepted!\u003c/strong\u003e\u003cbr\u003e\n    Get 115 Bronze Medals in Alps Public Challenges\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/f323451375290eaddac136697c9caae938d04e68.jpg\" alt=\"Gold-plated challenger\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGold-plated challenger\u003c/strong\u003e\u003cbr\u003e\n    Get 12 Gold Medals on Alps Public Challenges\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/558b06c6b25ab04f7ebea6ff89addd0d6c3f923b.jpg\" alt=\"14 carats Gold challenger\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e14 carats Gold challenger\u003c/strong\u003e\u003cbr\u003e\n    Get 58 Gold Medals on Alps Public Challenges\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/eee2eb2ce6a898dd79814097dded0a492438dd37.jpg\" alt=\"24 carats Gold challenger\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e24 carats Gold challenger\u003c/strong\u003e\u003cbr\u003e\n    Get 115 Gold Medals on Alps Public Challenges\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/558b06c6b25ab04f7ebea6ff89addd0d6c3f923b.jpg\" alt=\"Shinier than Gold\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShinier than Gold\u003c/strong\u003e\u003cbr\u003e\n    Get 7 GOLD MEDALS in the Alps Invitational Challenges\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/f323451375290eaddac136697c9caae938d04e68.jpg\" alt=\"The memory remains\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe memory remains\u003c/strong\u003e\u003cbr\u003e\n    Get 1 MEMORABLE MOMENT of each category\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/558b06c6b25ab04f7ebea6ff89addd0d6c3f923b.jpg\" alt=\"Red-letter day\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRed-letter day\u003c/strong\u003e\u003cbr\u003e\n    Get 15 Different MEMORABLE MOMENTS\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/f323451375290eaddac136697c9caae938d04e68.jpg\" alt=\"Once upon a time\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOnce upon a time\u003c/strong\u003e\u003cbr\u003e\n    Complete a MOUNTAIN STORY in Alps\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/558b06c6b25ab04f7ebea6ff89addd0d6c3f923b.jpg\" alt=\"Road to mountain knowledge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRoad to mountain knowledge\u003c/strong\u003e\u003cbr\u003e\n    Complete 15 MOUNTAIN STORIES in Alps\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/eee2eb2ce6a898dd79814097dded0a492438dd37.jpg\" alt=\"Mountain legend\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMountain legend\u003c/strong\u003e\u003cbr\u003e\n    Complete 30 MOUNTAIN STORIES in Alps\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/f323451375290eaddac136697c9caae938d04e68.jpg\" alt=\"Tourist\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTourist\u003c/strong\u003e\u003cbr\u003e\n    Find 10 Points of Interest in Alps\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/558b06c6b25ab04f7ebea6ff89addd0d6c3f923b.jpg\" alt=\"Tour guide\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTour guide\u003c/strong\u003e\u003cbr\u003e\n    Find 149 Points of Interest in Alps\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/f323451375290eaddac136697c9caae938d04e68.jpg\" alt=\"Seek...\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSeek...\u003c/strong\u003e\u003cbr\u003e\n    Find and unlock 10 Drop Zones in Alps\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/558b06c6b25ab04f7ebea6ff89addd0d6c3f923b.jpg\" alt=\"... and you shall find\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e... and you shall find\u003c/strong\u003e\u003cbr\u003e\n    Find and unlock 110 Drop Zones in Alps\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/f323451375290eaddac136697c9caae938d04e68.jpg\" alt=\"The end of the World\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe end of the World\u003c/strong\u003e\u003cbr\u003e\n    Reach the end of ALPS game world\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/558b06c6b25ab04f7ebea6ff89addd0d6c3f923b.jpg\" alt=\"Like the back of your hand\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLike the back of your hand\u003c/strong\u003e\u003cbr\u003e\n    Reach 100% exploration on one REGION in Alps\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/eee2eb2ce6a898dd79814097dded0a492438dd37.jpg\" alt=\"No more secrets\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNo more secrets\u003c/strong\u003e\u003cbr\u003e\n    Find 110 Drop zones, 115 challenges and 149 Point of Interest in Alps\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/f323451375290eaddac136697c9caae938d04e68.jpg\" alt=\"Upside down\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUpside down\u003c/strong\u003e\u003cbr\u003e\n    Perform your first double backflip\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/f323451375290eaddac136697c9caae938d04e68.jpg\" alt=\"You spin around\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou spin around\u003c/strong\u003e\u003cbr\u003e\n    Perform your first 1080°\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/f323451375290eaddac136697c9caae938d04e68.jpg\" alt=\"Crash Test\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCrash Test\u003c/strong\u003e\u003cbr\u003e\n    Fall and endure between 90 and 99.9 Gs\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/558b06c6b25ab04f7ebea6ff89addd0d6c3f923b.jpg\" alt=\"Scoring master\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eScoring master\u003c/strong\u003e\u003cbr\u003e\n    Score more than 2000 point in one jump\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/f323451375290eaddac136697c9caae938d04e68.jpg\" alt=\"Shaked by the bell\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShaked by the bell\u003c/strong\u003e\u003cbr\u003e\n    Fly into and ring the village church bell while wingsuiting\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/08af0389084d79e35db1d1d4cd4e26a29facd9d1.jpg\" alt=\"King of the Winterfest\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKing of the Winterfest\u003c/strong\u003e\u003cbr\u003e\n    Defeat \"The Beast\" during Winterfest\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/5a986425000fbd7b82402d31fbb2228dd2b2b748.jpg\" alt=\"The Dragon\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Dragon\u003c/strong\u003e\u003cbr\u003e\n    Defeat \"The Dragon\" during Winterfest\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/b395a8afb5372feb707d0e26d68825fa80fe982c.jpg\" alt=\"The Fratelli Twins\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Fratelli Twins\u003c/strong\u003e\u003cbr\u003e\n    Defeat \"The Fratelli Twins\" during Winterfest\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/7a5b0b57a2bb540c9b7a9754b5246d5a9240fa7a.jpg\" alt=\"Super Savoyard\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSuper Savoyard\u003c/strong\u003e\u003cbr\u003e\n    Defeat \"Super Savoyard\" during Winterfest\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/d22d15c42b9758b7bc833d45da4f1608b5ff7b10.jpg\" alt=\"Lincoln Black\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLincoln Black\u003c/strong\u003e\u003cbr\u003e\n    Defeat \"Lincoln Black\" during Winterfest\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/48005d3809e00d0fbaeef0b4da4aae619a050489.jpg\" alt=\"Mush!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMush!\u003c/strong\u003e\u003cbr\u003e\n    Stay on the Sled without falling for 30 seconds (Winterfest DLC required)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/b3e281bea75cb1dcf1dd039a11b536ffb083b68d.jpg\" alt=\"The Extreme Ten\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Extreme Ten\u003c/strong\u003e\u003cbr\u003e\n    Obtain the Gold medal in 10 Challenges of Extreme Pack\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/3440008ec21a881908cbc30c6feb356d31d249a9.jpg\" alt=\"The Extreme Five\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Extreme Five\u003c/strong\u003e\u003cbr\u003e\n    Obtain the Gold medal in 5 Challenges of Extreme Pack\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/61c2ea30b11a8217bc0b40773e328032f9357f27.jpg\" alt=\"Are you ready for this?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAre you ready for this?\u003c/strong\u003e\u003cbr\u003e\n    Finish the Trial Rogue 4 of Extreme Pack\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/d27f4ca88432f251033e4a8d372af5a49826c939.jpg\" alt=\"Riding rabbit\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRiding rabbit\u003c/strong\u003e\u003cbr\u003e\n    Take off and land 5 times in the same Speed Riding run (Extreme Pack DLC required)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/cc0f1d08fa29e1061e289ebacc4a2b3c124fdd89.jpg\" alt=\"I am an eagle!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI am an eagle!\u003c/strong\u003e\u003cbr\u003e\n    Fly for 5 minutes with the Rocket Wingsuit (Extreme Pack DLC required)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/460920/e6d1823998f4f0800a08bde0a22101d494355ffc.jpg\" alt=\"I can see my house from up there\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI can see my house from up there\u003c/strong\u003e\u003cbr\u003e\n    Safely land after jumping from all the 7 Base Jump Spots in Alaska (Extreme Pack DLC required)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Steep - 0.0% complete with 0/41 achievements unlocked.",
      "date_published": "2022-11-29T00:00:00Z",
      "date_modified": "2022-11-29T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "steep"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/extending-vim-with-shell-commands/",
      "url": "https://go.waylonwalker.com/extending-vim-with-shell-commands/",
      "title": "extending vim with shell commands",
      "content_html": "\u003cp\u003eVimconf 2022\u003c/p\u003e\n\u003ch2 id=\"the-pitch\"\u003eThe pitch \u003ca href=\"#the-pitch\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eExtending vim does not need to be complicated and can be done using cli tools\nthat you might already be comfortable with. Examples, setting up\ncodeformatters with autocmds, using lf/ranger as a tui file manager, generating\nnew files using a template framework like cookiecutter/copier/yeoman, using ag\nto populate your quickfix.\u003c/p\u003e\n\u003ch2 id=\"run-a-command\"\u003erun a command \u003ca href=\"#run-a-command\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre\u003e\u003ccode\u003evimconf!!\u0026lt;esc\u0026gt;!!figlet\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2 id=\"formatters\"\u003eformatters \u003ca href=\"#formatters\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kd\"\u003elocal\u003c/span\u003e \u003cspan class=\"n\"\u003esettings\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003erequire\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;waylonwalker.settings\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eM.waylonwalker_augroup\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eaugroup\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;waylonwalker\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"n\"\u003eclear\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"kc\"\u003etrue\u003c/span\u003e \u003cspan class=\"p\"\u003e})\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eM.format_python\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"kr\"\u003efunction\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"kr\"\u003eif\u003c/span\u003e \u003cspan class=\"n\"\u003esettings.auto_format\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003epython\u003c/span\u003e \u003cspan class=\"kr\"\u003ethen\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003evim.cmd\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;silent execute \u0026#34;%!tidy-imports --black --quiet --replace-star-imports --replace --add-missing --remove-unused \u0026#34; . bufname(\u0026#34;%\u0026#34;)\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003evim.cmd\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;silent execute \u0026#34;%!isort \u0026#34; . bufname(\u0026#34;%\u0026#34;)\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003evim.cmd\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;silent execute \u0026#34;%!black \u0026#34; . bufname(\u0026#34;%\u0026#34;)\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"kr\"\u003eend\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kr\"\u003eend\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eautocmd\u003c/span\u003e\u003cspan class=\"p\"\u003e({\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;BufWritePost\u0026#34;\u003c/span\u003e \u003cspan class=\"p\"\u003e},\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003egroup\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003eM.waylonwalker_augroup\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003epattern\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;*.py\u0026#34;\u003c/span\u003e \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003ecallback\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eM.format_python\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"file-navigation\"\u003eFile Navigation \u003ca href=\"#file-navigation\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003evim.keymap\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eset\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;n\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;geit\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;\u0026lt;cmd\u0026gt;terminal markata list --map path --filter \u003c/span\u003e\u003cspan class=\"se\"\u003e\\\u0026#39;\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#34;til\u0026#34; in path\u003c/span\u003e\u003cspan class=\"se\"\u003e\\\u0026#39;\u003c/span\u003e\u003cspan class=\"s1\"\u003e --fast --no-pager\u0026lt;cr\u0026gt;\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003evim.keymap\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eset\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;n\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;geit\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;\u0026lt;cmd\u0026gt;Telescope find_files find_command=markata,list,--map,path,--filter,date==today,--fast\u0026lt;cr\u0026gt;\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003evim.keymap\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eset\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;n\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;\u0026lt;leader\u0026gt;ee\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;\u0026lt;cmd\u0026gt;vertical terminal lf\u0026lt;cr\u0026gt;\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"floatterm\"\u003eFloatTerm \u003ca href=\"#floatterm\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003evim.keymap\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eset\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;n\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;\u0026lt;leader\u0026gt;\u0026lt;leader\u0026gt;w\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;\u0026lt;cmd\u0026gt;FloatermNew waylonwalker\u0026lt;cr\u0026gt;\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003evim.g\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;floaterm_opener\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;vsplit\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003evim.keymap\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eset\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;n\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;gee\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;\u0026lt;cmd\u0026gt;FloatermNew lf\u0026lt;cr\u0026gt;\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"vimgrep-over-hidden-files\"\u003evimgrep over hidden files \u003ca href=\"#vimgrep-over-hidden-files\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI know all the files that I care to search for are called build.yml, and they\nare in a hidden directory.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"nx\"\u003eargs\u003c/span\u003e `\u003cspan class=\"nx\"\u003efd\u003c/span\u003e \u003cspan class=\"p\"\u003e-\u003c/span\u003e\u003cspan class=\"nx\"\u003eH\u003c/span\u003e \u003cspan class=\"nx\"\u003ebuild\u003c/span\u003e.\u003cspan class=\"nx\"\u003eyml\u003c/span\u003e`\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"nx\"\u003evimgrep\u003c/span\u003e \u003cspan class=\"sr\"\u003e/upload docs/\u003c/span\u003e ##\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eOnce opened as a buffer by using args, and a handy fd command I can vimgrep\nover all the open buffers using \u003ccode\u003e##\u003c/code\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eOpen buffers are represented by ##\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eNow I can just \u003ccode\u003edap\u003c/code\u003e and \u003ccode\u003e:cnext\u003c/code\u003e my way through the list of changes that I\nhave, and know that I hit every one of them when I am at the end of my list.\nAnd can double check this in about 10s by scrolling back through the quickfix\nlist.\u003c/p\u003e\n",
      "content_text": "\nVimconf 2022\n\n## The pitch\n\nExtending vim does not need to be complicated and can be done using cli tools\nthat you might already be comfortable with. Examples, setting up\ncodeformatters with autocmds, using lf/ranger as a tui file manager, generating\nnew files using a template framework like cookiecutter/copier/yeoman, using ag\nto populate your quickfix.\n\n## run a command\n\n```\nvimconf!!\u003cesc\u003e!!figlet\n```\n\n## formatters\n\n```lua\nlocal settings = require'waylonwalker.settings'\n\nM.waylonwalker_augroup = augroup('waylonwalker', { clear = true })\nM.format_python = function()\n    if settings.auto_format.python then\n        vim.cmd('silent execute \"%!tidy-imports --black --quiet --replace-star-imports --replace --add-missing --remove-unused \" . bufname(\"%\")')\n        vim.cmd('silent execute \"%!isort \" . bufname(\"%\")')\n        vim.cmd('silent execute \"%!black \" . bufname(\"%\")')\n    end\nend\n\nautocmd({ \"BufWritePost\" }, {\n    group=M.waylonwalker_augroup,\n    pattern = { \"*.py\" },\n    callback = M.format_python,\n})\n```\n\n## File Navigation\n\n```lua\nvim.keymap.set('n', 'geit', '\u003ccmd\u003eterminal markata list --map path --filter \\'\"til\" in path\\' --fast --no-pager\u003ccr\u003e')\n```\n\n```lua\nvim.keymap.set('n', 'geit', '\u003ccmd\u003eTelescope find_files find_command=markata,list,--map,path,--filter,date==today,--fast\u003ccr\u003e')\n```\n\n```lua\nvim.keymap.set('n', '\u003cleader\u003eee', '\u003ccmd\u003evertical terminal lf\u003ccr\u003e')\n```\n\n## FloatTerm\n\n```lua\nvim.keymap.set('n', '\u003cleader\u003e\u003cleader\u003ew', '\u003ccmd\u003eFloatermNew waylonwalker\u003ccr\u003e')\nvim.g['floaterm_opener'] = 'vsplit'\nvim.keymap.set('n', 'gee', '\u003ccmd\u003eFloatermNew lf\u003ccr\u003e')\n```\n\n## vimgrep over hidden files\n\nI know all the files that I care to search for are called build.yml, and they\nare in a hidden directory.\n\n```vim\n:args `fd -H build.yml`\n:vimgrep /upload docs/ ##\n```\n\nOnce opened as a buffer by using args, and a handy fd command I can vimgrep\nover all the open buffers using `##`\n\n\u003e Open buffers are represented by ##\n\nNow I can just `dap` and `:cnext` my way through the list of changes that I\nhave, and know that I hit every one of them when I am at the end of my list.\nAnd can double check this in about 10s by scrolling back through the quickfix\nlist.\n",
      "summary": "Vimconf 2022",
      "date_published": "2022-11-12T18:38:11Z",
      "date_modified": "2022-11-12T18:38:11Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "vim"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/formatme/",
      "url": "https://go.waylonwalker.com/formatme/",
      "title": "formatme",
      "content_html": "\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003ekedro.pipeline\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003enode\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003enode\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nb\"\u003einput\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;raw\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003eoutput\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;int\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003efunc\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003emy_func\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003etags\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;one\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e],\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n```python\nfrom kedro.pipeline import node\n\nnode(\n    input=\"raw\",\n    output=\"int\",\n    func=my_func,\n    tags=[\"one\"],\n)\n```\n",
      "date_published": "2022-11-11T14:39:23Z",
      "date_modified": "2022-11-11T14:39:23Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "markdown"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/github-actions-cache-venv/",
      "url": "https://go.waylonwalker.com/github-actions-cache-venv/",
      "title": "caching python virtual environments in GitHub Actions",
      "date_published": "2022-10-21T15:32:49Z",
      "date_modified": "2022-10-21T15:32:49Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/markata-github-pages/",
      "url": "https://go.waylonwalker.com/markata-github-pages/",
      "title": "Markata GitHub Pages",
      "content_html": "\u003cul\u003e\n\u003cli\u003e11ty \u003ca href=\"https://www.rockyourcode.com/how-to-deploy-eleventy-to-github-pages-with-github-actions/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.rockyourcode.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.rockyourcode.com.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://www.rockyourcode.com/how-to-deploy-eleventy-to-github-pages-with-github-actions/\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ehugo puts it in the base url \u003ca href=\"https://gohugo.io/getting-started/configuration/#baseurl\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/gohugo.io.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/gohugo.io.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://gohugo.io/getting-started/configuration/#baseurl\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003emkdocs uses a special cli build command \u003ca href=\"https://squidfunk.github.io/mkdocs-material/publishing-your-site/#github-pages\"\u003ehttps://squidfunk.github.io/mkdocs-material/publishing-your-site/#github-pages\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\n\n* 11ty https://www.rockyourcode.com/how-to-deploy-eleventy-to-github-pages-with-github-actions/\n* hugo puts it in the base url https://gohugo.io/getting-started/configuration/#baseurl\n* mkdocs uses a special cli build command https://squidfunk.github.io/mkdocs-material/publishing-your-site/#github-pages\n",
      "summary": "hugo puts it in the base url https://gohugo.io/getting-started/configuration/#baseurl * mkdocs uses a special cli build command...",
      "date_published": "2022-10-19T18:03:31Z",
      "date_modified": "2022-10-19T18:03:31Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "markata"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/running-aws-cli-commands-with-localstack/",
      "url": "https://go.waylonwalker.com/running-aws-cli-commands-with-localstack/",
      "title": "running aws cli commands with localstack",
      "content_html": "\u003cp\u003eUpon first running an \u003ccode\u003eaws\u003c/code\u003e cli command using localstack you might end up with the following error.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnable to locate credentials. You can configure credentials by running \u003cspan class=\"s2\"\u003e\u0026#34;aws configure\u0026#34;\u003c/span\u003e.\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"easy-way\"\u003eEasy way \u003ca href=\"#easy-way\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe easy easiest way is to leverage a package called \u003ccode\u003eawscli-local\u003c/code\u003e.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epipx install awscli-local\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"leveraging-the-awscli\"\u003eLeveraging the awscli \u003ca href=\"#leveraging-the-awscli\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIf you want to use the cli pro\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epipx install awscli\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eaws config --profile localstack\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# put what you want for the keys, but enter a valid region like us-east-1\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003ealias\u003c/span\u003e \u003cspan class=\"nv\"\u003eaws\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;aws --endpoint-url http://localhost:4566 --profile localstack\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nUpon first running an `aws` cli command using localstack you might end up with the following error.\n\n``` bash\nUnable to locate credentials. You can configure credentials by running \"aws configure\".\n```\n\n## Easy way\n\nThe easy easiest way is to leverage a package called `awscli-local`.\n\n``` bash\npipx install awscli-local\n```\n\n## Leveraging the awscli\n\nIf you want to use the cli pro\n\n\n``` bash\npipx install awscli\n\naws config --profile localstack\n# put what you want for the keys, but enter a valid region like us-east-1\n\nalias aws='aws --endpoint-url http://localhost:4566 --profile localstack'\n```\n",
      "summary": "Upon first running an cli command using localstack you might end up with the following error.",
      "date_published": "2022-10-17T14:28:33Z",
      "date_modified": "2022-10-17T14:28:33Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "aws"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/django-rest-framework-react/",
      "url": "https://go.waylonwalker.com/django-rest-framework-react/",
      "title": "Using Django Rest Framework inside react",
      "content_html": "\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003enpx create-react-app todoreact\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kr\"\u003eimport\u003c/span\u003e \u003cspan class=\"nx\"\u003eReact\u003c/span\u003e\u003cspan class=\"p\"\u003e,{\u003c/span\u003e\u003cspan class=\"nx\"\u003euseState\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"nx\"\u003euseEffect\u003c/span\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"nx\"\u003efrom\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;react\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kr\"\u003eimport\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;./App.css\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kd\"\u003efunction\u003c/span\u003e \u003cspan class=\"nx\"\u003eApp\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"kr\"\u003econst\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nx\"\u003edata\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"nx\"\u003esetData\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"nx\"\u003euseState\u003c/span\u003e\u003cspan class=\"p\"\u003e([]);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"kr\"\u003econst\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nx\"\u003enewName\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"nx\"\u003esetNewName\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"nx\"\u003euseState\u003c/span\u003e\u003cspan class=\"p\"\u003e([]);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"kr\"\u003econst\u003c/span\u003e \u003cspan class=\"nx\"\u003egetData\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"p\"\u003e()=\u0026gt;{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nx\"\u003efetch\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;/api\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e,{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nx\"\u003eheaders\u003c/span\u003e \u003cspan class=\"o\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s1\"\u003e\u0026#39;Content-Type\u0026#39;\u003c/span\u003e\u003cspan class=\"o\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;application/json\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s1\"\u003e\u0026#39;Accept\u0026#39;\u003c/span\u003e\u003cspan class=\"o\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;application/json\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e       \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003ethen\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"kd\"\u003efunction\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"nx\"\u003eresponse\u003c/span\u003e\u003cspan class=\"p\"\u003e){\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"nx\"\u003eresponse\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003ejson\u003c/span\u003e\u003cspan class=\"p\"\u003e();\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"p\"\u003e})\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003ethen\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"kd\"\u003efunction\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"nx\"\u003emyJson\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"nx\"\u003esetData\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"nx\"\u003emyJson\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"p\"\u003e});\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nx\"\u003euseEffect\u003c/span\u003e\u003cspan class=\"p\"\u003e(()=\u0026gt;{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nx\"\u003egetData\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"p\"\u003e},[])\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"kr\"\u003econst\u003c/span\u003e \u003cspan class=\"nx\"\u003eaddItem\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"kr\"\u003easync\u003c/span\u003e \u003cspan class=\"p\"\u003e()\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u0026gt;\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"kr\"\u003econst\u003c/span\u003e \u003cspan class=\"nx\"\u003erawResponse\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"kr\"\u003eawait\u003c/span\u003e \u003cspan class=\"nx\"\u003efetch\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;/api/add/\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nx\"\u003emethod\u003c/span\u003e\u003cspan class=\"o\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;POST\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nx\"\u003eheaders\u003c/span\u003e\u003cspan class=\"o\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s1\"\u003e\u0026#39;Accept\u0026#39;\u003c/span\u003e\u003cspan class=\"o\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;application/json\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s1\"\u003e\u0026#39;Content-Type\u0026#39;\u003c/span\u003e\u003cspan class=\"o\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;application/json\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nx\"\u003ebody\u003c/span\u003e\u003cspan class=\"o\"\u003e:\u003c/span\u003e \u003cspan class=\"nx\"\u003eJSON\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003estringify\u003c/span\u003e\u003cspan class=\"p\"\u003e({\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;name\u0026#34;\u003c/span\u003e\u003cspan class=\"o\"\u003e:\u003c/span\u003e \u003cspan class=\"nx\"\u003enewName\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e});\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"kr\"\u003econst\u003c/span\u003e \u003cspan class=\"nx\"\u003econtent\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"kr\"\u003eawait\u003c/span\u003e \u003cspan class=\"nx\"\u003erawResponse\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nx\"\u003econsole\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003elog\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"nx\"\u003econtent\u003c/span\u003e\u003cspan class=\"p\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nx\"\u003egetData\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nx\"\u003ediv\u003c/span\u003e \u003cspan class=\"nx\"\u003eclassName\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;App\u0026#34;\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e     \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e       \u003cspan class=\"nx\"\u003edata\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e \u003cspan class=\"nx\"\u003edata\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003elength\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"mi\"\u003e0\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e \u003cspan class=\"nx\"\u003edata\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003emap\u003c/span\u003e\u003cspan class=\"p\"\u003e((\u003c/span\u003e\u003cspan class=\"nx\"\u003eitem\u003c/span\u003e\u003cspan class=\"p\"\u003e)=\u0026gt;\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nx\"\u003ep\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"nx\"\u003eitem\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003eid\u003c/span\u003e\u003cspan class=\"p\"\u003e}{\u003c/span\u003e\u003cspan class=\"nx\"\u003eitem\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003epriority\u003c/span\u003e\u003cspan class=\"p\"\u003e}{\u003c/span\u003e\u003cspan class=\"nx\"\u003eitem\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nx\"\u003ebutton\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"nx\"\u003eraise\u003c/span\u003e \u003cspan class=\"nx\"\u003epriority\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"err\"\u003e/button\u0026gt;\u0026lt;/p\u0026gt;)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e     \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nx\"\u003einput\u003c/span\u003e \u003cspan class=\"nx\"\u003etype\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;text\u0026#39;\u003c/span\u003e \u003cspan class=\"nx\"\u003evalue\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"nx\"\u003enewName\u003c/span\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"nx\"\u003eonChange\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"p\"\u003e{(\u003c/span\u003e\u003cspan class=\"nx\"\u003ee\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u0026gt;\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"nx\"\u003esetNewName\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"nx\"\u003ee\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003etarget\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003evalue\u003c/span\u003e\u003cspan class=\"p\"\u003e))}\u003c/span\u003e \u003cspan class=\"o\"\u003e/\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nx\"\u003ebutton\u003c/span\u003e \u003cspan class=\"nx\"\u003eonClick\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"nx\"\u003eaddItem\u003c/span\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"nx\"\u003eadd\u003c/span\u003e \u003cspan class=\"nx\"\u003eitem\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"err\"\u003e/button\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"err\"\u003e/div\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"p\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kr\"\u003eexport\u003c/span\u003e \u003cspan class=\"k\"\u003edefault\u003c/span\u003e \u003cspan class=\"nx\"\u003eApp\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n\n``` bash\nnpx create-react-app todoreact\n```\n\n``` javascript\nimport React,{useState,useEffect} from 'react';\nimport './App.css';\n\nfunction App() {\n  const [data,setData]=useState([]);\n  const [newName,setNewName]=useState([]);\n  const getData=()=\u003e{\n    fetch('/api'\n    ,{\n      headers : {\n        'Content-Type': 'application/json',\n        'Accept': 'application/json'\n       }\n    }\n    )\n      .then(function(response){\n        return response.json();\n      })\n      .then(function(myJson) {\n        setData(myJson)\n      });\n  }\n  useEffect(()=\u003e{\n    getData()\n  },[])\n\n  const addItem= async () =\u003e {\n    const rawResponse = await fetch('/api/add/', {\n      method: 'POST',\n      headers: {\n        'Accept': 'application/json',\n        'Content-Type': 'application/json'\n      },\n\n    body: JSON.stringify({\"name\": newName})\n    });\n    const content = await rawResponse;\n\n    console.log(content);\n    getData()\n  }\n\n\n\n\n  return (\n    \u003cdiv className=\"App\"\u003e\n     {\n       data \u0026\u0026 data.length\u003e0 \u0026\u0026 data.map((item)=\u003e\u003cp\u003e{item.id}{item.priority}{item.name}\u003cbutton\u003eraise priority\u003c/button\u003e\u003c/p\u003e)\n     }\n    \u003cinput type='text' value={newName} onChange={(e) =\u003e (setNewName(e.target.value))} /\u003e\n    \u003cbutton onClick={addItem} \u003eadd item\u003c/button\u003e\n    \u003c/div\u003e\n  );\n}\n\nexport default App;\n```\n",
      "date_published": "2022-10-09T20:56:19Z",
      "date_modified": "2022-10-09T20:56:19Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "django",
        "react",
        "webdev"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/django-polls-app/",
      "url": "https://go.waylonwalker.com/django-polls-app/",
      "title": "django polls app",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/388f4342-8623-4ac7-9b4b-1d63cd82d2ad.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/388f4342-8623-4ac7-9b4b-1d63cd82d2ad.png\" alt=\"djangopolls-startapp.png\"/ data-glightbox=\"description: djangopolls-startapp.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\n![djangopolls-startapp.png](https://dropper.waylonwalker.com/api/file/388f4342-8623-4ac7-9b4b-1d63cd82d2ad.png)\n",
      "date_published": "2022-09-26T09:17:52Z",
      "date_modified": "2022-09-26T09:17:52Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "django",
        "webdev"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/python-hatch-direct-dependencies/",
      "url": "https://go.waylonwalker.com/python-hatch-direct-dependencies/",
      "title": "Python direct dependencies in pyproject.toml",
      "content_html": "\u003cp\u003eHatch allows you to specify direct references for dependencies in your\n\u003ccode\u003epyproject.toml\u003c/code\u003e file. This is useful when you want to depend on a package that\nis not available on PyPI or when you want to use a specific version from a \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003eGit\u003c/a\u003e\nrepository.  Often used for unreleased packages, or unreleased versions of\npackages.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://hatch.pypa.io/dev/config/dependency/#direct-references\"\u003edocs\u003c/a\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nx\"\u003eproject\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003edependencies\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;markata\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;markata-todoui@git+https://github.com/waylonwalker/markata-todoui\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nx\"\u003etool\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003ehatch\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003emetadata\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003eallow-direct-references\u003c/span\u003e\u003cspan class=\"p\"\u003e=\u003c/span\u003e\u003cspan class=\"kc\"\u003etrue\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nHatch allows you to specify direct references for dependencies in your\n`pyproject.toml` file. This is useful when you want to depend on a package that\nis not available on PyPI or when you want to use a specific version from a Git\nrepository.  Often used for unreleased packages, or unreleased versions of\npackages.\n\n[docs](https://hatch.pypa.io/dev/config/dependency/#direct-references)\n\n``` toml\n[project]\ndependencies = ['markata', 'markata-todoui@git+https://github.com/waylonwalker/markata-todoui']\n\n[tool.hatch.metadata]\nallow-direct-references=true\n```\n",
      "summary": "Hatch allows you to specify direct references for dependencies in your file. This is useful when you want to depend on a package that is not available on...",
      "date_published": "2022-09-22T14:43:06Z",
      "date_modified": "2022-09-22T14:43:06Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/setting-up-snapper-on-arch/",
      "url": "https://go.waylonwalker.com/setting-up-snapper-on-arch/",
      "title": "Setting up snapper on Arch",
      "content_html": "\u003cp\u003e\u003ca href=\"https://www.youtube.com/watch?v=_97JOyC1o2o\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://www.youtube.com/watch?v=_97JOyC1o2o\u003c/a\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003esnapper\nsnap-pac\ngrub-btrfs\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2 id=\"note\"\u003eNote \u003ca href=\"#note\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThese are mostly my notes to remind myself, I’d Highly reccomend watching\n\u003ca href=\"https://www.youtube.com/watch?v=_97JOyC1o2o\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003ethis-video\u003c/a\u003e or reading this\n\u003ca href=\"https://wiki.archlinux.org/title/snapper\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/wiki.archlinux.org.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/wiki.archlinux.org.ico\" class=\"has-avatar  has-avatar-before\"\u003earch wiki page\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"snapshots-already-exists-error\"\u003e/.snapshots already exists error \u003ca href=\"#snapshots-already-exists-error\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWhen I started running \u003ccode\u003esudo snapper -c root create-config /\u003c/code\u003e  I ran into the\nfollowing error.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/689b85ad-aa94-44d2-a05b-111de5f29400.webp\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/689b85ad-aa94-44d2-a05b-111de5f29400.webp\" alt=\"snapshots-already-exists.webp\"/ data-glightbox=\"description: snapshots-already-exists.webp\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cpre\u003e\u003ccode\u003eCreating config failed (creating btrfs subvolume .snapshots failed since it already exists).\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2 id=\"remove-existing-snapshots\"\u003eremove existing snapshots \u003ca href=\"#remove-existing-snapshots\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo umount /.snapshots\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo rm -r /.snapshots\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"configure-snapper\"\u003econfigure snapper \u003ca href=\"#configure-snapper\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo snapper -c root create-config /\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo snapper -c home create-config /home\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"btrfs-subvolumes\"\u003ebtrfs subvolumes \u003ca href=\"#btrfs-subvolumes\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo btrfs subvolume list /\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/dbd2e2ee-3bd7-47a3-a808-578f96d3d6d4.webp\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/dbd2e2ee-3bd7-47a3-a808-578f96d3d6d4.webp\" alt=\"btrfs-subvolume-list.webp\"/ data-glightbox=\"description: btrfs-subvolume-list.webp\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo btrfs subvolume delete /.snapshots\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo mkdir /.snapshots\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"heading\"\u003e \u003ca href=\"#heading\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# you might not see snapshots mounted yet\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003elsblk\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# if you check fstab you will see an entry for it\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecat /etc/fstab\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# mount it\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo mount -a\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# now you should see /.snapshots mounted\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003elsblk\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eYou should now see \u003ccode\u003e.snapshots\u003c/code\u003e in mountpoints.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/c551d2be-0441-4dc7-8ee5-6ba600faa126.webp\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/c551d2be-0441-4dc7-8ee5-6ba600faa126.webp\" alt=\"lsblk-snapshots.webp\"/ data-glightbox=\"description: lsblk-snapshots.webp\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"setting-the-default-to-\"\u003eSetting the default to @ \u003ca href=\"#setting-the-default-to-\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eso that you can boot into snapper snapshots\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo btrfs subvol get-default /\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo btrfs subvol list /\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/231bb2a9-1679-4c42-9fd9-1fa6d7490cb2.webp\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/231bb2a9-1679-4c42-9fd9-1fa6d7490cb2.webp\" alt=\"btrfs-subvol-get-default.webp\"/ data-glightbox=\"description: btrfs-subvol-get-default.webp\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo btrfs subvol set-default \u003cspan class=\"m\"\u003e256\u003c/span\u003e /\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo btrfs subvol get-default /\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e## ID 256 gen 105268 top level 5 path @\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/1780cbfe-0c71-432e-bef6-00db6a7d9563.webp\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/1780cbfe-0c71-432e-bef6-00db6a7d9563.webp\" alt=\"btrfs-subvol-set-default.webp\"/ data-glightbox=\"description: btrfs-subvol-set-default.webp\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"snapper-ls\"\u003esnapper ls \u003ca href=\"#snapper-ls\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo snapper ls\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/24741b02-db31-41fe-957b-6eec2600db2b.webp\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/24741b02-db31-41fe-957b-6eec2600db2b.webp\" alt=\"snapper-ls-init.webp\"/ data-glightbox=\"description: snapper-ls-init.webp\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eleaving off for now\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://youtu.be/_97JOyC1o2o?t=909\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/youtu.be.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/youtu.be.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://youtu.be/_97JOyC1o2o?t=909\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"config\"\u003econfig \u003ca href=\"#config\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo nvim /etc/snapper/configs/root\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003eALLOW_GROUPS\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;wheel\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# limits for timeline cleanup\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003eTIMELINE_MIN_AGE\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;1800\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003eTIMELINE_LIMIT_HOURLY\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;5\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003eTIMELINE_LIMIT_DAILY\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;7\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003eTIMELINE_LIMIT_WEEKLY\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;0\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003eTIMELINE_LIMIT_MONTHLY\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;0\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003eTIMELINE_LIMIT_YEARLY\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;0\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre\u003e\u003ccode\u003esudo chown -R :wheel /.snapshots/\n\u003c/code\u003e\u003c/pre\u003e\n",
      "content_text": "\nhttps://www.youtube.com/watch?v=_97JOyC1o2o\n\n```\nsnapper\nsnap-pac\ngrub-btrfs\n```\n\n## Note\n\nThese are mostly my notes to remind myself, I'd Highly reccomend watching\n[this-video]( https://www.youtube.com/watch?v=_97JOyC1o2o) or reading this\n[arch wiki page](https://wiki.archlinux.org/title/snapper)\n\n## /.snapshots already exists error\n\nWhen I started running `sudo snapper -c root create-config /`  I ran into the\nfollowing error.\n\n![snapshots-already-exists.webp](https://dropper.waylonwalker.com/api/file/689b85ad-aa94-44d2-a05b-111de5f29400.webp)\n\n```\nCreating config failed (creating btrfs subvolume .snapshots failed since it already exists).\n```\n\n## remove existing snapshots\n\n``` bash\nsudo umount /.snapshots\nsudo rm -r /.snapshots\n```\n\n## configure snapper\n\n``` bash\nsudo snapper -c root create-config /\nsudo snapper -c home create-config /home\n```\n\n## btrfs subvolumes\n\n``` bash\nsudo btrfs subvolume list /\n```\n\n![btrfs-subvolume-list.webp](https://dropper.waylonwalker.com/api/file/dbd2e2ee-3bd7-47a3-a808-578f96d3d6d4.webp)\n\n``` bash\nsudo btrfs subvolume delete /.snapshots\nsudo mkdir /.snapshots\n```\n\n##\n\n``` bash\n# you might not see snapshots mounted yet\nlsblk\n\n# if you check fstab you will see an entry for it\ncat /etc/fstab\n\n# mount it\nsudo mount -a\n\n# now you should see /.snapshots mounted\nlsblk\n```\n\nYou should now see `.snapshots` in mountpoints.\n\n![lsblk-snapshots.webp](https://dropper.waylonwalker.com/api/file/c551d2be-0441-4dc7-8ee5-6ba600faa126.webp)\n\n## Setting the default to @\n\nso that you can boot into snapper snapshots\n\n``` bash\nsudo btrfs subvol get-default /\nsudo btrfs subvol list /\n```\n\n![btrfs-subvol-get-default.webp](https://dropper.waylonwalker.com/api/file/231bb2a9-1679-4c42-9fd9-1fa6d7490cb2.webp)\n\n``` bash\nsudo btrfs subvol set-default 256 /\nsudo btrfs subvol get-default /\n## ID 256 gen 105268 top level 5 path @\n```\n\n![btrfs-subvol-set-default.webp](https://dropper.waylonwalker.com/api/file/1780cbfe-0c71-432e-bef6-00db6a7d9563.webp)\n\n## snapper ls\n\n``` bash\nsudo snapper ls\n```\n\n![snapper-ls-init.webp](https://dropper.waylonwalker.com/api/file/24741b02-db31-41fe-957b-6eec2600db2b.webp)\n\nleaving off for now\n\nhttps://youtu.be/_97JOyC1o2o?t=909\n\n## config\n\n``` bash\nsudo nvim /etc/snapper/configs/root\n```\n\n``` bash\nALLOW_GROUPS=\"wheel\"\n\n# limits for timeline cleanup\nTIMELINE_MIN_AGE=\"1800\"\nTIMELINE_LIMIT_HOURLY=\"5\"\nTIMELINE_LIMIT_DAILY=\"7\"\nTIMELINE_LIMIT_WEEKLY=\"0\"\nTIMELINE_LIMIT_MONTHLY=\"0\"\nTIMELINE_LIMIT_YEARLY=\"0\"\n```\n\n```\nsudo chown -R :wheel /.snapshots/\n```\n",
      "summary": "https://www.youtube.com/watch?v=_97JOyC1o2o",
      "date_published": "2022-09-05T11:00:46Z",
      "date_modified": "2022-09-05T11:00:46Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/year/",
      "url": "https://go.waylonwalker.com/year/",
      "title": "Highlighting text ranges with Rich | python",
      "content_html": "\u003cp\u003e{% for year in markata.map(“date.year”, filter=‘published’)|unique %}\u003c/p\u003e\n\u003ch2 id=\"-year-\"\u003e{{ year }} \u003ca href=\"#-year-\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e{% for post in markata.map(‘post’, filter=“published and date.year == “+year|string, sort=‘date’) %}\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[{{ post.title }} - {{ post.date.month }}/{{ post.date.day }}](/{{ post.slug }})\n{% endfor %}\n{% endfor %}\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\n{% for year in markata.map(\"date.year\", filter='published')|unique %}\n\n## {{ year }}\n\n{% for post in markata.map('post', filter=\"published and date.year == \"+year|string, sort='date') %}\n\n- [{{ post.title }} - {{ post.date.month }}/{{ post.date.day }}](/{{ post.slug }})\n  {% endfor %}\n  {% endfor %}\n",
      "date_published": "2022-08-24T20:06:34Z",
      "date_modified": "2022-08-24T20:06:34Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/muck/",
      "url": "https://go.waylonwalker.com/steam/muck/",
      "title": "Muck",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/1625450/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/1625450/library_600x900.jpg\" alt=\"Muck box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/1625450/header.jpg\u0026#39;\"/ data-glightbox=\"description: Muck box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eMuck\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 2.04%\"\u003e\n        2.04%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e1/49 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e8.8h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2022-08-19\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (1)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/bce2811a6b5463e8244490701dcfe1f61715ae52.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/bce2811a6b5463e8244490701dcfe1f61715ae52.jpg\" alt=\"Big Mistake\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Big Mistake\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBig Mistake\u003c/strong\u003e\u003cbr/\u003e\n    Play Muck for the first time\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 31, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (48)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Easy Peasy\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Easy Peasy\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEasy Peasy\u003c/strong\u003e\u003cbr/\u003e\n    Beat the game on easy difficulty\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Learning the ropes\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Learning the ropes\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLearning the ropes\u003c/strong\u003e\u003cbr/\u003e\n    Beat the game on normal difficulty\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Hardcore gamer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hardcore gamer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHardcore gamer\u003c/strong\u003e\u003cbr/\u003e\n    Beat the game on gamer difficulty\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"A gamer move\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A gamer move\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA gamer move\u003c/strong\u003e\u003cbr/\u003e\n    Beat the game in less than 10 days on Gamer mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/4a45bd1b76133cad6c3cde7efe64054c9fbfbae9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/4a45bd1b76133cad6c3cde7efe64054c9fbfbae9.jpg\" alt=\"Speedrunner\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Speedrunner\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpeedrunner\u003c/strong\u003e\u003cbr/\u003e\n    Beat the game in less than 8 days\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/4a45bd1b76133cad6c3cde7efe64054c9fbfbae9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/4a45bd1b76133cad6c3cde7efe64054c9fbfbae9.jpg\" alt=\"What the muck\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: What the muck\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhat the muck\u003c/strong\u003e\u003cbr/\u003e\n    Beat the game without any players picking up a powerup\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Set sail\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Set sail\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSet sail\u003c/strong\u003e\u003cbr/\u003e\n    Leave Muck\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Untouchable\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Untouchable\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUntouchable\u003c/strong\u003e\u003cbr/\u003e\n    Beat the game alone without taking any damage (Normal difficulty or harder)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Dream Team\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Dream Team\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDream Team\u003c/strong\u003e\u003cbr/\u003e\n    Beat the game with 2 players, but no one can take any damage (Normal diff or harder)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"The bois\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The bois\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe bois\u003c/strong\u003e\u003cbr/\u003e\n    Beat the game with 4 players, but no one can take any damage (Normal diff or harder)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Sweat and tears\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sweat and tears\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSweat and tears\u003c/strong\u003e\u003cbr/\u003e\n    Beat the game with 8 players, but no one can take any damage (Normal diff or harder)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Muckinator\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Muckinator\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMuckinator\u003c/strong\u003e\u003cbr/\u003e\n    Kill 100 mobs\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Muckinator 2\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Muckinator 2\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMuckinator 2\u003c/strong\u003e\u003cbr/\u003e\n    Kill 1,000 mobs\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Muckinator 3\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Muckinator 3\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMuckinator 3\u003c/strong\u003e\u003cbr/\u003e\n    Kill 10,000 mobs\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Muckinator 4\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Muckinator 4\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMuckinator 4\u003c/strong\u003e\u003cbr/\u003e\n    Kill 100,000 mobs\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Underdog\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Underdog\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUnderdog\u003c/strong\u003e\u003cbr/\u003e\n    Kill 250 buff mobs\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Bullseye\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bullseye\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBullseye\u003c/strong\u003e\u003cbr/\u003e\n    Kill 200 enemies using bows\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"That\u0026#39;s not very milk of you, sir\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: That\u0026#39;s not very milk of you, sir\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThat\u0026#39;s not very milk of you, sir\u003c/strong\u003e\u003cbr/\u003e\n    Kill 250 cows\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"David vs Goliath\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: David vs Goliath\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDavid vs Goliath\u003c/strong\u003e\u003cbr/\u003e\n    Defeat big chunk\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Gronk\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Gronk\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGronk\u003c/strong\u003e\u003cbr/\u003e\n    Defeat Gronk\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Guardian\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Guardian\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGuardian\u003c/strong\u003e\u003cbr/\u003e\n    Defeat Guardian\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/4a45bd1b76133cad6c3cde7efe64054c9fbfbae9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/4a45bd1b76133cad6c3cde7efe64054c9fbfbae9.jpg\" alt=\"Fearless\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fearless\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFearless\u003c/strong\u003e\u003cbr/\u003e\n    Slay all bosses\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Death Wish\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Death Wish\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDeath Wish\u003c/strong\u003e\u003cbr/\u003e\n    Start 200 battle totems\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Goblin Slayer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Goblin Slayer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGoblin Slayer\u003c/strong\u003e\u003cbr/\u003e\n    Slay 1000 goblins\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Pain and suffering\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Pain and suffering\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePain and suffering\u003c/strong\u003e\u003cbr/\u003e\n    Die 10 times\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/4a45bd1b76133cad6c3cde7efe64054c9fbfbae9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/4a45bd1b76133cad6c3cde7efe64054c9fbfbae9.jpg\" alt=\"This is fine\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: This is fine\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThis is fine\u003c/strong\u003e\u003cbr/\u003e\n    Die 25 times\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Muck off\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Muck off\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMuck off\u003c/strong\u003e\u003cbr/\u003e\n    Die 50 Times\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/4a45bd1b76133cad6c3cde7efe64054c9fbfbae9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/4a45bd1b76133cad6c3cde7efe64054c9fbfbae9.jpg\" alt=\"Muck this game\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Muck this game\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMuck this game\u003c/strong\u003e\u003cbr/\u003e\n    Die 100 Times\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"You\u0026#39;re not a fish\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: You\u0026#39;re not a fish\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou\u0026#39;re not a fish\u003c/strong\u003e\u003cbr/\u003e\n    Drown\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Treasure Hunter\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Treasure Hunter\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTreasure Hunter\u003c/strong\u003e\u003cbr/\u003e\n    Open 500 chests\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Architect\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Architect\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArchitect\u003c/strong\u003e\u003cbr/\u003e\n    Build 250 builds\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Illegal work\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Illegal work\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIllegal work\u003c/strong\u003e\u003cbr/\u003e\n    Craft 1,000 coins\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/4a45bd1b76133cad6c3cde7efe64054c9fbfbae9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/4a45bd1b76133cad6c3cde7efe64054c9fbfbae9.jpg\" alt=\"Go outside\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Go outside\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGo outside\u003c/strong\u003e\u003cbr/\u003e\n    Survive for 100 days\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"The Black Swordsman\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Black Swordsman\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Black Swordsman\u003c/strong\u003e\u003cbr/\u003e\n    Wield the Night Blade\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Milkman\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Milkman\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMilkman\u003c/strong\u003e\u003cbr/\u003e\n    Pick up 10 Milk powerups in one game\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/4a45bd1b76133cad6c3cde7efe64054c9fbfbae9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/4a45bd1b76133cad6c3cde7efe64054c9fbfbae9.jpg\" alt=\"You\u0026#39;re a fish\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: You\u0026#39;re a fish\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou\u0026#39;re a fish\u003c/strong\u003e\u003cbr/\u003e\n    Swim 25km\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Team player\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Team player\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTeam player\u003c/strong\u003e\u003cbr/\u003e\n    Revive a teammate\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/4a45bd1b76133cad6c3cde7efe64054c9fbfbae9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/4a45bd1b76133cad6c3cde7efe64054c9fbfbae9.jpg\" alt=\"The red plumber man lied\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The red plumber man lied\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe red plumber man lied\u003c/strong\u003e\u003cbr/\u003e\n    Eat 50 red shrooms without growing bigger\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Salty\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Salty\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSalty\u003c/strong\u003e\u003cbr/\u003e\n    Kill a friend on Survival Mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Leg day\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Leg day\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLeg day\u003c/strong\u003e\u003cbr/\u003e\n    Walk 250km\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/4a45bd1b76133cad6c3cde7efe64054c9fbfbae9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/4a45bd1b76133cad6c3cde7efe64054c9fbfbae9.jpg\" alt=\"I am Inevitable\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: I am Inevitable\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI am Inevitable\u003c/strong\u003e\u003cbr/\u003e\n    Collect all 5 gems\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Phoon\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Phoon\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePhoon\u003c/strong\u003e\u003cbr/\u003e\n    Jump 10,000 times\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Oh you don\u0026#39;t know what Karlson is?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Oh you don\u0026#39;t know what Karlson is?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOh you don\u0026#39;t know what Karlson is?\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Caveman\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Caveman\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCaveman\u003c/strong\u003e\u003cbr/\u003e\n    Beat the game using only a rock as your weapon / tool. This goes for all players.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Muck\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Muck\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMuck\u003c/strong\u003e\u003cbr/\u003e\n    Beat the game using only a rock, taking no damage and using no powerups. This goes for all players in lobby. (Normal or harder)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Chief\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Chief\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChief\u003c/strong\u003e\u003cbr/\u003e\n    Defeat Chief\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/4a45bd1b76133cad6c3cde7efe64054c9fbfbae9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/4a45bd1b76133cad6c3cde7efe64054c9fbfbae9.jpg\" alt=\"Irresistible\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Irresistible\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIrresistible\u003c/strong\u003e\u003cbr/\u003e\n    Open Chiefs chest\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Public Enemy\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Public Enemy\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePublic Enemy\u003c/strong\u003e\u003cbr/\u003e\n    Kill 100 Woodmen\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/1625450/library_600x900.jpg\" alt=\"Muck box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/1625450/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eMuck\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 2.04%\"\u003e\n        2.04%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e1/49 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e8.8h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2022-08-19\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (1)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/bce2811a6b5463e8244490701dcfe1f61715ae52.jpg\" alt=\"Big Mistake\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBig Mistake\u003c/strong\u003e\u003cbr\u003e\n    Play Muck for the first time\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 31, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (48)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Easy Peasy\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEasy Peasy\u003c/strong\u003e\u003cbr\u003e\n    Beat the game on easy difficulty\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Learning the ropes\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLearning the ropes\u003c/strong\u003e\u003cbr\u003e\n    Beat the game on normal difficulty\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Hardcore gamer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHardcore gamer\u003c/strong\u003e\u003cbr\u003e\n    Beat the game on gamer difficulty\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"A gamer move\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA gamer move\u003c/strong\u003e\u003cbr\u003e\n    Beat the game in less than 10 days on Gamer mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/4a45bd1b76133cad6c3cde7efe64054c9fbfbae9.jpg\" alt=\"Speedrunner\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSpeedrunner\u003c/strong\u003e\u003cbr\u003e\n    Beat the game in less than 8 days\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/4a45bd1b76133cad6c3cde7efe64054c9fbfbae9.jpg\" alt=\"What the muck\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhat the muck\u003c/strong\u003e\u003cbr\u003e\n    Beat the game without any players picking up a powerup\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Set sail\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSet sail\u003c/strong\u003e\u003cbr\u003e\n    Leave Muck\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Untouchable\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUntouchable\u003c/strong\u003e\u003cbr\u003e\n    Beat the game alone without taking any damage (Normal difficulty or harder)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Dream Team\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDream Team\u003c/strong\u003e\u003cbr\u003e\n    Beat the game with 2 players, but no one can take any damage (Normal diff or harder)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"The bois\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe bois\u003c/strong\u003e\u003cbr\u003e\n    Beat the game with 4 players, but no one can take any damage (Normal diff or harder)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Sweat and tears\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSweat and tears\u003c/strong\u003e\u003cbr\u003e\n    Beat the game with 8 players, but no one can take any damage (Normal diff or harder)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Muckinator\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMuckinator\u003c/strong\u003e\u003cbr\u003e\n    Kill 100 mobs\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Muckinator 2\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMuckinator 2\u003c/strong\u003e\u003cbr\u003e\n    Kill 1,000 mobs\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Muckinator 3\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMuckinator 3\u003c/strong\u003e\u003cbr\u003e\n    Kill 10,000 mobs\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Muckinator 4\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMuckinator 4\u003c/strong\u003e\u003cbr\u003e\n    Kill 100,000 mobs\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Underdog\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUnderdog\u003c/strong\u003e\u003cbr\u003e\n    Kill 250 buff mobs\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Bullseye\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBullseye\u003c/strong\u003e\u003cbr\u003e\n    Kill 200 enemies using bows\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"That's not very milk of you, sir\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThat's not very milk of you, sir\u003c/strong\u003e\u003cbr\u003e\n    Kill 250 cows\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"David vs Goliath\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDavid vs Goliath\u003c/strong\u003e\u003cbr\u003e\n    Defeat big chunk\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Gronk\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGronk\u003c/strong\u003e\u003cbr\u003e\n    Defeat Gronk\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Guardian\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGuardian\u003c/strong\u003e\u003cbr\u003e\n    Defeat Guardian\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/4a45bd1b76133cad6c3cde7efe64054c9fbfbae9.jpg\" alt=\"Fearless\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFearless\u003c/strong\u003e\u003cbr\u003e\n    Slay all bosses\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Death Wish\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDeath Wish\u003c/strong\u003e\u003cbr\u003e\n    Start 200 battle totems\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Goblin Slayer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGoblin Slayer\u003c/strong\u003e\u003cbr\u003e\n    Slay 1000 goblins\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Pain and suffering\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePain and suffering\u003c/strong\u003e\u003cbr\u003e\n    Die 10 times\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/4a45bd1b76133cad6c3cde7efe64054c9fbfbae9.jpg\" alt=\"This is fine\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThis is fine\u003c/strong\u003e\u003cbr\u003e\n    Die 25 times\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Muck off\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMuck off\u003c/strong\u003e\u003cbr\u003e\n    Die 50 Times\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/4a45bd1b76133cad6c3cde7efe64054c9fbfbae9.jpg\" alt=\"Muck this game\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMuck this game\u003c/strong\u003e\u003cbr\u003e\n    Die 100 Times\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"You're not a fish\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou're not a fish\u003c/strong\u003e\u003cbr\u003e\n    Drown\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Treasure Hunter\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTreasure Hunter\u003c/strong\u003e\u003cbr\u003e\n    Open 500 chests\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Architect\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArchitect\u003c/strong\u003e\u003cbr\u003e\n    Build 250 builds\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Illegal work\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIllegal work\u003c/strong\u003e\u003cbr\u003e\n    Craft 1,000 coins\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/4a45bd1b76133cad6c3cde7efe64054c9fbfbae9.jpg\" alt=\"Go outside\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGo outside\u003c/strong\u003e\u003cbr\u003e\n    Survive for 100 days\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"The Black Swordsman\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Black Swordsman\u003c/strong\u003e\u003cbr\u003e\n    Wield the Night Blade\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Milkman\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMilkman\u003c/strong\u003e\u003cbr\u003e\n    Pick up 10 Milk powerups in one game\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/4a45bd1b76133cad6c3cde7efe64054c9fbfbae9.jpg\" alt=\"You're a fish\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou're a fish\u003c/strong\u003e\u003cbr\u003e\n    Swim 25km\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Team player\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTeam player\u003c/strong\u003e\u003cbr\u003e\n    Revive a teammate\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/4a45bd1b76133cad6c3cde7efe64054c9fbfbae9.jpg\" alt=\"The red plumber man lied\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe red plumber man lied\u003c/strong\u003e\u003cbr\u003e\n    Eat 50 red shrooms without growing bigger\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Salty\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSalty\u003c/strong\u003e\u003cbr\u003e\n    Kill a friend on Survival Mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Leg day\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLeg day\u003c/strong\u003e\u003cbr\u003e\n    Walk 250km\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/4a45bd1b76133cad6c3cde7efe64054c9fbfbae9.jpg\" alt=\"I am Inevitable\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI am Inevitable\u003c/strong\u003e\u003cbr\u003e\n    Collect all 5 gems\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Phoon\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePhoon\u003c/strong\u003e\u003cbr\u003e\n    Jump 10,000 times\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Oh you don't know what Karlson is?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOh you don't know what Karlson is?\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Caveman\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCaveman\u003c/strong\u003e\u003cbr\u003e\n    Beat the game using only a rock as your weapon / tool. This goes for all players.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Muck\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMuck\u003c/strong\u003e\u003cbr\u003e\n    Beat the game using only a rock, taking no damage and using no powerups. This goes for all players in lobby. (Normal or harder)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Chief\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChief\u003c/strong\u003e\u003cbr\u003e\n    Defeat Chief\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/4a45bd1b76133cad6c3cde7efe64054c9fbfbae9.jpg\" alt=\"Irresistible\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIrresistible\u003c/strong\u003e\u003cbr\u003e\n    Open Chiefs chest\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1625450/51cb22b723b2ea375a88dff1f04606d9c213d72d.jpg\" alt=\"Public Enemy\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePublic Enemy\u003c/strong\u003e\u003cbr\u003e\n    Kill 100 Woodmen\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Muck - 2.04% complete with 1/49 achievements unlocked.",
      "date_published": "2022-08-19T00:00:00Z",
      "date_modified": "2022-08-19T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "muck"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/kedro-disable-hook/",
      "url": "https://go.waylonwalker.com/kedro-disable-hook/",
      "title": "How to Disable Kedro Viz | or any kedro hook",
      "date_published": "2022-08-08T21:01:03Z",
      "date_modified": "2022-08-08T21:01:03Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/polybar-gpu-stats/",
      "url": "https://go.waylonwalker.com/polybar-gpu-stats/",
      "title": "Gpu Stats in my linux statusbar",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://images.waylonwalker.com/polybar-gpu-stat.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://images.waylonwalker.com/polybar-gpu-stat.png\" alt=\"polybar gpu stats\"/ data-glightbox=\"description: polybar gpu stats\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\n![polybar gpu stats](https://images.waylonwalker.com/polybar-gpu-stat.png)\n",
      "date_published": "2022-08-03T21:25:56Z",
      "date_modified": "2022-08-03T21:25:56Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/sein/",
      "url": "https://go.waylonwalker.com/steam/sein/",
      "title": "sein",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/387290/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/387290/library_600x900.jpg\" alt=\"sein box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/387290/header.jpg\u0026#39;\"/ data-glightbox=\"description: sein box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003esein\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 8.77%\"\u003e\n        8.77%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e5/57 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e8.8h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2022-08-03\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (5)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/f103d6772ae0d3f9eafda30e67176e7bdcb65ff7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/f103d6772ae0d3f9eafda30e67176e7bdcb65ff7.jpg\" alt=\"The Journey Begins\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Journey Begins\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Journey Begins\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Prologue\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 12, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/6e0d165220b1b8af145f5e46380f710f1736b968.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/6e0d165220b1b8af145f5e46380f710f1736b968.jpg\" alt=\"The Ancient Being \" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Ancient Being\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Ancient Being \u003c/strong\u003e\u003cbr/\u003e\n    Meet the Ancient Being\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 20, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/5aa217085a5710bcbe15f407b1b44921e49d7cb3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/5aa217085a5710bcbe15f407b1b44921e49d7cb3.jpg\" alt=\"Choices Choices\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Choices Choices\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChoices Choices\u003c/strong\u003e\u003cbr/\u003e\n    Use your first ability point\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 12, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/e943e15ec619e11f6071ba238b14e41a0449db90.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/e943e15ec619e11f6071ba238b14e41a0449db90.jpg\" alt=\"So Many Secrets\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: So Many Secrets\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSo Many Secrets\u003c/strong\u003e\u003cbr/\u003e\n    Find your first secret\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 12, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/4bbf264374afc58e9198cb8a2f82ab3e908acb37.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/4bbf264374afc58e9198cb8a2f82ab3e908acb37.jpg\" alt=\"Marking the way\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Marking the way\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMarking the way\u003c/strong\u003e\u003cbr/\u003e\n    Restore your first Map Stone\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 14, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (52)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/6c0519550af73de408a1ac8dbbe039ceec4b6e6c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/6c0519550af73de408a1ac8dbbe039ceec4b6e6c.jpg\" alt=\"Get Back Here!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Get Back Here!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGet Back Here!\u003c/strong\u003e\u003cbr/\u003e\n    Discover the character in the shadows\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/65266b65ae3df4373862c07b4785f6574191514b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/65266b65ae3df4373862c07b4785f6574191514b.jpg\" alt=\"Let\u0026#39;s be Friends\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Let\u0026#39;s be Friends\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLet\u0026#39;s be Friends\u003c/strong\u003e\u003cbr/\u003e\n    Make an unexpected friend\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/14d8f9a2f4ebd526e58a902d9f13cc86dfa4ed7f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/14d8f9a2f4ebd526e58a902d9f13cc86dfa4ed7f.jpg\" alt=\"Rotten Inside\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Rotten Inside\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRotten Inside\u003c/strong\u003e\u003cbr/\u003e\n    Enter the Ginso Tree\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/ec6fa4e5f068e59344d61284aadac424f6b87d5b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/ec6fa4e5f068e59344d61284aadac424f6b87d5b.jpg\" alt=\"Run for Your Life\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Run for Your Life\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRun for Your Life\u003c/strong\u003e\u003cbr/\u003e\n    Cleanse the Ginso Tree\u0026#39;s Heart\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/5a1c98fcb2cbc97d3eea841ae865b36cf9fd4f0c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/5a1c98fcb2cbc97d3eea841ae865b36cf9fd4f0c.jpg\" alt=\"Close Call\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Close Call\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eClose Call\u003c/strong\u003e\u003cbr/\u003e\n    Escape a dangerous situation  \n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/c3db5dd63b4d59389ba3cf324e1e1bc15ea13700.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/c3db5dd63b4d59389ba3cf324e1e1bc15ea13700.jpg\" alt=\"Obtaining Clarity\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Obtaining Clarity\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eObtaining Clarity\u003c/strong\u003e\u003cbr/\u003e\n    Clear the haze from the Misty Woods\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/ee3997289012712253ce1dfd1016245069f22e94.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/ee3997289012712253ce1dfd1016245069f22e94.jpg\" alt=\"Solid Ground\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Solid Ground\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSolid Ground\u003c/strong\u003e\u003cbr/\u003e\n    Restore the winds of Nibel\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/52ba54f787f1c98cf9ca5b3b1ba83b1c4cae7572.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/52ba54f787f1c98cf9ca5b3b1ba83b1c4cae7572.jpg\" alt=\"Fight to Live Another Day\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fight to Live Another Day\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFight to Live Another Day\u003c/strong\u003e\u003cbr/\u003e\n    Have a close encounter\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/29cd66b9d4e81a2728ffe611561c372a19200995.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/29cd66b9d4e81a2728ffe611561c372a19200995.jpg\" alt=\"Top of the world\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Top of the world\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTop of the world\u003c/strong\u003e\u003cbr/\u003e\n    Climb to the top of Nibel\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/c721a74e9d75dd221de36a3a10891a2e08d54769.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/c721a74e9d75dd221de36a3a10891a2e08d54769.jpg\" alt=\"Into the Fire\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Into the Fire\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInto the Fire\u003c/strong\u003e\u003cbr/\u003e\n    Enter Mt. Horu\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/e68d40dd809fbdc2d64ce5360b93c465e8381e15.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/e68d40dd809fbdc2d64ce5360b93c465e8381e15.jpg\" alt=\"Rekindle\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Rekindle\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRekindle\u003c/strong\u003e\u003cbr/\u003e\n    Fan the flames\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/24ace0a54157a7e139de6eb4b9e6a779af322f8d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/24ace0a54157a7e139de6eb4b9e6a779af322f8d.jpg\" alt=\"Love\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Love\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLove\u003c/strong\u003e\u003cbr/\u003e\n    A beloved bond\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/207a2c4e22e931f8923abb55ac9a6d54e2e4c8d4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/207a2c4e22e931f8923abb55ac9a6d54e2e4c8d4.jpg\" alt=\"The Journey Ends\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Journey Ends\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Journey Ends\u003c/strong\u003e\u003cbr/\u003e\n    Complete the game\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/64787f13dce60d231aed4c2a838d536a43947e52.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/64787f13dce60d231aed4c2a838d536a43947e52.jpg\" alt=\"Life Saver\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Life Saver\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLife Saver\u003c/strong\u003e\u003cbr/\u003e\n    Create 50 Soul Links\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/299eccdf2d29d9f838adc3f6b113105da6fb6b1a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/299eccdf2d29d9f838adc3f6b113105da6fb6b1a.jpg\" alt=\"Deadly Detonation\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Deadly Detonation\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDeadly Detonation\u003c/strong\u003e\u003cbr/\u003e\n    Kill 4 enemies simultaneously using Charge Flame.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/786108f835cac477dcaddef0240ab9c446edc52c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/786108f835cac477dcaddef0240ab9c446edc52c.jpg\" alt=\"Deadly Deflection\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Deadly Deflection\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDeadly Deflection\u003c/strong\u003e\u003cbr/\u003e\n    Kill 25 enemies using Bash to reflect projectiles\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/666e9d24370a7893b8b47c6ffd6a78e4e92e75b3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/666e9d24370a7893b8b47c6ffd6a78e4e92e75b3.jpg\" alt=\"A New Path\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A New Path\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA New Path\u003c/strong\u003e\u003cbr/\u003e\n    Break open 5 shortcuts using the Charge Flame\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/e37d86b9b2881db80f421a9a58567f73061129c9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/e37d86b9b2881db80f421a9a58567f73061129c9.jpg\" alt=\"Deadly Dash\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Deadly Dash\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDeadly Dash\u003c/strong\u003e\u003cbr/\u003e\n    Kill 5 enemies with Charge Jump\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/dff290cc6f5079c7c7dcbacf5a3ae9550332d6ee.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/dff290cc6f5079c7c7dcbacf5a3ae9550332d6ee.jpg\" alt=\"Seasoned Explorer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Seasoned Explorer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSeasoned Explorer\u003c/strong\u003e\u003cbr/\u003e\n    Find 50% of all secrets\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/02296c35d0d76845db529fa89a546613c86bb7f9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/02296c35d0d76845db529fa89a546613c86bb7f9.jpg\" alt=\"No Stone Unturned\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: No Stone Unturned\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNo Stone Unturned\u003c/strong\u003e\u003cbr/\u003e\n    Find all secrets\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/715b779a64cc17c0f7eae1b0e4b833b9f823e402.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/715b779a64cc17c0f7eae1b0e4b833b9f823e402.jpg\" alt=\"Halfway There\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Halfway There\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHalfway There\u003c/strong\u003e\u003cbr/\u003e\n    Restore 50% of all Map Stones\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/e8065b1dd0e14045e2f37765f1dcbd0f1f01719e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/e8065b1dd0e14045e2f37765f1dcbd0f1f01719e.jpg\" alt=\"World at Your Feet\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: World at Your Feet\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWorld at Your Feet\u003c/strong\u003e\u003cbr/\u003e\n    Restore all Map Stones\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/fe591c5c3dda530abf05b64eb46e6773e5d885fd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/fe591c5c3dda530abf05b64eb46e6773e5d885fd.jpg\" alt=\"Good Eye\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Good Eye\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGood Eye\u003c/strong\u003e\u003cbr/\u003e\n    Find the lost corridor in the Misty Woods\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/954f98302af23c3a14de1a1af88b6fe470a9536c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/954f98302af23c3a14de1a1af88b6fe470a9536c.jpg\" alt=\"Safe and Sound\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Safe and Sound\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSafe and Sound\u003c/strong\u003e\u003cbr/\u003e\n    Save at every Spirit Portal \n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/e9026a07b1fe7b00a20e30b4e119c1deb493b0ff.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/e9026a07b1fe7b00a20e30b4e119c1deb493b0ff.jpg\" alt=\"Master of the Forest \" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Master of the Forest\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaster of the Forest \u003c/strong\u003e\u003cbr/\u003e\n    Visit 100% of the map\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/6dc6c92be86489f9e1229bbb32e20429bcbe465a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/6dc6c92be86489f9e1229bbb32e20429bcbe465a.jpg\" alt=\"Power Player\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Power Player\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePower Player\u003c/strong\u003e\u003cbr/\u003e\n    Collect 200 Energy Shards\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/ade51bb3e2de6d4473a9eb36c0cf81948ff03980.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/ade51bb3e2de6d4473a9eb36c0cf81948ff03980.jpg\" alt=\"Soul Master\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Soul Master\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSoul Master\u003c/strong\u003e\u003cbr/\u003e\n    Earn all Efficiency Skills in the Ability Tree\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/2b6de11cc60502275afcea1ceab9ae4c9996c1bd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/2b6de11cc60502275afcea1ceab9ae4c9996c1bd.jpg\" alt=\"Utility Master\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Utility Master\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUtility Master\u003c/strong\u003e\u003cbr/\u003e\n    Earn all Utility Skills in the Ability Tree\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/333e449ece01106add0094b59cf2465fb6d226dc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/333e449ece01106add0094b59cf2465fb6d226dc.jpg\" alt=\"Combat Master\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Combat Master\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCombat Master\u003c/strong\u003e\u003cbr/\u003e\n    Earn all Combat Skills in the Ability Tree\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/67f56aa808cfaf833eae7a057e0a6749356f538f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/67f56aa808cfaf833eae7a057e0a6749356f538f.jpg\" alt=\"Phenom\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Phenom\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePhenom\u003c/strong\u003e\u003cbr/\u003e\n    Earn all skills in the Ability Tree\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/648dce50b9c2d0be9eb1854899f8d3dd9cecb654.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/648dce50b9c2d0be9eb1854899f8d3dd9cecb654.jpg\" alt=\"Powerhouse \" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Powerhouse\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePowerhouse \u003c/strong\u003e\u003cbr/\u003e\n    Collect all Energy Cells\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/589ae8050437f1118df599f1f2bc8747d47126a1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/589ae8050437f1118df599f1f2bc8747d47126a1.jpg\" alt=\"Master Guardian\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Master Guardian\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaster Guardian\u003c/strong\u003e\u003cbr/\u003e\n    Collect all Health Cells\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/7a6e9fb18c89ff26aba87b05485884265ce7ff81.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/7a6e9fb18c89ff26aba87b05485884265ce7ff81.jpg\" alt=\"Juggle Master\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Juggle Master\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJuggle Master\u003c/strong\u003e\u003cbr/\u003e\n    Juggle a rock 5 times without it hitting the ground\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/c1555301c9c2aa32796689c98a6f59a816e74fb4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/c1555301c9c2aa32796689c98a6f59a816e74fb4.jpg\" alt=\"Bash Master\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bash Master\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBash Master\u003c/strong\u003e\u003cbr/\u003e\n    Bash off enemies 10 times in a row without touching the ground\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/0f8a1ebb0321fdb25738f7d93b989e503c6013b1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/0f8a1ebb0321fdb25738f7d93b989e503c6013b1.jpg\" alt=\"Deadly Dodge\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Deadly Dodge\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDeadly Dodge\u003c/strong\u003e\u003cbr/\u003e\n    Trick 5 enemies into killing another enemy\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/56056a2e72c6ad7e7709af9f29a513e2d54231d6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/56056a2e72c6ad7e7709af9f29a513e2d54231d6.jpg\" alt=\"Flying Fury\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Flying Fury\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFlying Fury\u003c/strong\u003e\u003cbr/\u003e\n    Kill 3 enemies without touching the ground\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/8c0919ffedeb6412848bda499e86c7cbb44928c5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/8c0919ffedeb6412848bda499e86c7cbb44928c5.jpg\" alt=\"Self Destruction\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Self Destruction\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSelf Destruction\u003c/strong\u003e\u003cbr/\u003e\n    Cause an enemy to destroy itself\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/ef83d986380054db16a8653d8e071536380fffc5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/ef83d986380054db16a8653d8e071536380fffc5.jpg\" alt=\"Crushing Blow\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Crushing Blow\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCrushing Blow\u003c/strong\u003e\u003cbr/\u003e\n    Crush a Ram with a Stomper\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/e8fdf26296728ff064d1c52baea115b6dc25a1bf.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/e8fdf26296728ff064d1c52baea115b6dc25a1bf.jpg\" alt=\"Stomp Master\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Stomp Master\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStomp Master\u003c/strong\u003e\u003cbr/\u003e\n    Kill 50 enemies with Stomp\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/49310f856ed761d11f1bfeb71ca0e7be1cf20fd4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/49310f856ed761d11f1bfeb71ca0e7be1cf20fd4.jpg\" alt=\"Blast Master\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Blast Master\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlast Master\u003c/strong\u003e\u003cbr/\u003e\n    Kill 100 enemies with Charge Flame\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/efbc5605e904e5fcea5cfdeaa28ba9c90ef6803e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/efbc5605e904e5fcea5cfdeaa28ba9c90ef6803e.jpg\" alt=\"Flame Master\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Flame Master\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFlame Master\u003c/strong\u003e\u003cbr/\u003e\n    Kill 500 enemies with Spirit Flame\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/e7a0e3453a3276e311a07ff820a85f1b2b6e0d84.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/e7a0e3453a3276e311a07ff820a85f1b2b6e0d84.jpg\" alt=\"Supersonic \" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Supersonic\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSupersonic \u003c/strong\u003e\u003cbr/\u003e\n    Finish the game in under 3 hours\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/0c483b38fcac28e6e8a31a9fd87a83f32fabc849.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/0c483b38fcac28e6e8a31a9fd87a83f32fabc849.jpg\" alt=\"Airborne\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Airborne\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAirborne\u003c/strong\u003e\u003cbr/\u003e\n    Double Jump 5 times consecutively without touching the ground\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/eec327eed50203354eee556b4bf20372f0d3ead5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/eec327eed50203354eee556b4bf20372f0d3ead5.jpg\" alt=\"Immortal\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Immortal\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eImmortal\u003c/strong\u003e\u003cbr/\u003e\n    Complete whole game without dying\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/3f2d99edacacc35858c64c8d8282ad0ca9bdf8fb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/3f2d99edacacc35858c64c8d8282ad0ca9bdf8fb.jpg\" alt=\"Elite\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Elite\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eElite\u003c/strong\u003e\u003cbr/\u003e\n    Complete the whole game without using an Ability Point\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/52a74733be480eb7222905cbbbc0ffb3da56d5f1.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/52a74733be480eb7222905cbbbc0ffb3da56d5f1.jpg\" alt=\"Raider Run\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Raider Run\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRaider Run\u003c/strong\u003e\u003cbr/\u003e\n    Escape the Boulder in Black Root Burrows\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/065db5ac2f4346e294548a78f3e48e8f08a3974f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/065db5ac2f4346e294548a78f3e48e8f08a3974f.jpg\" alt=\"The Cycle\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Cycle\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Cycle\u003c/strong\u003e\u003cbr/\u003e\n    Uncover the mysteries of Naru\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/b419725c048950fa1740b60c387a278fa31dbb79.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/b419725c048950fa1740b60c387a278fa31dbb79.jpg\" alt=\"Lightning Fast\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Lightning Fast\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLightning Fast\u003c/strong\u003e\u003cbr/\u003e\n    Kill 5 enemies using Charge Dash\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/484a357310dff937c2f4168b4a39048be7c29e6e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/484a357310dff937c2f4168b4a39048be7c29e6e.jpg\" alt=\"Explosive Lobb\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Explosive Lobb\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExplosive Lobb\u003c/strong\u003e\u003cbr/\u003e\n    Activate 3 torches using Light Burst\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/bcf91a836778d8be477d5432b837b12a6b4d261c.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/bcf91a836778d8be477d5432b837b12a6b4d261c.jpg\" alt=\"Light Burst Master\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Light Burst Master\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLight Burst Master\u003c/strong\u003e\u003cbr/\u003e\n    Kill 50 enemies with Light Burst\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/562ba279aee826f9679567e285545f61b8d2003e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/562ba279aee826f9679567e285545f61b8d2003e.jpg\" alt=\"Formidable\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Formidable\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFormidable\u003c/strong\u003e\u003cbr/\u003e\n     Complete the game on Hard Difficulty\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/a1e2c267cdb439335dc0b5966404f08abe336de9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/a1e2c267cdb439335dc0b5966404f08abe336de9.jpg\" alt=\"Unhinged\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Unhinged\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUnhinged\u003c/strong\u003e\u003cbr/\u003e\n    Complete the game on One Life Difficulty\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/387290/library_600x900.jpg\" alt=\"sein box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/387290/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003esein\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 8.77%\"\u003e\n        8.77%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e5/57 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e8.8h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2022-08-03\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (5)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/f103d6772ae0d3f9eafda30e67176e7bdcb65ff7.jpg\" alt=\"The Journey Begins\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Journey Begins\u003c/strong\u003e\u003cbr\u003e\n    Complete the Prologue\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 12, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/6e0d165220b1b8af145f5e46380f710f1736b968.jpg\" alt=\"The Ancient Being \" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Ancient Being \u003c/strong\u003e\u003cbr\u003e\n    Meet the Ancient Being\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 20, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/5aa217085a5710bcbe15f407b1b44921e49d7cb3.jpg\" alt=\"Choices Choices\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChoices Choices\u003c/strong\u003e\u003cbr\u003e\n    Use your first ability point\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 12, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/e943e15ec619e11f6071ba238b14e41a0449db90.jpg\" alt=\"So Many Secrets\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSo Many Secrets\u003c/strong\u003e\u003cbr\u003e\n    Find your first secret\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 12, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/4bbf264374afc58e9198cb8a2f82ab3e908acb37.jpg\" alt=\"Marking the way\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMarking the way\u003c/strong\u003e\u003cbr\u003e\n    Restore your first Map Stone\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 14, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (52)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/6c0519550af73de408a1ac8dbbe039ceec4b6e6c.jpg\" alt=\"Get Back Here!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGet Back Here!\u003c/strong\u003e\u003cbr\u003e\n    Discover the character in the shadows\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/65266b65ae3df4373862c07b4785f6574191514b.jpg\" alt=\"Let's be Friends\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLet's be Friends\u003c/strong\u003e\u003cbr\u003e\n    Make an unexpected friend\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/14d8f9a2f4ebd526e58a902d9f13cc86dfa4ed7f.jpg\" alt=\"Rotten Inside\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRotten Inside\u003c/strong\u003e\u003cbr\u003e\n    Enter the Ginso Tree\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/ec6fa4e5f068e59344d61284aadac424f6b87d5b.jpg\" alt=\"Run for Your Life\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRun for Your Life\u003c/strong\u003e\u003cbr\u003e\n    Cleanse the Ginso Tree's Heart\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/5a1c98fcb2cbc97d3eea841ae865b36cf9fd4f0c.jpg\" alt=\"Close Call\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eClose Call\u003c/strong\u003e\u003cbr\u003e\n    Escape a dangerous situation  \n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/c3db5dd63b4d59389ba3cf324e1e1bc15ea13700.jpg\" alt=\"Obtaining Clarity\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eObtaining Clarity\u003c/strong\u003e\u003cbr\u003e\n    Clear the haze from the Misty Woods\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/ee3997289012712253ce1dfd1016245069f22e94.jpg\" alt=\"Solid Ground\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSolid Ground\u003c/strong\u003e\u003cbr\u003e\n    Restore the winds of Nibel\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/52ba54f787f1c98cf9ca5b3b1ba83b1c4cae7572.jpg\" alt=\"Fight to Live Another Day\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFight to Live Another Day\u003c/strong\u003e\u003cbr\u003e\n    Have a close encounter\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/29cd66b9d4e81a2728ffe611561c372a19200995.jpg\" alt=\"Top of the world\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTop of the world\u003c/strong\u003e\u003cbr\u003e\n    Climb to the top of Nibel\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/c721a74e9d75dd221de36a3a10891a2e08d54769.jpg\" alt=\"Into the Fire\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eInto the Fire\u003c/strong\u003e\u003cbr\u003e\n    Enter Mt. Horu\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/e68d40dd809fbdc2d64ce5360b93c465e8381e15.jpg\" alt=\"Rekindle\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRekindle\u003c/strong\u003e\u003cbr\u003e\n    Fan the flames\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/24ace0a54157a7e139de6eb4b9e6a779af322f8d.jpg\" alt=\"Love\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLove\u003c/strong\u003e\u003cbr\u003e\n    A beloved bond\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/207a2c4e22e931f8923abb55ac9a6d54e2e4c8d4.jpg\" alt=\"The Journey Ends\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Journey Ends\u003c/strong\u003e\u003cbr\u003e\n    Complete the game\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/64787f13dce60d231aed4c2a838d536a43947e52.jpg\" alt=\"Life Saver\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLife Saver\u003c/strong\u003e\u003cbr\u003e\n    Create 50 Soul Links\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/299eccdf2d29d9f838adc3f6b113105da6fb6b1a.jpg\" alt=\"Deadly Detonation\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDeadly Detonation\u003c/strong\u003e\u003cbr\u003e\n    Kill 4 enemies simultaneously using Charge Flame.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/786108f835cac477dcaddef0240ab9c446edc52c.jpg\" alt=\"Deadly Deflection\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDeadly Deflection\u003c/strong\u003e\u003cbr\u003e\n    Kill 25 enemies using Bash to reflect projectiles\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/666e9d24370a7893b8b47c6ffd6a78e4e92e75b3.jpg\" alt=\"A New Path\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA New Path\u003c/strong\u003e\u003cbr\u003e\n    Break open 5 shortcuts using the Charge Flame\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/e37d86b9b2881db80f421a9a58567f73061129c9.jpg\" alt=\"Deadly Dash\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDeadly Dash\u003c/strong\u003e\u003cbr\u003e\n    Kill 5 enemies with Charge Jump\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/dff290cc6f5079c7c7dcbacf5a3ae9550332d6ee.jpg\" alt=\"Seasoned Explorer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSeasoned Explorer\u003c/strong\u003e\u003cbr\u003e\n    Find 50% of all secrets\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/02296c35d0d76845db529fa89a546613c86bb7f9.jpg\" alt=\"No Stone Unturned\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNo Stone Unturned\u003c/strong\u003e\u003cbr\u003e\n    Find all secrets\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/715b779a64cc17c0f7eae1b0e4b833b9f823e402.jpg\" alt=\"Halfway There\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHalfway There\u003c/strong\u003e\u003cbr\u003e\n    Restore 50% of all Map Stones\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/e8065b1dd0e14045e2f37765f1dcbd0f1f01719e.jpg\" alt=\"World at Your Feet\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWorld at Your Feet\u003c/strong\u003e\u003cbr\u003e\n    Restore all Map Stones\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/fe591c5c3dda530abf05b64eb46e6773e5d885fd.jpg\" alt=\"Good Eye\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGood Eye\u003c/strong\u003e\u003cbr\u003e\n    Find the lost corridor in the Misty Woods\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/954f98302af23c3a14de1a1af88b6fe470a9536c.jpg\" alt=\"Safe and Sound\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSafe and Sound\u003c/strong\u003e\u003cbr\u003e\n    Save at every Spirit Portal \n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/e9026a07b1fe7b00a20e30b4e119c1deb493b0ff.jpg\" alt=\"Master of the Forest \" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaster of the Forest \u003c/strong\u003e\u003cbr\u003e\n    Visit 100% of the map\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/6dc6c92be86489f9e1229bbb32e20429bcbe465a.jpg\" alt=\"Power Player\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePower Player\u003c/strong\u003e\u003cbr\u003e\n    Collect 200 Energy Shards\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/ade51bb3e2de6d4473a9eb36c0cf81948ff03980.jpg\" alt=\"Soul Master\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSoul Master\u003c/strong\u003e\u003cbr\u003e\n    Earn all Efficiency Skills in the Ability Tree\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/2b6de11cc60502275afcea1ceab9ae4c9996c1bd.jpg\" alt=\"Utility Master\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUtility Master\u003c/strong\u003e\u003cbr\u003e\n    Earn all Utility Skills in the Ability Tree\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/333e449ece01106add0094b59cf2465fb6d226dc.jpg\" alt=\"Combat Master\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCombat Master\u003c/strong\u003e\u003cbr\u003e\n    Earn all Combat Skills in the Ability Tree\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/67f56aa808cfaf833eae7a057e0a6749356f538f.jpg\" alt=\"Phenom\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePhenom\u003c/strong\u003e\u003cbr\u003e\n    Earn all skills in the Ability Tree\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/648dce50b9c2d0be9eb1854899f8d3dd9cecb654.jpg\" alt=\"Powerhouse \" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePowerhouse \u003c/strong\u003e\u003cbr\u003e\n    Collect all Energy Cells\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/589ae8050437f1118df599f1f2bc8747d47126a1.jpg\" alt=\"Master Guardian\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaster Guardian\u003c/strong\u003e\u003cbr\u003e\n    Collect all Health Cells\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/7a6e9fb18c89ff26aba87b05485884265ce7ff81.jpg\" alt=\"Juggle Master\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJuggle Master\u003c/strong\u003e\u003cbr\u003e\n    Juggle a rock 5 times without it hitting the ground\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/c1555301c9c2aa32796689c98a6f59a816e74fb4.jpg\" alt=\"Bash Master\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBash Master\u003c/strong\u003e\u003cbr\u003e\n    Bash off enemies 10 times in a row without touching the ground\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/0f8a1ebb0321fdb25738f7d93b989e503c6013b1.jpg\" alt=\"Deadly Dodge\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDeadly Dodge\u003c/strong\u003e\u003cbr\u003e\n    Trick 5 enemies into killing another enemy\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/56056a2e72c6ad7e7709af9f29a513e2d54231d6.jpg\" alt=\"Flying Fury\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFlying Fury\u003c/strong\u003e\u003cbr\u003e\n    Kill 3 enemies without touching the ground\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/8c0919ffedeb6412848bda499e86c7cbb44928c5.jpg\" alt=\"Self Destruction\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSelf Destruction\u003c/strong\u003e\u003cbr\u003e\n    Cause an enemy to destroy itself\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/ef83d986380054db16a8653d8e071536380fffc5.jpg\" alt=\"Crushing Blow\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCrushing Blow\u003c/strong\u003e\u003cbr\u003e\n    Crush a Ram with a Stomper\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/e8fdf26296728ff064d1c52baea115b6dc25a1bf.jpg\" alt=\"Stomp Master\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStomp Master\u003c/strong\u003e\u003cbr\u003e\n    Kill 50 enemies with Stomp\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/49310f856ed761d11f1bfeb71ca0e7be1cf20fd4.jpg\" alt=\"Blast Master\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlast Master\u003c/strong\u003e\u003cbr\u003e\n    Kill 100 enemies with Charge Flame\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/efbc5605e904e5fcea5cfdeaa28ba9c90ef6803e.jpg\" alt=\"Flame Master\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFlame Master\u003c/strong\u003e\u003cbr\u003e\n    Kill 500 enemies with Spirit Flame\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/e7a0e3453a3276e311a07ff820a85f1b2b6e0d84.jpg\" alt=\"Supersonic \" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSupersonic \u003c/strong\u003e\u003cbr\u003e\n    Finish the game in under 3 hours\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/0c483b38fcac28e6e8a31a9fd87a83f32fabc849.jpg\" alt=\"Airborne\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAirborne\u003c/strong\u003e\u003cbr\u003e\n    Double Jump 5 times consecutively without touching the ground\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/eec327eed50203354eee556b4bf20372f0d3ead5.jpg\" alt=\"Immortal\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eImmortal\u003c/strong\u003e\u003cbr\u003e\n    Complete whole game without dying\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/3f2d99edacacc35858c64c8d8282ad0ca9bdf8fb.jpg\" alt=\"Elite\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eElite\u003c/strong\u003e\u003cbr\u003e\n    Complete the whole game without using an Ability Point\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/52a74733be480eb7222905cbbbc0ffb3da56d5f1.jpg\" alt=\"Raider Run\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRaider Run\u003c/strong\u003e\u003cbr\u003e\n    Escape the Boulder in Black Root Burrows\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/065db5ac2f4346e294548a78f3e48e8f08a3974f.jpg\" alt=\"The Cycle\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Cycle\u003c/strong\u003e\u003cbr\u003e\n    Uncover the mysteries of Naru\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/b419725c048950fa1740b60c387a278fa31dbb79.jpg\" alt=\"Lightning Fast\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLightning Fast\u003c/strong\u003e\u003cbr\u003e\n    Kill 5 enemies using Charge Dash\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/484a357310dff937c2f4168b4a39048be7c29e6e.jpg\" alt=\"Explosive Lobb\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eExplosive Lobb\u003c/strong\u003e\u003cbr\u003e\n    Activate 3 torches using Light Burst\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/bcf91a836778d8be477d5432b837b12a6b4d261c.jpg\" alt=\"Light Burst Master\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLight Burst Master\u003c/strong\u003e\u003cbr\u003e\n    Kill 50 enemies with Light Burst\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/562ba279aee826f9679567e285545f61b8d2003e.jpg\" alt=\"Formidable\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFormidable\u003c/strong\u003e\u003cbr\u003e\n     Complete the game on Hard Difficulty\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/387290/a1e2c267cdb439335dc0b5966404f08abe336de9.jpg\" alt=\"Unhinged\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUnhinged\u003c/strong\u003e\u003cbr\u003e\n    Complete the game on One Life Difficulty\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for sein - 8.77% complete with 5/57 achievements unlocked.",
      "date_published": "2022-08-03T00:00:00Z",
      "date_modified": "2022-08-03T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "sein"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/building-with-3-11-dev/",
      "url": "https://go.waylonwalker.com/building-with-3-11-dev/",
      "title": "Running My Blog on 3.11-dev",
      "content_html": "\u003cp\u003e3.10.5: 109.441\n3.11-dev: 108.856\u003c/p\u003e\n",
      "content_text": "\n3.10.5: 109.441\n3.11-dev: 108.856\n",
      "summary": "3.10.5: 109.441 3.11-dev: 108.856",
      "date_published": "2022-07-29T16:33:06Z",
      "date_modified": "2022-07-29T16:33:06Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/arch-fonts/",
      "url": "https://go.waylonwalker.com/arch-fonts/",
      "title": "arch Fonts",
      "content_html": "\u003cp\u003e\u003ca href=\"https://gist.github.com/YoEight/d19112db56cd8f93835bf2d009d617f7\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/gist.github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/gist.github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://gist.github.com/YoEight/d19112db56cd8f93835bf2d009d617f7\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\nhttps://gist.github.com/YoEight/d19112db56cd8f93835bf2d009d617f7\n",
      "summary": "https://gist.github.com/YoEight/d19112db56cd8f93835bf2d009d617f7",
      "date_published": "2022-07-17T10:59:59Z",
      "date_modified": "2022-07-17T10:59:59Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/xrandr-manager/",
      "url": "https://go.waylonwalker.com/xrandr-manager/",
      "title": "Manage your displays with xrandr manager",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://images.waylonwalker.com/9cd8d65495366b8d57d805ca0faf5fd5.webp\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://images.waylonwalker.com/9cd8d65495366b8d57d805ca0faf5fd5.webp\" alt=\"a stable diffusion done with a111 web ui\"/ data-glightbox=\"description: a stable diffusion done with a111 web ui\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003exrandr is a great cli to manage your windows in a linux distro using x11, which\nis most of them. The issue is that I can never remember all the flags to the\ncommand, and if you are using it with something like a laptop using a dock the\nnames of all the displays tend to change every time you redock. This makes it\nreally hard to make scripts that work right every time.\u003c/p\u003e\n\u003ch2 id=\"homepage\"\u003eHomepage \u003ca href=\"#homepage\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eCheck out the\n\u003ca href=\"https://github.com/deresmos/xrandr-manager\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ederesmos/xrandr-manager\u003c/a\u003e for more\ndetails on it.\u003c/p\u003e\n\u003ch2 id=\"installation\"\u003einstallation \u003ca href=\"#installation\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003exrander-manager is a python cli application that is simply a nice interface\ninto xrandr. So you must have xrandr already installed, which is generally\njust there on any x11 window manager, I’ve never had to install it.\u003c/p\u003e\n\u003cp\u003eAs with any python cli that is indended to be used as a global/system level cli\napplication I always install them with pipx. This automates the process of\ncreating a \u003ca href=\"/virtual-environment/\" class=\"glossary-term\" title=\"Virtual Environment is term for a sandboxed environment commonly associated with the python programming language. If you are installing any sort of python...\"\u003evirtual environment\u003c/a\u003e for xrandr-manager for me, and does not clutter\nup my system packages with its dependencies that may eventually clash with\nanother that I want to use.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e# prereqs (xrandr, pipx)\npipx install xrandr-manager\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2 id=\"set-main-monitor\"\u003eset main monitor \u003ca href=\"#set-main-monitor\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eFirst if your main display is not set to the correct monitor set your main\ndisplay first.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003exrandr-manager -m HDMI-0\nxrandr-manager -m DP-0\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2 id=\"prompt-mode\"\u003eprompt mode \u003ca href=\"#prompt-mode\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIf you dont know the name of your monitors and and don’t want to dig through\nxrandr, you can just run \u003ccode\u003e--prompt\u003c/code\u003e and tab complete to fill set your main\ndisplay.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003exrandr-manager --prompt\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2 id=\"direction\"\u003edirection \u003ca href=\"#direction\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis is what I most often use xrandr-manager for. Once you have the main\ndisplay set you can tell it where to put the other monitor. I’ve only tried\nthis with two monitors, I have no idea what happens with more monitors.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003exrandr-manager -d right\nxrandr-manager -d left\nxrandr-manager -d above\nxrandr-manager -d below\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2 id=\"mirror\"\u003emirror \u003ca href=\"#mirror\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eOne thing that I always need to jump through hoops to do is mirror.\nOccasionally I want to mirror so that more people can see the screen while we\nare split screen gaming. This has seemed like a pain in any other xrandr\nutility, but trivial in xrandr-manager.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003exrandr-manager --mirror\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2 id=\"it-logs-out-the-xrandr-command\"\u003eIt logs out the xrandr command \u003ca href=\"#it-logs-out-the-xrandr-command\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eOne nice thing about xrandr-manager is that it echos out the xrandr command\nthat it’s running. This is nice because you can toss this behind a hotkey or an\ninit script.\u003c/p\u003e\n\u003ch2 id=\"guis\"\u003eGuis \u003ca href=\"#guis\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eYa there are guis that do this. I’ve had good luck with arandr. It’s more\nintuitive to drag windows around like what you would do in windows. Every once\nin awhile it messes up and my polybar overlaps my windows, or my windows end up\nonly on half the screen.\u003c/p\u003e\n\u003cp\u003eThere are also graphics card specific utilities, Ive used nvidia x server\nsettings and it mostly works similar to arandr.\u003c/p\u003e\n",
      "content_text": "\n![a stable diffusion done with a111 web ui](https://images.waylonwalker.com/9cd8d65495366b8d57d805ca0faf5fd5.webp)\n\nxrandr is a great cli to manage your windows in a linux distro using x11, which\nis most of them. The issue is that I can never remember all the flags to the\ncommand, and if you are using it with something like a laptop using a dock the\nnames of all the displays tend to change every time you redock. This makes it\nreally hard to make scripts that work right every time.\n\n## Homepage\n\nCheck out the\n[deresmos/xrandr-manager](https://github.com/deresmos/xrandr-manager) for more\ndetails on it.\n\n## installation\n\nxrander-manager is a python cli application that is simply a nice interface\ninto xrandr. So you must have xrandr already installed, which is generally\njust there on any x11 window manager, I've never had to install it.\n\nAs with any python cli that is indended to be used as a global/system level cli\napplication I always install them with pipx. This automates the process of\ncreating a virtual environment for xrandr-manager for me, and does not clutter\nup my system packages with its dependencies that may eventually clash with\nanother that I want to use.\n\n```\n# prereqs (xrandr, pipx)\npipx install xrandr-manager\n```\n\n## set main monitor\n\nFirst if your main display is not set to the correct monitor set your main\ndisplay first.\n\n```\nxrandr-manager -m HDMI-0\nxrandr-manager -m DP-0\n```\n\n## prompt mode\n\nIf you dont know the name of your monitors and and don't want to dig through\nxrandr, you can just run `--prompt` and tab complete to fill set your main\ndisplay.\n\n```\nxrandr-manager --prompt\n```\n\n## direction\n\nThis is what I most often use xrandr-manager for. Once you have the main\ndisplay set you can tell it where to put the other monitor. I've only tried\nthis with two monitors, I have no idea what happens with more monitors.\n\n```\nxrandr-manager -d right\nxrandr-manager -d left\nxrandr-manager -d above\nxrandr-manager -d below\n```\n\n## mirror\n\nOne thing that I always need to jump through hoops to do is mirror.\nOccasionally I want to mirror so that more people can see the screen while we\nare split screen gaming. This has seemed like a pain in any other xrandr\nutility, but trivial in xrandr-manager.\n\n```\nxrandr-manager --mirror\n```\n\n## It logs out the xrandr command\n\nOne nice thing about xrandr-manager is that it echos out the xrandr command\nthat it's running. This is nice because you can toss this behind a hotkey or an\ninit script.\n\n## Guis\n\nYa there are guis that do this. I've had good luck with arandr. It's more\nintuitive to drag windows around like what you would do in windows. Every once\nin awhile it messes up and my polybar overlaps my windows, or my windows end up\nonly on half the screen.\n\nThere are also graphics card specific utilities, Ive used nvidia x server\nsettings and it mostly works similar to arandr.\n",
      "summary": "xrandr is a great cli to manage your windows in a linux distro using x11, which is most of them. The issue is that I can never remember all the flags to the...",
      "date_published": "2022-07-16T08:43:17Z",
      "date_modified": "2022-07-16T08:43:17Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "linux"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/ijq/",
      "url": "https://go.waylonwalker.com/ijq/",
      "title": "Get better at jq interactively | ijq",
      "content_html": "\u003cp\u003e\u003ccode\u003ejq\u003c/code\u003e has some syntax that will sneak up on you with complexity. It looks so good,\nand so understandable, but everytime I go to use it myself, I don’t get it.\n\u003ccode\u003eijq\u003c/code\u003e is an interactive alternative to \u003ccode\u003ejq\u003c/code\u003e that gives you and nice repl that you\ncan iterate on queries quickly.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eparu -Syu ijq\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eHere are some other articles, I decided to link at the time of writing this article.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/jut/\" class=\"wikilink\" data-title=\"JUT | Read Notebooks in the Terminal\" data-description=\"Trying to read a .ipynb file without starting a jupyter server? jut has you covered.\" data-date=\"2021-11-20\" data-preview=\"Trying to read a .ipynb file without starting a jupyter server? jut has you covered.\"\u003eJUT | Read Notebooks in the Terminal\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/kedro-node/\" class=\"wikilink\" data-title=\"Comprehensive guide to creating kedro nodes\" data-description=\"The Kedro node is an essential part of the pipeline. It defines what catalog entries get passed in, what function gets ran, and the catalog entry to save the...\" data-date=\"2021-06-03\" data-preview=\"The Kedro node is an essential part of the pipeline. It defines what catalog entries get passed in, what function gets ran, and the catalog entry to save the...\"\u003eComprehensive guide to creating kedro nodes\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/kedro-pickle/\" class=\"wikilink\" data-title=\"Kedro - My Data Is Not A Table\" data-description=\"In python data science/engineering most of our data is in the form of some sort of table, typically a DataFrame from a library like pandas, spark, or dask.\" data-date=\"2021-01-14\" data-preview=\"In python data science/engineering most of our data is in the form of some sort of table, typically a DataFrame from a library like pandas, spark, or dask.\"\u003eKedro - My Data Is Not A Table\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\n`jq` has some syntax that will sneak up on you with complexity. It looks so good,\nand so understandable, but everytime I go to use it myself, I don't get it.\n`ijq` is an interactive alternative to `jq` that gives you and nice repl that you\ncan iterate on queries quickly.\n\n```bash\nparu -Syu ijq\n```\n\nHere are some other articles, I decided to link at the time of writing this article.\n\n\u003ca href=\"/jut/\" class=\"wikilink\" data-title=\"JUT | Read Notebooks in the Terminal\" data-description=\"Trying to read a .ipynb file without starting a jupyter server? jut has you covered.\" data-date=\"2021-11-20\"\u003eJUT | Read Notebooks in the Terminal\u003c/a\u003e\n\n\u003ca href=\"/kedro-node/\" class=\"wikilink\" data-title=\"Comprehensive guide to creating kedro nodes\" data-description=\"The Kedro node is an essential part of the pipeline. It defines what catalog entries get passed in, what function gets ran, and the catalog entry to save the...\" data-date=\"2021-06-03\"\u003eComprehensive guide to creating kedro nodes\u003c/a\u003e\n\n\u003ca href=\"/kedro-pickle/\" class=\"wikilink\" data-title=\"Kedro - My Data Is Not A Table\" data-description=\"In python data science/engineering most of our data is in the form of some sort of table, typically a DataFrame from a library like pandas, spark, or dask.\" data-date=\"2021-01-14\"\u003eKedro - My Data Is Not A Table\u003c/a\u003e\n",
      "summary": "has some syntax that will sneak up on you with complexity. It looks so good, and so understandable, but everytime I go to use it myself, I don't get it. is...",
      "date_published": "2022-07-15T21:09:35Z",
      "date_modified": "2022-07-15T21:09:35Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "cli"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/gh-repo-create/",
      "url": "https://go.waylonwalker.com/gh-repo-create/",
      "title": "gh repo create",
      "content_html": "\u003cp\u003eI love getting faster in my workflow, something I have recently added in is\ncreating GitHub repos with the cli.  I often create little examples of\nprojects, but they just end up on my machine and not anywhere that someone else\ncan see, mostly because it takes more effort to go create a repo.  TIL you can\ncreate a repo right from the command line and push to it immediately.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egh repo create waylonwalker-cli\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/3a889b2a-d83f-4f42-a849-1c34b8e6365c.webp\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/3a889b2a-d83f-4f42-a849-1c34b8e6365c.webp\" alt=\"gh-repo-create.webp\"/ data-glightbox=\"description: gh-repo-create.webp\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"want-to-see-what-this-repo-i-created-is-about\"\u003ewant to see what this repo I created is about? \u003ca href=\"#want-to-see-what-this-repo-i-created-is-about\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eCheck out what I created here.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epipx run waylonwalker\n\u003c/code\u003e\u003c/pre\u003e\n",
      "content_text": "\nI love getting faster in my workflow, something I have recently added in is\ncreating GitHub repos with the cli.  I often create little examples of\nprojects, but they just end up on my machine and not anywhere that someone else\ncan see, mostly because it takes more effort to go create a repo.  TIL you can\ncreate a repo right from the command line and push to it immediately.\n\n``` bash\ngh repo create waylonwalker-cli\n```\n\n![gh-repo-create.webp](https://dropper.waylonwalker.com/api/file/3a889b2a-d83f-4f42-a849-1c34b8e6365c.webp)\n\n## want to see what this repo I created is about?\n\nCheck out what I created here.\n\n```\npipx run waylonwalker\n```\n",
      "summary": "I love getting faster in my workflow, something I have recently added in is creating GitHub repos with the cli. I often create little examples of projects,...",
      "date_published": "2022-06-10T11:53:32Z",
      "date_modified": "2022-06-10T11:53:32Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "git"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/python-atexit/",
      "url": "https://go.waylonwalker.com/python-atexit/",
      "title": "Python atexit",
      "content_html": "\u003cblockquote\u003e\n\u003cp\u003etotally guessed at this post’s date\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eI’m still trying to understand this one, but this is how you force a\npython object to stop atexit.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003eatexit\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eclass\u003c/span\u003e \u003cspan class=\"nc\"\u003eServer\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"fm\"\u003e__init__\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003eauto_restart\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"nb\"\u003ebool\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"kc\"\u003eTrue\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003edirectory\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003eUnion\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nb\"\u003estr\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Path\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003eport\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"nb\"\u003eint\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"mi\"\u003e8000\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"n\"\u003edirectory\u003c/span\u003e \u003cspan class=\"ow\"\u003eis\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003emarkata\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eMarkata\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003em\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eMarkata\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003edirectory\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003em\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003econfig\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;output_dir\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003edirectory\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003edirectory\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eport\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003efind_port\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eport\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003eport\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003estart_server\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003eatexit\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eregister\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ekill\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003estart_server\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003esubprocess\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ecmd\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"s2\"\u003e\u0026#34;python\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"s2\"\u003e\u0026#34;-m\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"s2\"\u003e\u0026#34;http.server\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"nb\"\u003estr\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eport\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"s2\"\u003e\u0026#34;--directory\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003edirectory\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eproc\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003esubprocess\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ePopen\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ecmd\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003estderr\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003esubprocess\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ePIPE\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003estdout\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003esubprocess\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ePIPE\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003estart_time\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003etime\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003etime\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003ekill\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eauto_restart\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"kc\"\u003eFalse\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eproc\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ekill\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003e__rich__\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003ePanel\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"ow\"\u003enot\u003c/span\u003e \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eproc\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003epoll\u003c/span\u003e\u003cspan class=\"p\"\u003e():\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"n\"\u003ePanel\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;[green]serving on port: [gold1]\u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eport\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e [green]using pid: [gold1]\u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eproc\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003epid\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e [green]uptime: [gold1]\u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003euptime\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e [green]link: [gold1] http://localhost:\u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eport\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e[/]\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"n\"\u003eborder_style\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;blue\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"n\"\u003etitle\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;server\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003eelse\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eauto_restart\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003estart_server\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"n\"\u003ePanel\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;[red]server died\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003etitle\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;server\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eborder_style\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;red\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n\u003e totally guessed at this post's date\n\nI'm still trying to understand this one, but this is how you force a\npython object to stop atexit.\n\n```python\nimport atexit\n\nclass Server:\n    def __init__(\n        self,\n        auto_restart: bool = True,\n        directory: Union[str, \"Path\"] = None,\n        port: int = 8000,\n    ):\n        if directory is None:\n            from markata import Markata\n\n            m = Markata()\n            directory = m.config[\"output_dir\"]\n\n        self.directory = directory\n        self.port = find_port(port=port)\n        self.start_server()\n        atexit.register(self.kill)\n\n    def start_server(self):\n        import subprocess\n\n        self.cmd = [\n            \"python\",\n            \"-m\",\n            \"http.server\",\n            str(self.port),\n            \"--directory\",\n            self.directory,\n        ]\n\n        self.proc = subprocess.Popen(\n            self.cmd,\n            stderr=subprocess.PIPE,\n            stdout=subprocess.PIPE,\n        )\n        self.start_time = time.time()\n\n\n    def kill(self):\n        self.auto_restart = False\n        self.proc.kill()\n\n    def __rich__(self) -\u003e Panel:\n        if not self.proc.poll():\n            return Panel(\n                f\"[green]serving on port: [gold1]{self.port} [green]using pid: [gold1]{self.proc.pid} [green]uptime: [gold1]{self.uptime} [green]link: [gold1] http://localhost:{self.port}[/]\",\n                border_style=\"blue\",\n                title=\"server\",\n            )\n\n        else:\n            if self.auto_restart:\n                self.start_server()\n\n            return Panel(f\"[red]server died\", title=\"server\", border_style=\"red\")\n```\n",
      "summary": "totally guessed at this post's date",
      "date_published": "2022-06-02T23:45:55Z",
      "date_modified": "2022-06-02T23:45:55Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/portal/",
      "url": "https://go.waylonwalker.com/steam/portal/",
      "title": "Portal",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/400/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/400/library_600x900.jpg\" alt=\"Portal box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/400/header.jpg\u0026#39;\"/ data-glightbox=\"description: Portal box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003ePortal\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 26.67%\"\u003e\n        26.67%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e4/15 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e19.7h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2022-06-02\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (4)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/portal_getportalguns.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/portal_getportalguns.jpg\" alt=\"Lab Rat\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Lab Rat\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLab Rat\u003c/strong\u003e\u003cbr/\u003e\n    Acquire the fully powered Aperture Science Handheld Portal Device.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 16, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/portal_kill_companioncube.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/portal_kill_companioncube.jpg\" alt=\"Fratricide\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fratricide\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFratricide\u003c/strong\u003e\u003cbr/\u003e\n    Do whatever it takes to survive.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 26, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/portal_escape_testchambers.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/portal_escape_testchambers.jpg\" alt=\"Partygoer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Partygoer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePartygoer\u003c/strong\u003e\u003cbr/\u003e\n    Make the correct party escort submission position decision.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: May 31, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/portal_hit_turret_with_turret.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/portal_hit_turret_with_turret.jpg\" alt=\"Friendly Fire\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Friendly Fire\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFriendly Fire\u003c/strong\u003e\u003cbr/\u003e\n    Knock down a turret with another turret.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: March 26, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (11)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/portal_beat_game_bw.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/portal_beat_game_bw.jpg\" alt=\"Heartbreaker\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Heartbreaker\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHeartbreaker\u003c/strong\u003e\u003cbr/\u003e\n    Complete Portal.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/portal_infinitefall_bw.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/portal_infinitefall_bw.jpg\" alt=\"Terminal Velocity\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Terminal Velocity\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTerminal Velocity\u003c/strong\u003e\u003cbr/\u003e\n    Fall 30,000 feet.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/portal_longjump_bw.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/portal_longjump_bw.jpg\" alt=\"Long Jump\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Long Jump\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLong Jump\u003c/strong\u003e\u003cbr/\u003e\n    Jump 300 feet.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/portal_beat_2advancedmaps_bw.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/portal_beat_2advancedmaps_bw.jpg\" alt=\"Cupcake\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cupcake\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCupcake\u003c/strong\u003e\u003cbr/\u003e\n    Beat two Portal advanced maps.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/portal_beat_4advancedmaps_bw.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/portal_beat_4advancedmaps_bw.jpg\" alt=\"Fruitcake\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fruitcake\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFruitcake\u003c/strong\u003e\u003cbr/\u003e\n    Beat four Portal advanced maps.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/portal_beat_6advancedmaps_bw.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/portal_beat_6advancedmaps_bw.jpg\" alt=\"Vanilla Crazy Cake\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Vanilla Crazy Cake\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVanilla Crazy Cake\u003c/strong\u003e\u003cbr/\u003e\n    Beat all six Portal advanced maps.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/portal_get_allbronze_bw.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/portal_get_allbronze_bw.jpg\" alt=\"Basic Science\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Basic Science\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBasic Science\u003c/strong\u003e\u003cbr/\u003e\n    Earn bronze medals on all Portal challenges.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/portal_get_allsilver_bw.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/portal_get_allsilver_bw.jpg\" alt=\"Rocket Science\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Rocket Science\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRocket Science\u003c/strong\u003e\u003cbr/\u003e\n    Earn silver medals on all Portal challenges.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/portal_get_allgold_bw.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/portal_get_allgold_bw.jpg\" alt=\"Aperture Science\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Aperture Science\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAperture Science\u003c/strong\u003e\u003cbr/\u003e\n    Earn gold medals on all Portal challenges.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/portal_detach_all_cameras_bw.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/portal_detach_all_cameras_bw.jpg\" alt=\"Camera Shy\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Camera Shy\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCamera Shy\u003c/strong\u003e\u003cbr/\u003e\n    Detach security cameras from the walls.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/d3a7fbca2549d043955d33cb5eaf30259dcf41ac.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/d3a7fbca2549d043955d33cb5eaf30259dcf41ac.jpg\" alt=\"Transmission Received\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Transmission Received\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTransmission Received\u003c/strong\u003e\u003cbr/\u003e\n    ..?\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/400/library_600x900.jpg\" alt=\"Portal box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/400/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003ePortal\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 26.67%\"\u003e\n        26.67%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e4/15 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e19.7h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2022-06-02\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (4)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/portal_getportalguns.jpg\" alt=\"Lab Rat\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLab Rat\u003c/strong\u003e\u003cbr\u003e\n    Acquire the fully powered Aperture Science Handheld Portal Device.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 16, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/portal_kill_companioncube.jpg\" alt=\"Fratricide\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFratricide\u003c/strong\u003e\u003cbr\u003e\n    Do whatever it takes to survive.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 26, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/portal_escape_testchambers.jpg\" alt=\"Partygoer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePartygoer\u003c/strong\u003e\u003cbr\u003e\n    Make the correct party escort submission position decision.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: May 31, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/portal_hit_turret_with_turret.jpg\" alt=\"Friendly Fire\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFriendly Fire\u003c/strong\u003e\u003cbr\u003e\n    Knock down a turret with another turret.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: March 26, 2022\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (11)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/portal_beat_game_bw.jpg\" alt=\"Heartbreaker\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHeartbreaker\u003c/strong\u003e\u003cbr\u003e\n    Complete Portal.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/portal_infinitefall_bw.jpg\" alt=\"Terminal Velocity\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTerminal Velocity\u003c/strong\u003e\u003cbr\u003e\n    Fall 30,000 feet.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/portal_longjump_bw.jpg\" alt=\"Long Jump\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLong Jump\u003c/strong\u003e\u003cbr\u003e\n    Jump 300 feet.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/portal_beat_2advancedmaps_bw.jpg\" alt=\"Cupcake\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCupcake\u003c/strong\u003e\u003cbr\u003e\n    Beat two Portal advanced maps.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/portal_beat_4advancedmaps_bw.jpg\" alt=\"Fruitcake\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFruitcake\u003c/strong\u003e\u003cbr\u003e\n    Beat four Portal advanced maps.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/portal_beat_6advancedmaps_bw.jpg\" alt=\"Vanilla Crazy Cake\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eVanilla Crazy Cake\u003c/strong\u003e\u003cbr\u003e\n    Beat all six Portal advanced maps.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/portal_get_allbronze_bw.jpg\" alt=\"Basic Science\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBasic Science\u003c/strong\u003e\u003cbr\u003e\n    Earn bronze medals on all Portal challenges.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/portal_get_allsilver_bw.jpg\" alt=\"Rocket Science\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRocket Science\u003c/strong\u003e\u003cbr\u003e\n    Earn silver medals on all Portal challenges.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/portal_get_allgold_bw.jpg\" alt=\"Aperture Science\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAperture Science\u003c/strong\u003e\u003cbr\u003e\n    Earn gold medals on all Portal challenges.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/portal_detach_all_cameras_bw.jpg\" alt=\"Camera Shy\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCamera Shy\u003c/strong\u003e\u003cbr\u003e\n    Detach security cameras from the walls.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/400/d3a7fbca2549d043955d33cb5eaf30259dcf41ac.jpg\" alt=\"Transmission Received\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTransmission Received\u003c/strong\u003e\u003cbr\u003e\n    ..?\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Portal - 26.67% complete with 4/15 achievements unlocked.",
      "date_published": "2022-06-02T00:00:00Z",
      "date_modified": "2022-06-02T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "portal"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/pip-require-virtualenv/",
      "url": "https://go.waylonwalker.com/pip-require-virtualenv/",
      "title": "The one pip config you need to have",
      "content_html": "\u003cp\u003eWhenever you are installing python packages, you should always use a virtual\nenvironment.  pip makes this easy to follow by adding some configuration to\npip.\u003c/p\u003e\n\u003ch2 id=\"require-virtualenv\"\u003erequire-virtualenv \u003ca href=\"#require-virtualenv\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003ePip is the pacakage tool for python.  It installs third-party packages and is\nconfigurable.  One of the configuration settings that I highly reccommend\neveryone to add is \u003ccode\u003erequire-virtualenv\u003c/code\u003e.  This will stop pip from installing\nany packages if you have not activated a virtualenv.\u003c/p\u003e\n\u003ch2 id=\"why\"\u003ewhy \u003ca href=\"#why\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003epython packages often require many different dependencies, sometimes packages\nare up to date and sometimes they require different versions of dependencies.\nIf you install everything in one environment its easy to end up with version\nconflict issues that are really hard to resolve, especially since your system\nenvironment cannot easily be restarted.\u003c/p\u003e\n\u003ch2 id=\"pipx-my-one-exception\"\u003ePIPX my one exception \u003ca href=\"#pipx-my-one-exception\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eMy one exception that I put in my system level packages is \u003ccode\u003epipx\u003c/code\u003e.  \u003ccode\u003epipx\u003c/code\u003e is\nvery handy as it manages virtual environments for you and is intended for\ncommand line utilities that would end up in your system env or require you to\nmanually manage virtual environments without it.\u003c/p\u003e\n\u003ch2 id=\"pip-config\"\u003epip config \u003ca href=\"#pip-config\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eYour pip config might be found in either \u003ccode\u003e~/.pip/pip.conf\u003c/code\u003e or\n\u003ccode\u003e~/.config/pip/pip.conf\u003c/code\u003e.  You can either use the \u003ccode\u003epip config set\u003c/code\u003e command or\nedit one of these files manually.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epip config \u003cspan class=\"nb\"\u003eset\u003c/span\u003e global.require-virtualenv True\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eNow you sould see this in your \u003ccode\u003e~/.config/pip/pip.conf\u003c/code\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nx\"\u003eglobal\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003erequire-virtualenv\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"nx\"\u003eTrue\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"pip-config-debug\"\u003epip config debug \u003ca href=\"#pip-config-debug\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIf you want to know where pip is looking for configuration on your system, and\nwhat files are setting a certain config you can use \u003ccode\u003epip config debug\u003c/code\u003e to find\nit.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ pip config debug\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eenv_var:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eenv:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eglobal:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  /etc/xdg/xdg-awesome/pip/pip.conf, exists: False\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  /etc/xdg/pip/pip.conf, exists: False\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  /etc/pip.conf, exists: False\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esite:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  /home/waylon/git/waylonwalker.com/.venv/pip.conf, exists: False\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euser:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  /home/waylon/.pip/pip.conf, exists: False\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  /home/waylon/.config/pip/pip.conf, exists: True\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    global.require-virtualenv: True\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"saved-my-bacon\"\u003esaved my bacon \u003ca href=\"#saved-my-bacon\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis setting recently saved me when I modified my \u003ccode\u003e.envrc\u003c/code\u003e file my virtual\nenvironment deactivated, so when I went to pip install something it gave me an\nerror that it was not active.  Situations like this are an easy way to pollute\nyour system with packages that it does not need installed.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/fdb3d2bc-fd70-4b5b-acaa-aedc91c528b0.webp\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/fdb3d2bc-fd70-4b5b-acaa-aedc91c528b0.webp\" alt=\"pip-require-virtualenv-direnv-error.webp\"/ data-glightbox=\"description: pip-require-virtualenv-direnv-error.webp\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"tldr\"\u003eTLDR \u003ca href=\"#tldr\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eRun this at your command line to avoid polluting your system environment by\nmistake before running any pip command.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epip config \u003cspan class=\"nb\"\u003eset\u003c/span\u003e global.require-virtualenv True\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nWhenever you are installing python packages, you should always use a virtual\nenvironment.  pip makes this easy to follow by adding some configuration to\npip.\n\n## require-virtualenv\n\nPip is the pacakage tool for python.  It installs third-party packages and is\nconfigurable.  One of the configuration settings that I highly reccommend\neveryone to add is `require-virtualenv`.  This will stop pip from installing\nany packages if you have not activated a virtualenv.\n\n## why\n\npython packages often require many different dependencies, sometimes packages\nare up to date and sometimes they require different versions of dependencies.\nIf you install everything in one environment its easy to end up with version\nconflict issues that are really hard to resolve, especially since your system\nenvironment cannot easily be restarted.\n\n## PIPX my one exception\n\nMy one exception that I put in my system level packages is `pipx`.  `pipx` is\nvery handy as it manages virtual environments for you and is intended for\ncommand line utilities that would end up in your system env or require you to\nmanually manage virtual environments without it.\n\n## pip config\n\nYour pip config might be found in either `~/.pip/pip.conf` or\n`~/.config/pip/pip.conf`.  You can either use the `pip config set` command or\nedit one of these files manually.\n\n```bash\npip config set global.require-virtualenv True\n```\n\nNow you sould see this in your `~/.config/pip/pip.conf`\n\n``` toml\n[global]\nrequire-virtualenv = True\n```\n\n## pip config debug\n\nIf you want to know where pip is looking for configuration on your system, and\nwhat files are setting a certain config you can use `pip config debug` to find\nit.\n\n``` bash\n❯ pip config debug\n\nenv_var:\nenv:\nglobal:\n  /etc/xdg/xdg-awesome/pip/pip.conf, exists: False\n  /etc/xdg/pip/pip.conf, exists: False\n  /etc/pip.conf, exists: False\nsite:\n  /home/waylon/git/waylonwalker.com/.venv/pip.conf, exists: False\nuser:\n  /home/waylon/.pip/pip.conf, exists: False\n  /home/waylon/.config/pip/pip.conf, exists: True\n    global.require-virtualenv: True\n```\n\n## saved my bacon\n\nThis setting recently saved me when I modified my `.envrc` file my virtual\nenvironment deactivated, so when I went to pip install something it gave me an\nerror that it was not active.  Situations like this are an easy way to pollute\nyour system with packages that it does not need installed.\n\n![pip-require-virtualenv-direnv-error.webp](https://dropper.waylonwalker.com/api/file/fdb3d2bc-fd70-4b5b-acaa-aedc91c528b0.webp)\n\n## TLDR\n\nRun this at your command line to avoid polluting your system environment by\nmistake before running any pip command.\n\n```bash\npip config set global.require-virtualenv True\n```\n",
      "summary": "Whenever you are installing python packages, you should always use a virtual environment. pip makes this easy to follow by adding some configuration to pip.",
      "date_published": "2022-06-01T10:31:09Z",
      "date_modified": "2022-06-01T10:31:09Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/pyenv-no-sqlite3/",
      "url": "https://go.waylonwalker.com/pyenv-no-sqlite3/",
      "title": "pyenv no module named '_sqlite3'",
      "content_html": "\u003cp\u003eI’ve been trying to adopt pyenv for a few months, but have been completely\nblocked by this issue on one of the main machines I use.  Whenever I start up\nipython I get the following error.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eImportError: No module named \u0026#39;_sqlite3\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eI talked about why and how to use pyenv along with my first impressions in\n\u003ca href=\"/til/pyenv-first-impressions\"\u003ethis post\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"pyenvissues678\"\u003epyenv/issues/678 \u003ca href=\"#pyenvissues678\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAccording to \u003ca href=\"https://github.com/pyenv/pyenv/issues/678\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003e#678\u003c/a\u003e I need to\ninstall \u003ccode\u003elibsqlite3-dev\u003c/code\u003e on ubuntu to resolve this issue.\u003c/p\u003e\n\u003ch2 id=\"install-libsqlite3-dev\"\u003einstall libsqlite3-dev \u003ca href=\"#install-libsqlite3-dev\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003elibsqlite3-dev\u003c/code\u003e can be installed using apt\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo apt install libsqlite3-dev\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"but-wait\"\u003eBut wait…. \u003ca href=\"#but-wait\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWhen I make a fresh env and install ipython I still get the same error and I am\nstill not able to use ipython with pyenv.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"ne\"\u003eImportError\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003eNo\u003c/span\u003e \u003cspan class=\"n\"\u003emodule\u003c/span\u003e \u003cspan class=\"n\"\u003enamed\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;_sqlite3\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"re-install-python\"\u003ere-install python \u003ca href=\"#re-install-python\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAfter having this issue for awhile an coming back to\n\u003ca href=\"https://github.com/pyenv/pyenv/issues/678\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003e#678\u003c/a\u003e several times I realized that\n\u003ccode\u003elibsqlite3-dev\u003c/code\u003e needs to be installed while during install.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epyenv install 3.8.13\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eI think I had tried this several times, but was missing the \u003ccode\u003e-y\u003c/code\u003e option each\ntime.  You gotta read errors like this, I am really good at glossing over them.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/017121e2-1f51-4910-bfce-86813a7f90a3.webp\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/017121e2-1f51-4910-bfce-86813a7f90a3.webp\" alt=\"pyenv-install-exists.webp\"/ data-glightbox=\"description: pyenv-install-exists.webp\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"lets-never-have-this-issue-again\"\u003eLet’s never have this issue again. \u003ca href=\"#lets-never-have-this-issue-again\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWhen you spend months living with little errors like this and finally fix it,\nits good to make sure that it never happens again.  Whenever I start a new\nubuntu machine I run an ansible playbook that does all the setup for me.  I\nadded \u003ccode\u003elibsqlite3-dev\u003c/code\u003e to my core install in\n\u003ca href=\"https://github.com/WaylonWalker/devtainer/commit/64c85ca1b38eefe95dfc8723c1e83e8e334cf4dc\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003e64c85ca\u003c/a\u003e\nnow it will be on all of my machines and not break again.\u003c/p\u003e\n",
      "content_text": "\nI've been trying to adopt pyenv for a few months, but have been completely\nblocked by this issue on one of the main machines I use.  Whenever I start up\nipython I get the following error.\n\n```\nImportError: No module named '_sqlite3\n```\n\nI talked about why and how to use pyenv along with my first impressions in\n[this post](/til/pyenv-first-impressions)\n\n## pyenv/issues/678\n\nAccording to [#678](https://github.com/pyenv/pyenv/issues/678) I need to\ninstall `libsqlite3-dev` on ubuntu to resolve this issue.\n\n## install libsqlite3-dev\n\n`libsqlite3-dev` can be installed using apt\n\n```bash\nsudo apt install libsqlite3-dev\n```\n\n## But wait....\n\nWhen I make a fresh env and install ipython I still get the same error and I am\nstill not able to use ipython with pyenv.\n\n```python\nImportError: No module named '_sqlite3\n```\n\n## re-install python\n\nAfter having this issue for awhile an coming back to\n[#678](https://github.com/pyenv/pyenv/issues/678) several times I realized that\n`libsqlite3-dev` needs to be installed while during install.\n\n```bash\npyenv install 3.8.13\n```\n\nI think I had tried this several times, but was missing the `-y` option each\ntime.  You gotta read errors like this, I am really good at glossing over them.\n\n![pyenv-install-exists.webp](https://dropper.waylonwalker.com/api/file/017121e2-1f51-4910-bfce-86813a7f90a3.webp)\n\n## Let's never have this issue again.\n\nWhen you spend months living with little errors like this and finally fix it,\nits good to make sure that it never happens again.  Whenever I start a new\nubuntu machine I run an ansible playbook that does all the setup for me.  I\nadded `libsqlite3-dev` to my core install in\n[64c85ca](https://github.com/WaylonWalker/devtainer/commit/64c85ca1b38eefe95dfc8723c1e83e8e334cf4dc)\nnow it will be on all of my machines and not break again.\n",
      "summary": "I've been trying to adopt pyenv for a few months, but have been completely blocked by this issue on one of the main machines I use. Whenever I start up...",
      "date_published": "2022-05-31T14:18:52Z",
      "date_modified": "2022-05-31T14:18:52Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/git-merge-ours/",
      "url": "https://go.waylonwalker.com/git-merge-ours/",
      "title": "git merge ours",
      "content_html": "\u003cp\u003eSometimes you have a pretty old branch you are trying to merge into and you are\nabsolutely sure what you have is what you want, and therefore you don’t want to\ndeal with any sort of merge conflicts, you would rather just tell \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e to use my\nversion and move on.\u003c/p\u003e\n\u003ch2 id=\"update-main\"\u003eupdate main \u003ca href=\"#update-main\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe first step is to make sure your local copy of the branch you are moving\ninto is up to date.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit checkout main\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit pull\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"update-your-feature-branch\"\u003eupdate your feature branch \u003ca href=\"#update-your-feature-branch\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIt’s also worth updating your feature branch before doing the merge. Maybe you\nhave teammates that have updated the repo, or you popped in a quick change from\nthe web ui. It’s simple and worth checking.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit checkout my-feature\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit pull\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"start-the-merge\"\u003estart the merge \u003ca href=\"#start-the-merge\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eMerge the changes from main into \u003ccode\u003emy-feature\u003c/code\u003e branch.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003egit merge main\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eNow is where the merge conflict may have started. If you are completely sure\nthat your copy is correct you can \u003ccode\u003e--ours\u003c/code\u003e, if you are completely sure that\n\u003ccode\u003emain\u003c/code\u003e is correct, you can \u003ccode\u003e--theirs\u003c/code\u003e.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003egit checkout --ours .\ngit merge --continue\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis will pop open your configured \u003ccode\u003egit.core.editor\u003c/code\u003e or \u003ccode\u003e$EDTIOR\u003c/code\u003e. If you have\nnot configured your editor, it will default to vim.  Close vim with \u003ccode\u003e\u0026lt;escape\u0026gt;:x\u003c/code\u003e, accepting the\nmerge message.\u003c/p\u003e\n\u003cp\u003eNow push your changes that do not clash with main and finish your pr.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003egit push\n\u003c/code\u003e\u003c/pre\u003e\n",
      "content_text": "\nSometimes you have a pretty old branch you are trying to merge into and you are\nabsolutely sure what you have is what you want, and therefore you don't want to\ndeal with any sort of merge conflicts, you would rather just tell git to use my\nversion and move on.\n\n## update main\n\nThe first step is to make sure your local copy of the branch you are moving\ninto is up to date.\n\n``` bash\ngit checkout main\ngit pull\n```\n\n## update your feature branch\n\nIt's also worth updating your feature branch before doing the merge. Maybe you\nhave teammates that have updated the repo, or you popped in a quick change from\nthe web ui. It's simple and worth checking.\n\n``` bash\ngit checkout my-feature\ngit pull\n```\n\n## start the merge\n\nMerge the changes from main into `my-feature` branch.\n\n```\ngit merge main\n```\n\nNow is where the merge conflict may have started. If you are completely sure\nthat your copy is correct you can `--ours`, if you are completely sure that\n`main` is correct, you can `--theirs`.\n\n```\ngit checkout --ours .\ngit merge --continue\n```\n\nThis will pop open your configured `git.core.editor` or `$EDTIOR`. If you have\nnot configured your editor, it will default to vim.  Close vim with `\u003cescape\u003e:x`, accepting the\nmerge message.\n\nNow push your changes that do not clash with main and finish your pr.\n\n```\ngit push\n```\n",
      "summary": "Sometimes you have a pretty old branch you are trying to merge into and you are absolutely sure what you have is what you want, and therefore you don't want...",
      "date_published": "2022-05-24T12:12:09Z",
      "date_modified": "2022-05-24T12:12:09Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "git"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/vim-plugged-snapshot/",
      "url": "https://go.waylonwalker.com/vim-plugged-snapshot/",
      "title": "vim plugged snapshot",
      "content_html": "\u003cp\u003eA few of my friends and I all just borked our neovim configs during a plug\nupdate, and because none of us were using \u003ccode\u003e:PlugSnapshot\u003c/code\u003e it was painful to\nrecover from.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://twitter.com/pypeaday/status/1524882893914398732\"\u003ehttps://twitter.com/pypeaday/status/1524882893914398732\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eLucky for me I did it on a home machine that I only occasionally edit from,\nso I could still take the snapshot from a working machine before taking the\nplunge into fixing everying.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"why-snapshot\"\u003eWhy snapshot \u003ca href=\"#why-snapshot\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eSnapshotting ensures that you install the same \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e sha on every single plugin.\nThis way when you have multiple machines running your same vim config, they are\nall on the same sha of each plugin, and you dont end up with weird things\nhappening on one machine.  And then you get to decide when you are ready to\nupdate, rather than when it breaks.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003esame config everywhere\u003c/li\u003e\n\u003cli\u003eyou control the update\u003c/li\u003e\n\u003cli\u003ein case of a borked update you have a good working place to rever to\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"lets-snapshot\"\u003eLet’s snapshot \u003ca href=\"#lets-snapshot\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eRunning \u003ccode\u003e:PlugSnapshot\u003c/code\u003e will generate the following content in a buffer that\nyou can save.  I chose to save mine in \u003ccode\u003e~/.config/nvim/snapshot.vim\u003c/code\u003e.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c\"\u003e\u0026#34; Generated by vim-plug\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c\"\u003e\u0026#34; Fri 13 May 2022 08:01:39 PM CDT\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c\"\u003e\u0026#34; :source this file in vim to restore the snapshot\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c\"\u003e\u0026#34; or execute: vim -S snapshot.vim\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;Telegraph.nvim\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;92e472f4e83acd60eb3766168e66d02718bfefe0\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;black\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;8ed3e3d07ea3e6d62e3e533e69f96a0ff148cd5d\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;bufutils.vim\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;4634feb1312fd73fab66cfaa860e7af3abde935b\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;cmp-buffer\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;d66c4c2d376e5be99db68d2362cd94d250987525\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;cmp-calc\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;970fd5f97b4bd363260365b217f694dd6a1182cb\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;cmp-nvim-lsp\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;ebdfc204afb87f15ce3d3d3f5df0b8181443b5ba\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;cmp-path\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;466b6b8270f7ba89abd59f402c73f63c7331ff6e\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;cmp-rg\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;fd92d70ff36b30924401b0cf7d4ce7344c8235f7\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;cmp-vsnip\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;0abfa1860f5e095a07c477da940cfcb0d273b700\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;colorbuddy.nvim\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;cdb5b0654d3cafe61d2a845e15b2b4b0e78e752a\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;compe-tmux\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;3c16f7e73abee43b3ea3e919e8b34c24427d9530\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;coverage-highlight.vim\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;864e03679ea4168661501246147893cc82020917\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;diffurcate.vim\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;b804675072220ff7c7ebcd24a028aa4aa35f09cc\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;friendly-snippets\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;5fd8b920a3497dec9a3ef939595186b362d041b4\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;fzf\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;a91a67668e0830a8cf9a792c4949e03b4189f097\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;fzf.vim\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;d5f1f8641b24c0fd5b10a299824362a2a1b20ae0\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;gitsigns.nvim\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;ead0d48df801431b990d6b91fa210f7efa30ac38\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;gruvbox-flat.nvim\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;756dbdd3dfd3ed84acb2f9649724df19ae41f904\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;harpoon\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;28762aa04d6395538e26e1efff5213b26720e68f\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;impatient.nvim\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;2337df7d778e17a58d8709f651653b9039946d8d\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;instant.nvim\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;c02d72267b12130609b7ad39b76cf7f4a3bc9554\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;lsp_extensions.nvim\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;4011f4aec61ba59c734f5dbf52e91f258b99d985\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;lsp_signature.nvim\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;a351509512687293fd659ba4ee7e34412c3a8f70\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;lspsaga.nvim\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;cb0e35d2e594ff7a9c408d2e382945d56336c040\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;lualine.nvim\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;18a07f790ed7ed1f11d1b130c02782e9dfd8dd7d\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;nvim-cmp\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;433af3dffce64cbd3f99bdac9734768a6cc41951\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;nvim-compe\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;d186d739c54823e0b010feb205c6f97792322c08\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;nvim-dap\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;d6d8317ce9e096029150bc5844916347a9af6f45\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;nvim-dap-python\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;4c7ea25f8ff6de6fa00bf5625d2e76753cced70f\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;nvim-lspconfig\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;ad9903c66bac88f344890acb6532f63f1cd4dac3\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;nvim-lspinstall\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;79ec2425d6b39cdcb69d379f3e56847f49be73eb\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;nvim-lsputils\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;ae1a4a62449863ad82c70713d5b6108f3a07917c\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;nvim-spectre\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;345e5dd57773e2b4b425a2515c831108b9808a0f\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;nvim-tree.lua\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;ce463a53ae269544697c3dedd3d5beae05937405\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;nvim-treesitter\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;3c50297eca950b4b1a7c07b28e586b0576c0a796\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;nvim-web-devicons\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;4febe73506268a02ff15a240abcd7bf3eb9234da\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;onebuddy\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;7e16006e7dde15e3cb72889f736c49409db6ff42\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;onedark.nvim\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;e520a0c81a5a1997ecffd846ccd9c6e63b7859c6\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;playground\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;13e2d2d63ce7bc5d875e8bdf89cb070bc8cc7a00\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;plenary.nvim\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;9069d14a120cadb4f6825f76821533f2babcab92\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;popfix\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;ea262861ce3905b90c2c203b74a7be2539f1aba4\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;popup.nvim\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;b7404d35d5d3548a82149238289fa71f7f6de4ac\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;refactoring.nvim\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;94eaa199ad892f26d2c8594dbbc5656314cf5bdb\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;stylua-nvim\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;8bd7fa127367178dddb9ee06fdce1d7c622d2feb\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;targets.vim\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;8d6ff2984cdfaebe5b7a6eee8f226a6dd1226f2d\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;telescope-dap.nvim\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;b4134fff5cbaf3b876e6011212ed60646e56f060\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;telescope.nvim\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;8b02088743c07c2f82aec2772fbd2b3774195448\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;termopen.vim\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;3194a991a18a9be2fd9fcf8c4c55fe990c04b2bd\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;undotree\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;08e259be24d4476c1ee745dc735eefd44f90efdc\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;vim-be-good\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;bc499a06c14c729b22a6cc7e730a9fbc44d4e737\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;vim-commentary\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;3654775824337f466109f00eaf6759760f65be34\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;vim-dispatch\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;00e77d90452e3c710014b26dc61ea919bc895e92\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;vim-doge\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;88d8dfacc3a5f3dfce82ef5221e5e6943e627d85\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;vim-floaterm\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;6244d1739aad6682c6c1d5db18c846c342af6e3e\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;vim-fugitive\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;b5bbd0d181ebc3cea5c42bdaed13141850432ba1\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;vim-indent-object\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;5c5b24c959478929b54a9e831a8e2e651a465965\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;vim-ipython-cell\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;f0548d9a8d5e31d5c7f73e8729b55e8eb402852f\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;vim-log-highlighting\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;1037e26f3120e6a6a2c0c33b14a84336dee2a78f\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;vim-quicklink\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;021167741588555501594e1fc31f130b16acefa0\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;vim-repeat\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;24afe922e6a05891756ecf331f39a1f6743d3d5a\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;vim-signify\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;69498f6d49f3eeac06870012416dd9bf867b84f3\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;vim-slime\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;0ea9b35882155996171fd15a5227e673ce2d2c60\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;vim-sneak\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;94c2de47ab301d476a2baec9ffda07367046bec9\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;vim-surround\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;81fc0ec460dd8b25a76346e09aecdbca2677f1a7\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;vim-test\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;2240d7a4b868cb594b7d83544e1b6db4df806e5e\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;vim-tmux-runner\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;54767911fd5e6e2d8e493847149e315ac2e6531a\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;vim-ultest\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;a99eb0bdf7d901d538b5dd724e2ab3a958c1799c\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;vim-visualstar\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;a18cd0e7a03311ac709595c1d261ed44b45c9098\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eg\u003c/span\u003e:\u003cspan class=\"nx\"\u003eplugs\u003c/span\u003e[\u003cspan class=\"s1\"\u003e\u0026#39;vim-vsnip\u0026#39;\u003c/span\u003e].\u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;8f199ef690ed26dcbb8973d9a6760d1332449ac9\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003ePlugUpdate\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003eNOTE! the \u003ccode\u003ePlugUpdate!\u003c/code\u003e at the end.  I did not catch this at first, if you\nare like me and automatically source \u003ccode\u003e*.vim\u003c/code\u003e files on save, this will\nimmediately run the update when you save it.  If you just took the snapshot\nthough I don’t think it will actually do anything.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"lets-update\"\u003eLet’s Update \u003ca href=\"#lets-update\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNow without the snapshot sourced, I will not have any of my plugins pinned.\nWhen I run \u003ccode\u003e:PlugUpdate\u003c/code\u003e it will update all of my plugins to the latest\nversions.  Then I can \u003ccode\u003e:PlugSnapshot\u003c/code\u003e again, and this will kick out an updated\nlist of sha’s.  I will yank this file \u003ccode\u003eyyG\u003c/code\u003e and paste it into my snapshot.vim\nfile \u003ccode\u003evGp\u003c/code\u003e.\u003c/p\u003e\n\u003ch2 id=\"look-at-these-updates\"\u003eLook at these updates \u003ca href=\"#look-at-these-updates\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWe can see these updates with a little \u003ccode\u003e:G diff %\u003c/code\u003e on the file.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gh\"\u003ediff --git a/nvim/.config/nvim/snapshot.vim b/nvim/.config/nvim/snapshot.vim\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gh\"\u003eindex 88db2b0..837c8e4 100644\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gh\"\u003e\u003c/span\u003e\u003cspan class=\"gd\"\u003e--- a/nvim/.config/nvim/snapshot.vim\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e\u003c/span\u003e\u003cspan class=\"gi\"\u003e+++ b/nvim/.config/nvim/snapshot.vim\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e\u003c/span\u003e\u003cspan class=\"gu\"\u003e@@ -1,14 +1,14 @@\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gu\"\u003e\u003c/span\u003e \u0026#34; Generated by vim-plug\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e-\u0026#34; Fri 13 May 2022 08:01:39 PM CDT\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e\u003c/span\u003e\u003cspan class=\"gi\"\u003e+\u0026#34; Fri 13 May 2022 08:22:17 PM CDT\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e\u003c/span\u003e \u0026#34; :source this file in vim to restore the snapshot\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e \u0026#34; or execute: vim -S snapshot.vim\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e silent! let g:plugs[\u0026#39;Telegraph.nvim\u0026#39;].commit = \u0026#39;92e472f4e83acd60eb3766168e66d02718bfefe0\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e-silent! let g:plugs[\u0026#39;black\u0026#39;].commit = \u0026#39;8ed3e3d07ea3e6d62e3e533e69f96a0ff148cd5d\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e\u003c/span\u003e\u003cspan class=\"gi\"\u003e+silent! let g:plugs[\u0026#39;black\u0026#39;].commit = \u0026#39;7f033136ac5e0e5bf6cf322dd60b4a92050eedc4\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e\u003c/span\u003e silent! let g:plugs[\u0026#39;bufutils.vim\u0026#39;].commit = \u0026#39;4634feb1312fd73fab66cfaa860e7af3abde935b\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e-silent! let g:plugs[\u0026#39;cmp-buffer\u0026#39;].commit = \u0026#39;d66c4c2d376e5be99db68d2362cd94d250987525\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e-silent! let g:plugs[\u0026#39;cmp-calc\u0026#39;].commit = \u0026#39;970fd5f97b4bd363260365b217f694dd6a1182cb\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e-silent! let g:plugs[\u0026#39;cmp-nvim-lsp\u0026#39;].commit = \u0026#39;ebdfc204afb87f15ce3d3d3f5df0b8181443b5ba\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e\u003c/span\u003e\u003cspan class=\"gi\"\u003e+silent! let g:plugs[\u0026#39;cmp-buffer\u0026#39;].commit = \u0026#39;12463cfcd9b14052f9effccbf1d84caa7a2d57f0\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e+silent! let g:plugs[\u0026#39;cmp-calc\u0026#39;].commit = \u0026#39;f7efc20768603bd9f9ae0ed073b1c129f63eb312\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e+silent! let g:plugs[\u0026#39;cmp-nvim-lsp\u0026#39;].commit = \u0026#39;e6b5feb2e6560b61f31c756fb9231a0d7b10c73d\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e\u003c/span\u003e silent! let g:plugs[\u0026#39;cmp-path\u0026#39;].commit = \u0026#39;466b6b8270f7ba89abd59f402c73f63c7331ff6e\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e silent! let g:plugs[\u0026#39;cmp-rg\u0026#39;].commit = \u0026#39;fd92d70ff36b30924401b0cf7d4ce7344c8235f7\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e silent! let g:plugs[\u0026#39;cmp-vsnip\u0026#39;].commit = \u0026#39;0abfa1860f5e095a07c477da940cfcb0d273b700\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gu\"\u003e@@ -16,60 +16,60 @@ silent! let g:plugs[\u0026#39;colorbuddy.nvim\u0026#39;].commit = \u0026#39;cdb5b0654d3cafe61d2a845e15b2b4b\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gu\"\u003e\u003c/span\u003e silent! let g:plugs[\u0026#39;compe-tmux\u0026#39;].commit = \u0026#39;3c16f7e73abee43b3ea3e919e8b34c24427d9530\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e silent! let g:plugs[\u0026#39;coverage-highlight.vim\u0026#39;].commit = \u0026#39;864e03679ea4168661501246147893cc82020917\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e silent! let g:plugs[\u0026#39;diffurcate.vim\u0026#39;].commit = \u0026#39;b804675072220ff7c7ebcd24a028aa4aa35f09cc\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e-silent! let g:plugs[\u0026#39;friendly-snippets\u0026#39;].commit = \u0026#39;5fd8b920a3497dec9a3ef939595186b362d041b4\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e-silent! let g:plugs[\u0026#39;fzf\u0026#39;].commit = \u0026#39;a91a67668e0830a8cf9a792c4949e03b4189f097\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e\u003c/span\u003e\u003cspan class=\"gi\"\u003e+silent! let g:plugs[\u0026#39;friendly-snippets\u0026#39;].commit = \u0026#39;627dea2ff1ee8d8a7e6ad365acb3e335c8b25574\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e+silent! let g:plugs[\u0026#39;fzf\u0026#39;].commit = \u0026#39;6dcf5c3d7d6c321b17e6a5673f1533d6e8350462\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e\u003c/span\u003e silent! let g:plugs[\u0026#39;fzf.vim\u0026#39;].commit = \u0026#39;d5f1f8641b24c0fd5b10a299824362a2a1b20ae0\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e-silent! let g:plugs[\u0026#39;gitsigns.nvim\u0026#39;].commit = \u0026#39;ead0d48df801431b990d6b91fa210f7efa30ac38\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e\u003c/span\u003e\u003cspan class=\"gi\"\u003e+silent! let g:plugs[\u0026#39;gitsigns.nvim\u0026#39;].commit = \u0026#39;ffd06e36f6067935d8cb9793905dd2e84e291310\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e\u003c/span\u003e silent! let g:plugs[\u0026#39;gruvbox-flat.nvim\u0026#39;].commit = \u0026#39;756dbdd3dfd3ed84acb2f9649724df19ae41f904\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e-silent! let g:plugs[\u0026#39;harpoon\u0026#39;].commit = \u0026#39;28762aa04d6395538e26e1efff5213b26720e68f\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e\u003c/span\u003e\u003cspan class=\"gi\"\u003e+silent! let g:plugs[\u0026#39;harpoon\u0026#39;].commit = \u0026#39;d3d3d22b6207f46f8ca64946f4d781e975aec0fc\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e\u003c/span\u003e silent! let g:plugs[\u0026#39;impatient.nvim\u0026#39;].commit = \u0026#39;2337df7d778e17a58d8709f651653b9039946d8d\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e silent! let g:plugs[\u0026#39;instant.nvim\u0026#39;].commit = \u0026#39;c02d72267b12130609b7ad39b76cf7f4a3bc9554\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e silent! let g:plugs[\u0026#39;lsp_extensions.nvim\u0026#39;].commit = \u0026#39;4011f4aec61ba59c734f5dbf52e91f258b99d985\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e-silent! let g:plugs[\u0026#39;lsp_signature.nvim\u0026#39;].commit = \u0026#39;a351509512687293fd659ba4ee7e34412c3a8f70\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e\u003c/span\u003e\u003cspan class=\"gi\"\u003e+silent! let g:plugs[\u0026#39;lsp_signature.nvim\u0026#39;].commit = \u0026#39;db324e2ada5bb795d0016ec0ef2b4ae7f11d8904\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e\u003c/span\u003e silent! let g:plugs[\u0026#39;lspsaga.nvim\u0026#39;].commit = \u0026#39;cb0e35d2e594ff7a9c408d2e382945d56336c040\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e-silent! let g:plugs[\u0026#39;lualine.nvim\u0026#39;].commit = \u0026#39;18a07f790ed7ed1f11d1b130c02782e9dfd8dd7d\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e-silent! let g:plugs[\u0026#39;nvim-cmp\u0026#39;].commit = \u0026#39;433af3dffce64cbd3f99bdac9734768a6cc41951\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e\u003c/span\u003e\u003cspan class=\"gi\"\u003e+silent! let g:plugs[\u0026#39;lualine.nvim\u0026#39;].commit = \u0026#39;a4e4517ac32441dd92ba869944741f0b5f468531\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e+silent! let g:plugs[\u0026#39;nvim-cmp\u0026#39;].commit = \u0026#39;9a0c639ac2324e6e9ecc54dc22b1d32bb6c42ab9\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e\u003c/span\u003e silent! let g:plugs[\u0026#39;nvim-compe\u0026#39;].commit = \u0026#39;d186d739c54823e0b010feb205c6f97792322c08\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e-silent! let g:plugs[\u0026#39;nvim-dap\u0026#39;].commit = \u0026#39;d6d8317ce9e096029150bc5844916347a9af6f45\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e-silent! let g:plugs[\u0026#39;nvim-dap-python\u0026#39;].commit = \u0026#39;4c7ea25f8ff6de6fa00bf5625d2e76753cced70f\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e-silent! let g:plugs[\u0026#39;nvim-lspconfig\u0026#39;].commit = \u0026#39;ad9903c66bac88f344890acb6532f63f1cd4dac3\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e\u003c/span\u003e\u003cspan class=\"gi\"\u003e+silent! let g:plugs[\u0026#39;nvim-dap\u0026#39;].commit = \u0026#39;2249fcfd09cdc27c08e9d2f3be5268ba81db3378\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e+silent! let g:plugs[\u0026#39;nvim-dap-python\u0026#39;].commit = \u0026#39;d96bcbf3803283456c900cf25ab0995e8d2f00c0\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e+silent! let g:plugs[\u0026#39;nvim-lspconfig\u0026#39;].commit = \u0026#39;9ff2a06cebd4c8c3af5259d713959ab310125bec\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e\u003c/span\u003e silent! let g:plugs[\u0026#39;nvim-lspinstall\u0026#39;].commit = \u0026#39;79ec2425d6b39cdcb69d379f3e56847f49be73eb\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e silent! let g:plugs[\u0026#39;nvim-lsputils\u0026#39;].commit = \u0026#39;ae1a4a62449863ad82c70713d5b6108f3a07917c\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e silent! let g:plugs[\u0026#39;nvim-spectre\u0026#39;].commit = \u0026#39;345e5dd57773e2b4b425a2515c831108b9808a0f\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e-silent! let g:plugs[\u0026#39;nvim-tree.lua\u0026#39;].commit = \u0026#39;ce463a53ae269544697c3dedd3d5beae05937405\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e-silent! let g:plugs[\u0026#39;nvim-treesitter\u0026#39;].commit = \u0026#39;3c50297eca950b4b1a7c07b28e586b0576c0a796\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e-silent! let g:plugs[\u0026#39;nvim-web-devicons\u0026#39;].commit = \u0026#39;4febe73506268a02ff15a240abcd7bf3eb9234da\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e\u003c/span\u003e\u003cspan class=\"gi\"\u003e+silent! let g:plugs[\u0026#39;nvim-tree.lua\u0026#39;].commit = \u0026#39;82ec79aac5557c05728d88195fb0d008cacbf565\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e+silent! let g:plugs[\u0026#39;nvim-treesitter\u0026#39;].commit = \u0026#39;f1373051e554cc4642cda719c8023e4e8508eb2d\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e+silent! let g:plugs[\u0026#39;nvim-web-devicons\u0026#39;].commit = \u0026#39;bdd43421437f2ef037e0dafeaaaa62b31d35ef2f\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e\u003c/span\u003e silent! let g:plugs[\u0026#39;onebuddy\u0026#39;].commit = \u0026#39;7e16006e7dde15e3cb72889f736c49409db6ff42\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e-silent! let g:plugs[\u0026#39;onedark.nvim\u0026#39;].commit = \u0026#39;e520a0c81a5a1997ecffd846ccd9c6e63b7859c6\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e-silent! let g:plugs[\u0026#39;playground\u0026#39;].commit = \u0026#39;13e2d2d63ce7bc5d875e8bdf89cb070bc8cc7a00\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e-silent! let g:plugs[\u0026#39;plenary.nvim\u0026#39;].commit = \u0026#39;9069d14a120cadb4f6825f76821533f2babcab92\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e\u003c/span\u003e\u003cspan class=\"gi\"\u003e+silent! let g:plugs[\u0026#39;onedark.nvim\u0026#39;].commit = \u0026#39;08cde8acf181b3278dafb9c8284726104a11cc0f\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e+silent! let g:plugs[\u0026#39;playground\u0026#39;].commit = \u0026#39;71b00a3c665298e5155ad64a9020135808d4e3e8\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e+silent! let g:plugs[\u0026#39;plenary.nvim\u0026#39;].commit = \u0026#39;0a907364b5cd6e3438e230df7add8b9bb5ef6fd3\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e\u003c/span\u003e silent! let g:plugs[\u0026#39;popfix\u0026#39;].commit = \u0026#39;ea262861ce3905b90c2c203b74a7be2539f1aba4\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e silent! let g:plugs[\u0026#39;popup.nvim\u0026#39;].commit = \u0026#39;b7404d35d5d3548a82149238289fa71f7f6de4ac\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e-silent! let g:plugs[\u0026#39;refactoring.nvim\u0026#39;].commit = \u0026#39;94eaa199ad892f26d2c8594dbbc5656314cf5bdb\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e-silent! let g:plugs[\u0026#39;stylua-nvim\u0026#39;].commit = \u0026#39;8bd7fa127367178dddb9ee06fdce1d7c622d2feb\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e\u003c/span\u003e\u003cspan class=\"gi\"\u003e+silent! let g:plugs[\u0026#39;refactoring.nvim\u0026#39;].commit = \u0026#39;33ac6f3bcfe97447037ded20291d40de34d8912c\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e+silent! let g:plugs[\u0026#39;stylua-nvim\u0026#39;].commit = \u0026#39;ce59a353f02938cba3e0285e662fcd3901cd270f\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e\u003c/span\u003e silent! let g:plugs[\u0026#39;targets.vim\u0026#39;].commit = \u0026#39;8d6ff2984cdfaebe5b7a6eee8f226a6dd1226f2d\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e silent! let g:plugs[\u0026#39;telescope-dap.nvim\u0026#39;].commit = \u0026#39;b4134fff5cbaf3b876e6011212ed60646e56f060\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e-silent! let g:plugs[\u0026#39;telescope.nvim\u0026#39;].commit = \u0026#39;8b02088743c07c2f82aec2772fbd2b3774195448\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e\u003c/span\u003e\u003cspan class=\"gi\"\u003e+silent! let g:plugs[\u0026#39;telescope.nvim\u0026#39;].commit = \u0026#39;39b12d84e86f5054e2ed98829b367598ae53ab41\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e\u003c/span\u003e silent! let g:plugs[\u0026#39;termopen.vim\u0026#39;].commit = \u0026#39;3194a991a18a9be2fd9fcf8c4c55fe990c04b2bd\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e silent! let g:plugs[\u0026#39;undotree\u0026#39;].commit = \u0026#39;08e259be24d4476c1ee745dc735eefd44f90efdc\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e silent! let g:plugs[\u0026#39;vim-be-good\u0026#39;].commit = \u0026#39;bc499a06c14c729b22a6cc7e730a9fbc44d4e737\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e silent! let g:plugs[\u0026#39;vim-commentary\u0026#39;].commit = \u0026#39;3654775824337f466109f00eaf6759760f65be34\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e silent! let g:plugs[\u0026#39;vim-dispatch\u0026#39;].commit = \u0026#39;00e77d90452e3c710014b26dc61ea919bc895e92\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e-silent! let g:plugs[\u0026#39;vim-doge\u0026#39;].commit = \u0026#39;88d8dfacc3a5f3dfce82ef5221e5e6943e627d85\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e-silent! let g:plugs[\u0026#39;vim-floaterm\u0026#39;].commit = \u0026#39;6244d1739aad6682c6c1d5db18c846c342af6e3e\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e-silent! let g:plugs[\u0026#39;vim-fugitive\u0026#39;].commit = \u0026#39;b5bbd0d181ebc3cea5c42bdaed13141850432ba1\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e\u003c/span\u003e\u003cspan class=\"gi\"\u003e+silent! let g:plugs[\u0026#39;vim-doge\u0026#39;].commit = \u0026#39;d5b08d01f64396557d9912b3830717d45671764b\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e+silent! let g:plugs[\u0026#39;vim-floaterm\u0026#39;].commit = \u0026#39;ab7876f86c05c1935eb23a193f4f276132902ac1\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e+silent! let g:plugs[\u0026#39;vim-fugitive\u0026#39;].commit = \u0026#39;a8139d37b242c5bc5ceeddc4fcd7dddf2b2c2650\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e\u003c/span\u003e silent! let g:plugs[\u0026#39;vim-indent-object\u0026#39;].commit = \u0026#39;5c5b24c959478929b54a9e831a8e2e651a465965\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e silent! let g:plugs[\u0026#39;vim-ipython-cell\u0026#39;].commit = \u0026#39;f0548d9a8d5e31d5c7f73e8729b55e8eb402852f\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e silent! let g:plugs[\u0026#39;vim-log-highlighting\u0026#39;].commit = \u0026#39;1037e26f3120e6a6a2c0c33b14a84336dee2a78f\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e silent! let g:plugs[\u0026#39;vim-quicklink\u0026#39;].commit = \u0026#39;021167741588555501594e1fc31f130b16acefa0\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e silent! let g:plugs[\u0026#39;vim-repeat\u0026#39;].commit = \u0026#39;24afe922e6a05891756ecf331f39a1f6743d3d5a\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e silent! let g:plugs[\u0026#39;vim-signify\u0026#39;].commit = \u0026#39;69498f6d49f3eeac06870012416dd9bf867b84f3\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e-silent! let g:plugs[\u0026#39;vim-slime\u0026#39;].commit = \u0026#39;0ea9b35882155996171fd15a5227e673ce2d2c60\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e\u003c/span\u003e\u003cspan class=\"gi\"\u003e+silent! let g:plugs[\u0026#39;vim-slime\u0026#39;].commit = \u0026#39;6e4b81303968f37346925d6907b96ef07788cc82\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e\u003c/span\u003e silent! let g:plugs[\u0026#39;vim-sneak\u0026#39;].commit = \u0026#39;94c2de47ab301d476a2baec9ffda07367046bec9\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e-silent! let g:plugs[\u0026#39;vim-surround\u0026#39;].commit = \u0026#39;81fc0ec460dd8b25a76346e09aecdbca2677f1a7\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e\u003c/span\u003e\u003cspan class=\"gi\"\u003e+silent! let g:plugs[\u0026#39;vim-surround\u0026#39;].commit = \u0026#39;bf3480dc9ae7bea34c78fbba4c65b4548b5b1fea\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e\u003c/span\u003e silent! let g:plugs[\u0026#39;vim-test\u0026#39;].commit = \u0026#39;2240d7a4b868cb594b7d83544e1b6db4df806e5e\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e silent! let g:plugs[\u0026#39;vim-tmux-runner\u0026#39;].commit = \u0026#39;54767911fd5e6e2d8e493847149e315ac2e6531a\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e-silent! let g:plugs[\u0026#39;vim-ultest\u0026#39;].commit = \u0026#39;a99eb0bdf7d901d538b5dd724e2ab3a958c1799c\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e\u003c/span\u003e\u003cspan class=\"gi\"\u003e+silent! let g:plugs[\u0026#39;vim-ultest\u0026#39;].commit = \u0026#39;6978fd32e3ca2c1c5591884eea0d57a7ee43d212\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e\u003c/span\u003e silent! let g:plugs[\u0026#39;vim-visualstar\u0026#39;].commit = \u0026#39;a18cd0e7a03311ac709595c1d261ed44b45c9098\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e silent! let g:plugs[\u0026#39;vim-vsnip\u0026#39;].commit = \u0026#39;8f199ef690ed26dcbb8973d9a6760d1332449ac9\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"commits\"\u003eCommits \u003ca href=\"#commits\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNow I can look through all the versions of my \u003ccode\u003esnapshot.vim\u003c/code\u003e by opening it,\nrunning \u003ccode\u003e:0Gclog\u003c/code\u003e and navigating the quickfix list with \u003ccode\u003e:cnext\u003c/code\u003e and \u003ccode\u003e:cprev\u003c/code\u003e.\nIf I want to install one of the old versions while its open in a buffer, all I\nneed to do is run \u003ccode\u003e:source %\u003c/code\u003e.\u003c/p\u003e\n\u003ch2 id=\"log\"\u003eLog \u003ca href=\"#log\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNow the log of my \u003ccode\u003esnapshots.vim\u003c/code\u003e looks like this.  I saved the working\nversion, and successfully updated to the latest versions of all plugins, with a\nsave point I can revert back to.\u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"language-log\"\u003ecommit 20e901196b0d9633a42176f1fe1757e45f709fd3\nAuthor: Waylon S. Walker \u0026lt;waylon@waylonwalker.com\u0026gt;\nDate:   Fri May 13 20:37:03 2022 -0500\n\n    plugupdate\n\ncommit f9d76368697b4c4427c0fa8ccd5e2449b6e5a9ff\nAuthor: Waylon S. Walker \u0026lt;waylon@waylonwalker.com\u0026gt;\nDate:   Fri May 13 20:16:11 2022 -0500\n\n    commit my plugin snapshot\n\u003c/code\u003e\u003c/pre\u003e\n",
      "content_text": "\nA few of my friends and I all just borked our neovim configs during a plug\nupdate, and because none of us were using `:PlugSnapshot` it was painful to\nrecover from.\n\nhttps://twitter.com/pypeaday/status/1524882893914398732\n\n\u003e Lucky for me I did it on a home machine that I only occasionally edit from,\n\u003e so I could still take the snapshot from a working machine before taking the\n\u003e plunge into fixing everying.\n\n## Why snapshot\n\nSnapshotting ensures that you install the same git sha on every single plugin.\nThis way when you have multiple machines running your same vim config, they are\nall on the same sha of each plugin, and you dont end up with weird things\nhappening on one machine.  And then you get to decide when you are ready to\nupdate, rather than when it breaks.\n\n* same config everywhere\n* you control the update\n* in case of a borked update you have a good working place to rever to\n\n## Let's snapshot\n\nRunning `:PlugSnapshot` will generate the following content in a buffer that\nyou can save.  I chose to save mine in `~/.config/nvim/snapshot.vim`.\n\n``` vim\n\" Generated by vim-plug\n\" Fri 13 May 2022 08:01:39 PM CDT\n\" :source this file in vim to restore the snapshot\n\" or execute: vim -S snapshot.vim\n\nsilent! let g:plugs['Telegraph.nvim'].commit = '92e472f4e83acd60eb3766168e66d02718bfefe0'\nsilent! let g:plugs['black'].commit = '8ed3e3d07ea3e6d62e3e533e69f96a0ff148cd5d'\nsilent! let g:plugs['bufutils.vim'].commit = '4634feb1312fd73fab66cfaa860e7af3abde935b'\nsilent! let g:plugs['cmp-buffer'].commit = 'd66c4c2d376e5be99db68d2362cd94d250987525'\nsilent! let g:plugs['cmp-calc'].commit = '970fd5f97b4bd363260365b217f694dd6a1182cb'\nsilent! let g:plugs['cmp-nvim-lsp'].commit = 'ebdfc204afb87f15ce3d3d3f5df0b8181443b5ba'\nsilent! let g:plugs['cmp-path'].commit = '466b6b8270f7ba89abd59f402c73f63c7331ff6e'\nsilent! let g:plugs['cmp-rg'].commit = 'fd92d70ff36b30924401b0cf7d4ce7344c8235f7'\nsilent! let g:plugs['cmp-vsnip'].commit = '0abfa1860f5e095a07c477da940cfcb0d273b700'\nsilent! let g:plugs['colorbuddy.nvim'].commit = 'cdb5b0654d3cafe61d2a845e15b2b4b0e78e752a'\nsilent! let g:plugs['compe-tmux'].commit = '3c16f7e73abee43b3ea3e919e8b34c24427d9530'\nsilent! let g:plugs['coverage-highlight.vim'].commit = '864e03679ea4168661501246147893cc82020917'\nsilent! let g:plugs['diffurcate.vim'].commit = 'b804675072220ff7c7ebcd24a028aa4aa35f09cc'\nsilent! let g:plugs['friendly-snippets'].commit = '5fd8b920a3497dec9a3ef939595186b362d041b4'\nsilent! let g:plugs['fzf'].commit = 'a91a67668e0830a8cf9a792c4949e03b4189f097'\nsilent! let g:plugs['fzf.vim'].commit = 'd5f1f8641b24c0fd5b10a299824362a2a1b20ae0'\nsilent! let g:plugs['gitsigns.nvim'].commit = 'ead0d48df801431b990d6b91fa210f7efa30ac38'\nsilent! let g:plugs['gruvbox-flat.nvim'].commit = '756dbdd3dfd3ed84acb2f9649724df19ae41f904'\nsilent! let g:plugs['harpoon'].commit = '28762aa04d6395538e26e1efff5213b26720e68f'\nsilent! let g:plugs['impatient.nvim'].commit = '2337df7d778e17a58d8709f651653b9039946d8d'\nsilent! let g:plugs['instant.nvim'].commit = 'c02d72267b12130609b7ad39b76cf7f4a3bc9554'\nsilent! let g:plugs['lsp_extensions.nvim'].commit = '4011f4aec61ba59c734f5dbf52e91f258b99d985'\nsilent! let g:plugs['lsp_signature.nvim'].commit = 'a351509512687293fd659ba4ee7e34412c3a8f70'\nsilent! let g:plugs['lspsaga.nvim'].commit = 'cb0e35d2e594ff7a9c408d2e382945d56336c040'\nsilent! let g:plugs['lualine.nvim'].commit = '18a07f790ed7ed1f11d1b130c02782e9dfd8dd7d'\nsilent! let g:plugs['nvim-cmp'].commit = '433af3dffce64cbd3f99bdac9734768a6cc41951'\nsilent! let g:plugs['nvim-compe'].commit = 'd186d739c54823e0b010feb205c6f97792322c08'\nsilent! let g:plugs['nvim-dap'].commit = 'd6d8317ce9e096029150bc5844916347a9af6f45'\nsilent! let g:plugs['nvim-dap-python'].commit = '4c7ea25f8ff6de6fa00bf5625d2e76753cced70f'\nsilent! let g:plugs['nvim-lspconfig'].commit = 'ad9903c66bac88f344890acb6532f63f1cd4dac3'\nsilent! let g:plugs['nvim-lspinstall'].commit = '79ec2425d6b39cdcb69d379f3e56847f49be73eb'\nsilent! let g:plugs['nvim-lsputils'].commit = 'ae1a4a62449863ad82c70713d5b6108f3a07917c'\nsilent! let g:plugs['nvim-spectre'].commit = '345e5dd57773e2b4b425a2515c831108b9808a0f'\nsilent! let g:plugs['nvim-tree.lua'].commit = 'ce463a53ae269544697c3dedd3d5beae05937405'\nsilent! let g:plugs['nvim-treesitter'].commit = '3c50297eca950b4b1a7c07b28e586b0576c0a796'\nsilent! let g:plugs['nvim-web-devicons'].commit = '4febe73506268a02ff15a240abcd7bf3eb9234da'\nsilent! let g:plugs['onebuddy'].commit = '7e16006e7dde15e3cb72889f736c49409db6ff42'\nsilent! let g:plugs['onedark.nvim'].commit = 'e520a0c81a5a1997ecffd846ccd9c6e63b7859c6'\nsilent! let g:plugs['playground'].commit = '13e2d2d63ce7bc5d875e8bdf89cb070bc8cc7a00'\nsilent! let g:plugs['plenary.nvim'].commit = '9069d14a120cadb4f6825f76821533f2babcab92'\nsilent! let g:plugs['popfix'].commit = 'ea262861ce3905b90c2c203b74a7be2539f1aba4'\nsilent! let g:plugs['popup.nvim'].commit = 'b7404d35d5d3548a82149238289fa71f7f6de4ac'\nsilent! let g:plugs['refactoring.nvim'].commit = '94eaa199ad892f26d2c8594dbbc5656314cf5bdb'\nsilent! let g:plugs['stylua-nvim'].commit = '8bd7fa127367178dddb9ee06fdce1d7c622d2feb'\nsilent! let g:plugs['targets.vim'].commit = '8d6ff2984cdfaebe5b7a6eee8f226a6dd1226f2d'\nsilent! let g:plugs['telescope-dap.nvim'].commit = 'b4134fff5cbaf3b876e6011212ed60646e56f060'\nsilent! let g:plugs['telescope.nvim'].commit = '8b02088743c07c2f82aec2772fbd2b3774195448'\nsilent! let g:plugs['termopen.vim'].commit = '3194a991a18a9be2fd9fcf8c4c55fe990c04b2bd'\nsilent! let g:plugs['undotree'].commit = '08e259be24d4476c1ee745dc735eefd44f90efdc'\nsilent! let g:plugs['vim-be-good'].commit = 'bc499a06c14c729b22a6cc7e730a9fbc44d4e737'\nsilent! let g:plugs['vim-commentary'].commit = '3654775824337f466109f00eaf6759760f65be34'\nsilent! let g:plugs['vim-dispatch'].commit = '00e77d90452e3c710014b26dc61ea919bc895e92'\nsilent! let g:plugs['vim-doge'].commit = '88d8dfacc3a5f3dfce82ef5221e5e6943e627d85'\nsilent! let g:plugs['vim-floaterm'].commit = '6244d1739aad6682c6c1d5db18c846c342af6e3e'\nsilent! let g:plugs['vim-fugitive'].commit = 'b5bbd0d181ebc3cea5c42bdaed13141850432ba1'\nsilent! let g:plugs['vim-indent-object'].commit = '5c5b24c959478929b54a9e831a8e2e651a465965'\nsilent! let g:plugs['vim-ipython-cell'].commit = 'f0548d9a8d5e31d5c7f73e8729b55e8eb402852f'\nsilent! let g:plugs['vim-log-highlighting'].commit = '1037e26f3120e6a6a2c0c33b14a84336dee2a78f'\nsilent! let g:plugs['vim-quicklink'].commit = '021167741588555501594e1fc31f130b16acefa0'\nsilent! let g:plugs['vim-repeat'].commit = '24afe922e6a05891756ecf331f39a1f6743d3d5a'\nsilent! let g:plugs['vim-signify'].commit = '69498f6d49f3eeac06870012416dd9bf867b84f3'\nsilent! let g:plugs['vim-slime'].commit = '0ea9b35882155996171fd15a5227e673ce2d2c60'\nsilent! let g:plugs['vim-sneak'].commit = '94c2de47ab301d476a2baec9ffda07367046bec9'\nsilent! let g:plugs['vim-surround'].commit = '81fc0ec460dd8b25a76346e09aecdbca2677f1a7'\nsilent! let g:plugs['vim-test'].commit = '2240d7a4b868cb594b7d83544e1b6db4df806e5e'\nsilent! let g:plugs['vim-tmux-runner'].commit = '54767911fd5e6e2d8e493847149e315ac2e6531a'\nsilent! let g:plugs['vim-ultest'].commit = 'a99eb0bdf7d901d538b5dd724e2ab3a958c1799c'\nsilent! let g:plugs['vim-visualstar'].commit = 'a18cd0e7a03311ac709595c1d261ed44b45c9098'\nsilent! let g:plugs['vim-vsnip'].commit = '8f199ef690ed26dcbb8973d9a6760d1332449ac9'\n\nPlugUpdate!\n```\n\n\u003e NOTE! the `PlugUpdate!` at the end.  I did not catch this at first, if you\n\u003e are like me and automatically source `*.vim` files on save, this will\n\u003e immediately run the update when you save it.  If you just took the snapshot\n\u003e though I don't think it will actually do anything.\n\n## Let's Update\n\nNow without the snapshot sourced, I will not have any of my plugins pinned.\nWhen I run `:PlugUpdate` it will update all of my plugins to the latest\nversions.  Then I can `:PlugSnapshot` again, and this will kick out an updated\nlist of sha's.  I will yank this file `yyG` and paste it into my snapshot.vim\nfile `vGp`.\n\n## Look at these updates\n\nWe can see these updates with a little `:G diff %` on the file.\n\n```diff\ndiff --git a/nvim/.config/nvim/snapshot.vim b/nvim/.config/nvim/snapshot.vim\nindex 88db2b0..837c8e4 100644\n--- a/nvim/.config/nvim/snapshot.vim\n+++ b/nvim/.config/nvim/snapshot.vim\n@@ -1,14 +1,14 @@\n \" Generated by vim-plug\n-\" Fri 13 May 2022 08:01:39 PM CDT\n+\" Fri 13 May 2022 08:22:17 PM CDT\n \" :source this file in vim to restore the snapshot\n \" or execute: vim -S snapshot.vim\n\n silent! let g:plugs['Telegraph.nvim'].commit = '92e472f4e83acd60eb3766168e66d02718bfefe0'\n-silent! let g:plugs['black'].commit = '8ed3e3d07ea3e6d62e3e533e69f96a0ff148cd5d'\n+silent! let g:plugs['black'].commit = '7f033136ac5e0e5bf6cf322dd60b4a92050eedc4'\n silent! let g:plugs['bufutils.vim'].commit = '4634feb1312fd73fab66cfaa860e7af3abde935b'\n-silent! let g:plugs['cmp-buffer'].commit = 'd66c4c2d376e5be99db68d2362cd94d250987525'\n-silent! let g:plugs['cmp-calc'].commit = '970fd5f97b4bd363260365b217f694dd6a1182cb'\n-silent! let g:plugs['cmp-nvim-lsp'].commit = 'ebdfc204afb87f15ce3d3d3f5df0b8181443b5ba'\n+silent! let g:plugs['cmp-buffer'].commit = '12463cfcd9b14052f9effccbf1d84caa7a2d57f0'\n+silent! let g:plugs['cmp-calc'].commit = 'f7efc20768603bd9f9ae0ed073b1c129f63eb312'\n+silent! let g:plugs['cmp-nvim-lsp'].commit = 'e6b5feb2e6560b61f31c756fb9231a0d7b10c73d'\n silent! let g:plugs['cmp-path'].commit = '466b6b8270f7ba89abd59f402c73f63c7331ff6e'\n silent! let g:plugs['cmp-rg'].commit = 'fd92d70ff36b30924401b0cf7d4ce7344c8235f7'\n silent! let g:plugs['cmp-vsnip'].commit = '0abfa1860f5e095a07c477da940cfcb0d273b700'\n@@ -16,60 +16,60 @@ silent! let g:plugs['colorbuddy.nvim'].commit = 'cdb5b0654d3cafe61d2a845e15b2b4b\n silent! let g:plugs['compe-tmux'].commit = '3c16f7e73abee43b3ea3e919e8b34c24427d9530'\n silent! let g:plugs['coverage-highlight.vim'].commit = '864e03679ea4168661501246147893cc82020917'\n silent! let g:plugs['diffurcate.vim'].commit = 'b804675072220ff7c7ebcd24a028aa4aa35f09cc'\n-silent! let g:plugs['friendly-snippets'].commit = '5fd8b920a3497dec9a3ef939595186b362d041b4'\n-silent! let g:plugs['fzf'].commit = 'a91a67668e0830a8cf9a792c4949e03b4189f097'\n+silent! let g:plugs['friendly-snippets'].commit = '627dea2ff1ee8d8a7e6ad365acb3e335c8b25574'\n+silent! let g:plugs['fzf'].commit = '6dcf5c3d7d6c321b17e6a5673f1533d6e8350462'\n silent! let g:plugs['fzf.vim'].commit = 'd5f1f8641b24c0fd5b10a299824362a2a1b20ae0'\n-silent! let g:plugs['gitsigns.nvim'].commit = 'ead0d48df801431b990d6b91fa210f7efa30ac38'\n+silent! let g:plugs['gitsigns.nvim'].commit = 'ffd06e36f6067935d8cb9793905dd2e84e291310'\n silent! let g:plugs['gruvbox-flat.nvim'].commit = '756dbdd3dfd3ed84acb2f9649724df19ae41f904'\n-silent! let g:plugs['harpoon'].commit = '28762aa04d6395538e26e1efff5213b26720e68f'\n+silent! let g:plugs['harpoon'].commit = 'd3d3d22b6207f46f8ca64946f4d781e975aec0fc'\n silent! let g:plugs['impatient.nvim'].commit = '2337df7d778e17a58d8709f651653b9039946d8d'\n silent! let g:plugs['instant.nvim'].commit = 'c02d72267b12130609b7ad39b76cf7f4a3bc9554'\n silent! let g:plugs['lsp_extensions.nvim'].commit = '4011f4aec61ba59c734f5dbf52e91f258b99d985'\n-silent! let g:plugs['lsp_signature.nvim'].commit = 'a351509512687293fd659ba4ee7e34412c3a8f70'\n+silent! let g:plugs['lsp_signature.nvim'].commit = 'db324e2ada5bb795d0016ec0ef2b4ae7f11d8904'\n silent! let g:plugs['lspsaga.nvim'].commit = 'cb0e35d2e594ff7a9c408d2e382945d56336c040'\n-silent! let g:plugs['lualine.nvim'].commit = '18a07f790ed7ed1f11d1b130c02782e9dfd8dd7d'\n-silent! let g:plugs['nvim-cmp'].commit = '433af3dffce64cbd3f99bdac9734768a6cc41951'\n+silent! let g:plugs['lualine.nvim'].commit = 'a4e4517ac32441dd92ba869944741f0b5f468531'\n+silent! let g:plugs['nvim-cmp'].commit = '9a0c639ac2324e6e9ecc54dc22b1d32bb6c42ab9'\n silent! let g:plugs['nvim-compe'].commit = 'd186d739c54823e0b010feb205c6f97792322c08'\n-silent! let g:plugs['nvim-dap'].commit = 'd6d8317ce9e096029150bc5844916347a9af6f45'\n-silent! let g:plugs['nvim-dap-python'].commit = '4c7ea25f8ff6de6fa00bf5625d2e76753cced70f'\n-silent! let g:plugs['nvim-lspconfig'].commit = 'ad9903c66bac88f344890acb6532f63f1cd4dac3'\n+silent! let g:plugs['nvim-dap'].commit = '2249fcfd09cdc27c08e9d2f3be5268ba81db3378'\n+silent! let g:plugs['nvim-dap-python'].commit = 'd96bcbf3803283456c900cf25ab0995e8d2f00c0'\n+silent! let g:plugs['nvim-lspconfig'].commit = '9ff2a06cebd4c8c3af5259d713959ab310125bec'\n silent! let g:plugs['nvim-lspinstall'].commit = '79ec2425d6b39cdcb69d379f3e56847f49be73eb'\n silent! let g:plugs['nvim-lsputils'].commit = 'ae1a4a62449863ad82c70713d5b6108f3a07917c'\n silent! let g:plugs['nvim-spectre'].commit = '345e5dd57773e2b4b425a2515c831108b9808a0f'\n-silent! let g:plugs['nvim-tree.lua'].commit = 'ce463a53ae269544697c3dedd3d5beae05937405'\n-silent! let g:plugs['nvim-treesitter'].commit = '3c50297eca950b4b1a7c07b28e586b0576c0a796'\n-silent! let g:plugs['nvim-web-devicons'].commit = '4febe73506268a02ff15a240abcd7bf3eb9234da'\n+silent! let g:plugs['nvim-tree.lua'].commit = '82ec79aac5557c05728d88195fb0d008cacbf565'\n+silent! let g:plugs['nvim-treesitter'].commit = 'f1373051e554cc4642cda719c8023e4e8508eb2d'\n+silent! let g:plugs['nvim-web-devicons'].commit = 'bdd43421437f2ef037e0dafeaaaa62b31d35ef2f'\n silent! let g:plugs['onebuddy'].commit = '7e16006e7dde15e3cb72889f736c49409db6ff42'\n-silent! let g:plugs['onedark.nvim'].commit = 'e520a0c81a5a1997ecffd846ccd9c6e63b7859c6'\n-silent! let g:plugs['playground'].commit = '13e2d2d63ce7bc5d875e8bdf89cb070bc8cc7a00'\n-silent! let g:plugs['plenary.nvim'].commit = '9069d14a120cadb4f6825f76821533f2babcab92'\n+silent! let g:plugs['onedark.nvim'].commit = '08cde8acf181b3278dafb9c8284726104a11cc0f'\n+silent! let g:plugs['playground'].commit = '71b00a3c665298e5155ad64a9020135808d4e3e8'\n+silent! let g:plugs['plenary.nvim'].commit = '0a907364b5cd6e3438e230df7add8b9bb5ef6fd3'\n silent! let g:plugs['popfix'].commit = 'ea262861ce3905b90c2c203b74a7be2539f1aba4'\n silent! let g:plugs['popup.nvim'].commit = 'b7404d35d5d3548a82149238289fa71f7f6de4ac'\n-silent! let g:plugs['refactoring.nvim'].commit = '94eaa199ad892f26d2c8594dbbc5656314cf5bdb'\n-silent! let g:plugs['stylua-nvim'].commit = '8bd7fa127367178dddb9ee06fdce1d7c622d2feb'\n+silent! let g:plugs['refactoring.nvim'].commit = '33ac6f3bcfe97447037ded20291d40de34d8912c'\n+silent! let g:plugs['stylua-nvim'].commit = 'ce59a353f02938cba3e0285e662fcd3901cd270f'\n silent! let g:plugs['targets.vim'].commit = '8d6ff2984cdfaebe5b7a6eee8f226a6dd1226f2d'\n silent! let g:plugs['telescope-dap.nvim'].commit = 'b4134fff5cbaf3b876e6011212ed60646e56f060'\n-silent! let g:plugs['telescope.nvim'].commit = '8b02088743c07c2f82aec2772fbd2b3774195448'\n+silent! let g:plugs['telescope.nvim'].commit = '39b12d84e86f5054e2ed98829b367598ae53ab41'\n silent! let g:plugs['termopen.vim'].commit = '3194a991a18a9be2fd9fcf8c4c55fe990c04b2bd'\n silent! let g:plugs['undotree'].commit = '08e259be24d4476c1ee745dc735eefd44f90efdc'\n silent! let g:plugs['vim-be-good'].commit = 'bc499a06c14c729b22a6cc7e730a9fbc44d4e737'\n silent! let g:plugs['vim-commentary'].commit = '3654775824337f466109f00eaf6759760f65be34'\n silent! let g:plugs['vim-dispatch'].commit = '00e77d90452e3c710014b26dc61ea919bc895e92'\n-silent! let g:plugs['vim-doge'].commit = '88d8dfacc3a5f3dfce82ef5221e5e6943e627d85'\n-silent! let g:plugs['vim-floaterm'].commit = '6244d1739aad6682c6c1d5db18c846c342af6e3e'\n-silent! let g:plugs['vim-fugitive'].commit = 'b5bbd0d181ebc3cea5c42bdaed13141850432ba1'\n+silent! let g:plugs['vim-doge'].commit = 'd5b08d01f64396557d9912b3830717d45671764b'\n+silent! let g:plugs['vim-floaterm'].commit = 'ab7876f86c05c1935eb23a193f4f276132902ac1'\n+silent! let g:plugs['vim-fugitive'].commit = 'a8139d37b242c5bc5ceeddc4fcd7dddf2b2c2650'\n silent! let g:plugs['vim-indent-object'].commit = '5c5b24c959478929b54a9e831a8e2e651a465965'\n silent! let g:plugs['vim-ipython-cell'].commit = 'f0548d9a8d5e31d5c7f73e8729b55e8eb402852f'\n silent! let g:plugs['vim-log-highlighting'].commit = '1037e26f3120e6a6a2c0c33b14a84336dee2a78f'\n silent! let g:plugs['vim-quicklink'].commit = '021167741588555501594e1fc31f130b16acefa0'\n silent! let g:plugs['vim-repeat'].commit = '24afe922e6a05891756ecf331f39a1f6743d3d5a'\n silent! let g:plugs['vim-signify'].commit = '69498f6d49f3eeac06870012416dd9bf867b84f3'\n-silent! let g:plugs['vim-slime'].commit = '0ea9b35882155996171fd15a5227e673ce2d2c60'\n+silent! let g:plugs['vim-slime'].commit = '6e4b81303968f37346925d6907b96ef07788cc82'\n silent! let g:plugs['vim-sneak'].commit = '94c2de47ab301d476a2baec9ffda07367046bec9'\n-silent! let g:plugs['vim-surround'].commit = '81fc0ec460dd8b25a76346e09aecdbca2677f1a7'\n+silent! let g:plugs['vim-surround'].commit = 'bf3480dc9ae7bea34c78fbba4c65b4548b5b1fea'\n silent! let g:plugs['vim-test'].commit = '2240d7a4b868cb594b7d83544e1b6db4df806e5e'\n silent! let g:plugs['vim-tmux-runner'].commit = '54767911fd5e6e2d8e493847149e315ac2e6531a'\n-silent! let g:plugs['vim-ultest'].commit = 'a99eb0bdf7d901d538b5dd724e2ab3a958c1799c'\n+silent! let g:plugs['vim-ultest'].commit = '6978fd32e3ca2c1c5591884eea0d57a7ee43d212'\n silent! let g:plugs['vim-visualstar'].commit = 'a18cd0e7a03311ac709595c1d261ed44b45c9098'\n silent! let g:plugs['vim-vsnip'].commit = '8f199ef690ed26dcbb8973d9a6760d1332449ac9'\n```\n\n## Commits\n\nNow I can look through all the versions of my `snapshot.vim` by opening it,\nrunning `:0Gclog` and navigating the quickfix list with `:cnext` and `:cprev`.\nIf I want to install one of the old versions while its open in a buffer, all I\nneed to do is run `:source %`.\n\n## Log\n\nNow the log of my `snapshots.vim` looks like this.  I saved the working\nversion, and successfully updated to the latest versions of all plugins, with a\nsave point I can revert back to.\n\n``` log\ncommit 20e901196b0d9633a42176f1fe1757e45f709fd3\nAuthor: Waylon S. Walker \u003cwaylon@waylonwalker.com\u003e\nDate:   Fri May 13 20:37:03 2022 -0500\n\n    plugupdate\n\ncommit f9d76368697b4c4427c0fa8ccd5e2449b6e5a9ff\nAuthor: Waylon S. Walker \u003cwaylon@waylonwalker.com\u003e\nDate:   Fri May 13 20:16:11 2022 -0500\n\n    commit my plugin snapshot\n```\n",
      "summary": "A few of my friends and I all just borked our neovim configs during a plug update, and because none of us were using it was painful to recover from.",
      "date_published": "2022-05-13T19:56:38Z",
      "date_modified": "2022-05-13T19:56:38Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "vim"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/clean-qutebrowser/",
      "url": "https://go.waylonwalker.com/clean-qutebrowser/",
      "title": "qutebrowser clean up all status bars",
      "content_html": "\u003cp\u003eI really like the super clean look of no status menus, no url bar, no bookmarks\nbar, nothing.  Don’t get me wrong these things are useful, but honestly they\ntake up screen real estate and I RARELY look at them.  What I really want is a\ntoggle hotkey.  I found this one from one of DT’s youtube video’s.  I can now\ntap \u003ccode\u003exx\u003c/code\u003e and both the status bar at the botton and the address bar at the top\ndisappear.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# ~/.config/qutebrowser/config.py\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003econfig\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ebind\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;xb\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;config-cycle statusbar.show always never\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003econfig\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ebind\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;xt\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;config-cycle tabs.show always never\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003econfig\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ebind\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;xx\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;config-cycle statusbar.show always never;; config-cycle tabs.show always never\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nI really like the super clean look of no status menus, no url bar, no bookmarks\nbar, nothing.  Don't get me wrong these things are useful, but honestly they\ntake up screen real estate and I RARELY look at them.  What I really want is a\ntoggle hotkey.  I found this one from one of DT's youtube video's.  I can now\ntap `xx` and both the status bar at the botton and the address bar at the top\ndisappear.\n\n``` python\n# ~/.config/qutebrowser/config.py\n\nconfig.bind(\"xb\", \"config-cycle statusbar.show always never\")\nconfig.bind(\"xt\", \"config-cycle tabs.show always never\")\nconfig.bind(\n    \"xx\",\n    \"config-cycle statusbar.show always never;; config-cycle tabs.show always never\",\n)\n```\n",
      "summary": "I really like the super clean look of no status menus, no url bar, no bookmarks bar, nothing. Don't get me wrong these things are useful, but honestly they...",
      "date_published": "2022-05-11T22:03:30Z",
      "date_modified": "2022-05-11T22:03:30Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "linux",
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/qutebroswer-write-config-py/",
      "url": "https://go.waylonwalker.com/qutebroswer-write-config-py/",
      "title": "convert your qutebrowser config to config.py",
      "content_html": "\u003cp\u003eWhen you first start qutebrowser It will create some config files in\nyour home directory for you, but they will be empty.\u003c/p\u003e\n\u003ch2 id=\"config\"\u003eConfig \u003ca href=\"#config\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAs far as I know qutebrowser will create this default config out of the\nbox for you, if it doesn’t, then somehow it just appeared for me 😁.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ tree ~/.config/qutebrowser\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e/home/waylon/.config/qutebrowser\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e├── autoconfig.yml\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e├── bookmarks\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│   └── urls\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e├── config.py\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e├── greasemonkey\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e└── quickmarks\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"m\"\u003e2\u003c/span\u003e directories, \u003cspan class=\"m\"\u003e5\u003c/span\u003e files\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"why-convert\"\u003eWhy convert \u003ca href=\"#why-convert\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eYou might want to confvert if you are more comfortable with the python\nconfig, or if like me you just want config in one place and you are\nstealing configuration options from others who have thiers in config.py.\u003c/p\u003e\n\u003ch2 id=\"convert-to-py\"\u003eConvert to py \u003ca href=\"#convert-to-py\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre\u003e\u003ccode\u003e\u003c/code\u003e\u003c/pre\u003e\n",
      "content_text": "\nWhen you first start qutebrowser It will create some config files in\nyour home directory for you, but they will be empty.\n\n## Config\n\nAs far as I know qutebrowser will create this default config out of the\nbox for you, if it doesn't, then somehow it just appeared for me 😁.\n\n``` bash\n❯ tree ~/.config/qutebrowser\n/home/waylon/.config/qutebrowser\n├── autoconfig.yml\n├── bookmarks\n│   └── urls\n├── config.py\n├── greasemonkey\n└── quickmarks\n\n2 directories, 5 files\n```\n\n## Why convert\n\nYou might want to confvert if you are more comfortable with the python\nconfig, or if like me you just want config in one place and you are\nstealing configuration options from others who have thiers in config.py.\n\n## Convert to py\n\n```\n```\n",
      "summary": "When you first start qutebrowser It will create some config files in your home directory for you, but they will be empty.",
      "date_published": "2022-05-11T07:16:34Z",
      "date_modified": "2022-05-11T07:16:34Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/ewhich/",
      "url": "https://go.waylonwalker.com/ewhich/",
      "title": "Bash function to edit scripts faster",
      "content_html": "\u003cp\u003eI am often editing my own scripts as I develop them. I want to make a better\nworkflow for working with scripts like this.\u003c/p\u003e\n\u003ch2 id=\"currently\"\u003eCurrently \u003ca href=\"#currently\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eCurrently I am combining \u003ccode\u003envim\u003c/code\u003e with a \u003ccode\u003ewhich\u003c/code\u003e subshell to etit these files\nlike this.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003efor now lets use my todo command as an example\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003envim \u003cspan class=\"sb\"\u003e`\u003c/span\u003ewhich todo\u003cspan class=\"sb\"\u003e`\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"first-pass\"\u003eFirst pass \u003ca href=\"#first-pass\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eOn first pass I made a bash function to do exactly what I have been doing.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eewhich \u003cspan class=\"o\"\u003e()\u003c/span\u003e \u003cspan class=\"o\"\u003e{\u003c/span\u003e\u003cspan class=\"nv\"\u003e$EDITOR\u003c/span\u003e \u003cspan class=\"sb\"\u003e`\u003c/span\u003ewhich \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"nv\"\u003e$1\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"sb\"\u003e`\u003c/span\u003e\u003cspan class=\"o\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eThe \u003ccode\u003e$1\u003c/code\u003e will pass the first input to the which subshell.  Now we can edit our todo script like this.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eewich todo\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003eNote, I use bash functions instead of aliases for things that require input.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"final-state\"\u003eFinal State \u003ca href=\"#final-state\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis works fine for commands that are files, but not aliases or shell\nfunctions.  Next I jumped to looking at the output of \u003ccode\u003ecommand -V $1\u003c/code\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eif the command is not found, search for a file\u003c/li\u003e\n\u003cli\u003eif its a builtin, exit\u003c/li\u003e\n\u003cli\u003eif its an alias, open my \u003ccode\u003e~/.alias file to that line\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eif its a function, open my \u003ccode\u003e~/.alias file to that line\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eewhich \u003cspan class=\"o\"\u003e()\u003c/span\u003e \u003cspan class=\"o\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003ecase\u003c/span\u003e \u003cspan class=\"sb\"\u003e`\u003c/span\u003e\u003cspan class=\"nb\"\u003ecommand\u003c/span\u003e -V \u003cspan class=\"nv\"\u003e$1\u003c/span\u003e\u003cspan class=\"sb\"\u003e`\u003c/span\u003e in\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"nv\"\u003e$1\u003c/span\u003e\u003cspan class=\"s2\"\u003e not found\u0026#34;\u003c/span\u003e\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"nv\"\u003eFILE\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"sb\"\u003e`\u003c/span\u003efzf --prompt \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"nv\"\u003e$1\u003c/span\u003e\u003cspan class=\"s2\"\u003e not found searching ...\u0026#34;\u003c/span\u003e --query \u003cspan class=\"nv\"\u003e$1\u003c/span\u003e\u003cspan class=\"sb\"\u003e`\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"o\"\u003e[\u003c/span\u003e -z \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"nv\"\u003e$FILE\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e \u003cspan class=\"o\"\u003e]\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e \u003cspan class=\"nb\"\u003eecho\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;closing\u0026#34;\u003c/span\u003e \u003cspan class=\"o\"\u003e||\u003c/span\u003e \u003cspan class=\"nv\"\u003e$EDITOR\u003c/span\u003e \u003cspan class=\"nv\"\u003e$FILE\u003c/span\u003e\u003cspan class=\"p\"\u003e;;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    *\u003cspan class=\"s2\"\u003e\u0026#34;is a shell builtin\u0026#34;\u003c/span\u003e*\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"nb\"\u003eecho\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"nv\"\u003e$1\u003c/span\u003e\u003cspan class=\"s2\"\u003e is a builtin\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e;;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    *\u003cspan class=\"s2\"\u003e\u0026#34;is an alias\u0026#34;\u003c/span\u003e*\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"nv\"\u003e$EDITOR\u003c/span\u003e ~/.alias +/alias\u003cspan class=\"se\"\u003e\\ \u003c/span\u003e\u003cspan class=\"nv\"\u003e$1\u003c/span\u003e\u003cspan class=\"p\"\u003e;;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    *\u003cspan class=\"s2\"\u003e\u0026#34;is a shell function\u0026#34;\u003c/span\u003e*\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"nv\"\u003e$EDITOR\u003c/span\u003e ~/.alias +/^\u003cspan class=\"nv\"\u003e$1\u003c/span\u003e\u003cspan class=\"p\"\u003e;;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    *\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"nv\"\u003e$EDITOR\u003c/span\u003e \u003cspan class=\"sb\"\u003e`\u003c/span\u003ewhich \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"nv\"\u003e$1\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"sb\"\u003e`\u003c/span\u003e\u003cspan class=\"p\"\u003e;;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eesac\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"a-bit-more-ergo-and-less-readable\"\u003ea bit more ergo, and less readable \u003ca href=\"#a-bit-more-ergo-and-less-readable\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eTo make it easier to type, at the sacrifice of readability for anyone watching\nI added a single character \u003ccode\u003ee\u003c/code\u003e alias to ewhich.  So when I want to edit\nanything I just use \u003ccode\u003ee\u003c/code\u003e.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003ealias\u003c/span\u003e \u003cspan class=\"nv\"\u003ee\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003eewhich\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"results\"\u003eResults \u003ca href=\"#results\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eHere is a quick screencast of how it works.\u003c/p\u003e\n\u003cvideo autoplay=\"\" controls=\"\" loop=\"true\" muted=\"\" playsinline=\"\" width=\"100%\"\u003e\n     \u003csource src=\"https://images.waylonwalker.com/ewhich.webm\" type=\"video/webm\"/\u003e\n     Sorry, your browser doesn\u0026#39;t support embedded videos.\n\u003c/video\u003e\n",
      "content_text": "\nI am often editing my own scripts as I develop them. I want to make a better\nworkflow for working with scripts like this.\n\n## Currently\n\nCurrently I am combining `nvim` with a `which` subshell to etit these files\nlike this.\n\n\u003e for now lets use my todo command as an example\n\n``` bash\nnvim `which todo`\n```\n\n## First pass\n\nOn first pass I made a bash function to do exactly what I have been doing.\n\n```bash\newhich () {$EDITOR `which \"$1\"`}\n```\n\nThe `$1` will pass the first input to the which subshell.  Now we can edit our todo script like this.\n\n```bash\newich todo\n```\n\n\u003e  Note, I use bash functions instead of aliases for things that require input.\n\n## Final State\n\nThis works fine for commands that are files, but not aliases or shell\nfunctions.  Next I jumped to looking at the output of `command -V $1`.\n\n* if the command is not found, search for a file\n* if its a builtin, exit\n* if its an alias, open my `~/.alias file to that line`\n* if its a function, open my `~/.alias file to that line`\n\n``` bash\newhich () {\ncase `command -V $1` in\n    \"$1 not found\")\n        FILE=`fzf --prompt \"$1 not found searching ...\" --query $1`\n        [ -z \"$FILE\" ] \u0026\u0026 echo \"closing\" || $EDITOR $FILE;;\n    *\"is a shell builtin\"*)\n        echo \"$1 is a builtin\";;\n    *\"is an alias\"*)\n        $EDITOR ~/.alias +/alias\\ $1;;\n    *\"is a shell function\"*)\n        $EDITOR ~/.alias +/^$1;;\n    *)\n        $EDITOR `which \"$1\"`;;\nesac\n```\n\n## a bit more ergo, and less readable\n\nTo make it easier to type, at the sacrifice of readability for anyone watching\nI added a single character `e` alias to ewhich.  So when I want to edit\nanything I just use `e`.\n\n```bash\nalias e=ewhich\n```\n\n## Results\n\nHere is a quick screencast of how it works.\n\n\u003cvideo autoplay=\"\" controls=\"\" loop=\"true\" muted=\"\" playsinline=\"\" width=\"100%\"\u003e\n     \u003csource src=\"https://images.waylonwalker.com/ewhich.webm\" type=\"video/webm\"\u003e\n     Sorry, your browser doesn't support embedded videos.\n\u003c/video\u003e\n",
      "summary": "I am often editing my own scripts as I develop them. I want to make a better workflow for working with scripts like this.",
      "date_published": "2022-05-10T14:57:35Z",
      "date_modified": "2022-05-10T14:57:35Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "bash"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/git-python-all-commits/",
      "url": "https://go.waylonwalker.com/git-python-all-commits/",
      "title": "List all git commits with GitPython",
      "content_html": "\u003cp\u003eI am getting ready to do some timeseries analysis on a \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e repo with python, my\nfirst step is to figure out a way to list all of the git commits so that I can\nanalyze each one however I want.  The GitPython library made this almost\ntrivial once I realized how.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003egit\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eRepo\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003erepo\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eRepo\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;.\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ecommits\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003erepo\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eiter_commits\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eThis returns a generator, if you are iterating over them this is likely what\nyou want.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ecommits\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# \u0026lt;generator object Commit._iter_from_process_or_stream at 0x7f3307584510\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eThe generator will return \u003ccode\u003egit.Commit\u003c/code\u003e objects with lots of information about\neach commit such as \u003ccode\u003ehexsha\u003c/code\u003e, \u003ccode\u003eauthor\u003c/code\u003e, \u003ccode\u003ecommited_datetime\u003c/code\u003e, \u003ccode\u003egpgsig\u003c/code\u003e, and\n\u003ccode\u003emessage\u003c/code\u003e.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003enext\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ecommits\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# \u0026lt;git.Commit \u0026#34;d125317892d0fab10a36638a2d23356ba25c5621\u0026#34;\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nI am getting ready to do some timeseries analysis on a git repo with python, my\nfirst step is to figure out a way to list all of the git commits so that I can\nanalyze each one however I want.  The GitPython library made this almost\ntrivial once I realized how.\n\n``` python\nfrom git import Repo\n\nrepo = Repo('.')\ncommits = repo.iter_commits()\n```\n\nThis returns a generator, if you are iterating over them this is likely what\nyou want.\n\n``` python\ncommits\n# \u003cgenerator object Commit._iter_from_process_or_stream at 0x7f3307584510\u003e\n```\n\nThe generator will return `git.Commit` objects with lots of information about\neach commit such as `hexsha`, `author`, `commited_datetime`, `gpgsig`, and\n`message`.\n\n``` python\nnext(commits)\n# \u003cgit.Commit \"d125317892d0fab10a36638a2d23356ba25c5621\"\u003e\n```\n",
      "summary": "I am getting ready to do some timeseries analysis on a git repo with python, my first step is to figure out a way to list all of the git commits so that I...",
      "date_published": "2022-05-09T21:24:12Z",
      "date_modified": "2022-05-09T21:24:12Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "git"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/gpg-sign-git-ssh/",
      "url": "https://go.waylonwalker.com/gpg-sign-git-ssh/",
      "title": "GPG signing commits over ssh",
      "content_html": "\u003cp\u003eI was editing some blog posts over ssh, when I ran into\nthis error.  gpg was failing to sign my commits.  I\nrealized that this was because I could not answer to the\ndesktop keyring over ssh, but had no idea how to fix it.\u003c/p\u003e\n\u003ch2 id=\"error\"\u003eError \u003ca href=\"#error\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis is the error message I was seeing.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003egpg failed to sign the data ssh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2 id=\"the-fix\"\u003eThe fix \u003ca href=\"#the-fix\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe fix ended up being pretty simple, but quite a ways down this \u003ca href=\"https://stackoverflow.com/questions/41052538/git-error-gpg-failed-to-sign-data/41054093\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/stackoverflow.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/stackoverflow.com.ico\" class=\"has-avatar  has-avatar-before\"\u003estack overflow post\u003c/a\u003e.\nThis environment variable tells gpg that we are not logged\ninto a desktop and it does not try to use the desktop\nkeyring, and asks to unlog the gpgkey right in the\nterminal.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eexport\u003c/span\u003e \u003cspan class=\"nv\"\u003eGPG_TTY\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"k\"\u003e$(\u003c/span\u003etty\u003cspan class=\"k\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"the-log-in-menu\"\u003eThe log in menu \u003ca href=\"#the-log-in-menu\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis is what it looks like when it asks for the passphrase.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://images.waylonwalker.com/gpg-passphrase-unlock.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://images.waylonwalker.com/gpg-passphrase-unlock.png\" alt=\"enter your passphrase to unlock your gpg key\"/ data-glightbox=\"description: enter your passphrase to unlock your gpg key\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"edit-another-way\"\u003eEDIT-another way \u003ca href=\"#edit-another-way\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eSo this did not fix the issue on Arch BTW, and I have seen it not work for wsl\nusers either.  This did work for me and reported to have worked by a wsl user\non a github issue.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eecho\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;\u0026#39;\u003c/span\u003e \u003cspan class=\"p\"\u003e|\u003c/span\u003e gpg --clearsign\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eThis will unlock the gpg key then let you commit.\u003c/p\u003e\n",
      "content_text": "\nI was editing some blog posts over ssh, when I ran into\nthis error.  gpg was failing to sign my commits.  I\nrealized that this was because I could not answer to the\ndesktop keyring over ssh, but had no idea how to fix it.\n\n## Error\n\nThis is the error message I was seeing.\n\n```\ngpg failed to sign the data ssh\n```\n\n## The fix\n\nThe fix ended up being pretty simple, but quite a ways down this [stack overflow post](https://stackoverflow.com/questions/41052538/git-error-gpg-failed-to-sign-data/41054093).\nThis environment variable tells gpg that we are not logged\ninto a desktop and it does not try to use the desktop\nkeyring, and asks to unlog the gpgkey right in the\nterminal.\n\n``` bash\nexport GPG_TTY=$(tty)\n```\n\n## The log in menu\n\nThis is what it looks like when it asks for the passphrase.\n\n![enter your passphrase to unlock your gpg key](https://images.waylonwalker.com/gpg-passphrase-unlock.png)\n\n## EDIT-another way\n\nSo this did not fix the issue on Arch BTW, and I have seen it not work for wsl\nusers either.  This did work for me and reported to have worked by a wsl user\non a github issue.\n\n``` bash\necho '' | gpg --clearsign\n```\n\nThis will unlock the gpg key then let you commit.\n",
      "summary": "I was editing some blog posts over ssh, when I ran into this error. gpg was failing to sign my commits. I realized that this was because I could not answer...",
      "date_published": "2022-05-08T15:09:59Z",
      "date_modified": "2022-05-08T15:09:59Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "git"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/links/",
      "url": "https://go.waylonwalker.com/links/",
      "title": "Links",
      "content_html": "\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://twitter.com/_WaylonWalker\"\u003etwitter\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://twitch.com/WaylonWalker\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/twitch.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/twitch.com.png\" class=\"has-avatar  has-avatar-before\"\u003etwitch\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/WaylonWalker\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003egithub\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://dev.to/waylonwalker\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/dev.to.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/dev.to.ico\" class=\"has-avatar  has-avatar-before\"\u003edev.to\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.linkedin.com/in/waylonwalker/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.linkedin.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.linkedin.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eLinkedIn\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.youtube.com/waylonwalker\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003eYouTube\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\n- [twitter](https://twitter.com/_WaylonWalker)\n- [twitch](https://twitch.com/WaylonWalker)\n- [github](https://github.com/WaylonWalker)\n- [dev.to](https://dev.to/waylonwalker)\n- [LinkedIn](https://www.linkedin.com/in/waylonwalker/)\n- [YouTube](https://www.youtube.com/waylonwalker)\n",
      "summary": "twitter - twitch - github - dev.to - LinkedIn - YouTube",
      "date_published": "2022-05-07T01:10:50Z",
      "date_modified": "2022-05-07T01:10:50Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "meta"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/review-pull-requests-with-git-worktrees/",
      "url": "https://go.waylonwalker.com/review-pull-requests-with-git-worktrees/",
      "title": "Review Pull Requests with git worktrees",
      "content_html": "\u003cp\u003eSometimes you get a PR on a project, but cannot review it without wrecking your\ncurrent working setup.  This might be because it needs to be compiled, or a new\nset of requirements.  \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003eGit\u003c/a\u003e worktrees is a great way to chekout the remote branch\nin a completely separate directory to avoid changing any files in your current\nproject.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# pattern\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# git worktree add -b \u0026lt;branch-name\u0026gt; \u0026lt;PATH\u0026gt; \u0026lt;remote\u0026gt;/\u0026lt;branch-name\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit worktree add -b fix-aws-service-cnsn /tmp/project origin/fix-aws-service-cnsn\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eThis will create a new directory \u003ccode\u003e/tmp/project\u003c/code\u003e that you can review the branch\n\u003ccode\u003efix-aws-service-cnsn\u003c/code\u003e from the remote \u003ccode\u003eorigin\u003c/code\u003e.  If you have setup different remotes locally you can check for the name of it with \u003ccode\u003egit remote -v\u003c/code\u003e\u003c/p\u003e\n",
      "content_text": "\nSometimes you get a PR on a project, but cannot review it without wrecking your\ncurrent working setup.  This might be because it needs to be compiled, or a new\nset of requirements.  Git worktrees is a great way to chekout the remote branch\nin a completely separate directory to avoid changing any files in your current\nproject.\n\n``` bash\n# pattern\n# git worktree add -b \u003cbranch-name\u003e \u003cPATH\u003e \u003cremote\u003e/\u003cbranch-name\u003e\ngit worktree add -b fix-aws-service-cnsn /tmp/project origin/fix-aws-service-cnsn\n```\n\nThis will create a new directory `/tmp/project` that you can review the branch\n`fix-aws-service-cnsn` from the remote `origin`.  If you have setup different remotes locally you can check for the name of it with `git remote -v`\n",
      "summary": "Sometimes you get a PR on a project, but cannot review it without wrecking your current working setup. This might be because it needs to be compiled, or a...",
      "date_published": "2022-05-04T14:31:05Z",
      "date_modified": "2022-05-04T14:31:05Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "git"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/python-git/",
      "url": "https://go.waylonwalker.com/python-git/",
      "title": "Using Git from Python",
      "content_html": "\u003cp\u003e\u003ccode\u003eGitPython\u003c/code\u003e is a python api for your \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e repos, it can be quite handy when you\nneed to work with git from python.\u003c/p\u003e\n\u003ch2 id=\"use-case\"\u003eUse Case \u003ca href=\"#use-case\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI recently made myself a handy tool for making screenshots in python and it\nneed to do a git commit and push from within the script.  For this I reached\nfor \u003ccode\u003eGitPython\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/screenshot-to-blog/\" class=\"wikilink\" data-title=\"How I Quickly Capture Screenshots directly into My Blog\" data-description=\"When I am creating blog posts it\u0026#39;s often helpful to add screenshots to them to illustrate what I see on my screen. Sometimes I lack good screenshots in my...\" data-date=\"2022-04-30\" data-preview=\"When I am creating blog posts it\u0026#39;s often helpful to add screenshots to them to illustrate what I see on my screen. Sometimes I lack good screenshots in my...\"\u003eHow I Quickly Capture Screenshots directly into My Blog\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"installation\"\u003eInstallation \u003ca href=\"#installation\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eGitPython\u003c/code\u003e is a python library hosted on pypi that we will want to install\ninto our virtual environments using pip.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epip\u003c/span\u003e \u003cspan class=\"n\"\u003einstall\u003c/span\u003e \u003cspan class=\"n\"\u003eGitPython\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"create-a-repo-object\"\u003eCreate a Repo Object \u003ca href=\"#create-a-repo-object\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eImport Repo from the git library and create an instance of the \u003ccode\u003eRepo\u003c/code\u003e object by\ngiving it a path to the directory containing your \u003ccode\u003e.git\u003c/code\u003e directory.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003egit\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eRepo\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003erepo\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eRepo\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;~/git/waylonwalker.com/\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"two-interfaces\"\u003eTwo interfaces \u003ca href=\"#two-interfaces\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003efrom the docs\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eIt provides abstractions of git objects for easy access of repository data,\nand additionally allows you to access the git repository more directly using\neither a pure python implementation, or the faster, but more resource\nintensive git command implementation.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eI only needed to use the more intensive but familar to me git command\nimplementation to get me project off the ground.  There is a good\n\u003ca href=\"https://gitpython.readthedocs.io/en/stable/tutorial.html#tutorial-label\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/gitpython.readthedocs.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/gitpython.readthedocs.io.ico\" class=\"has-avatar  has-avatar-before\"\u003etutorial\u003c/a\u003e\nto get you started with their pure python implementation in their docs.\u003c/p\u003e\n\u003ch2 id=\"status\"\u003eStatus \u003ca href=\"#status\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eRequesting the git status can be done as follows.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003enote I have prefixed my commands with »\u0026gt; to distinguish between the command\nI entered and the output.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026gt;\u0026gt;\u0026gt; print(repo.git.status())\n\nOn branch main\nYour branch is ahead of \u0026#39;origin/main\u0026#39; by 1 commit.\n  (use \u0026#34;git push\u0026#34; to publish your local commits)\n\nUntracked files:\n  (use \u0026#34;git add \u0026lt;file\u0026gt;...\u0026#34; to include in what will be committed)\n        blog/\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eYou can even pass in flags that you would pass into the cli.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026gt;\u0026gt;\u0026gt; print(repo.git.status(\u0026#34;-s\u0026#34;))\n?? blog/\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2 id=\"log\"\u003elog \u003ca href=\"#log\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eExample of using the log.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003erepo\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003egit\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003elog\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;--oneline\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;--graph\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e*\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"n\"\u003ed28bd8\u003c/span\u003e \u003cspan class=\"n\"\u003efix\u003c/span\u003e \u003cspan class=\"n\"\u003ebroken\u003c/span\u003e \u003cspan class=\"n\"\u003eimage\u003c/span\u003e \u003cspan class=\"n\"\u003elink\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e*\u003c/span\u003e \u003cspan class=\"mi\"\u003e3573928\u003c/span\u003e \u003cspan class=\"n\"\u003ewip\u003c/span\u003e \u003cspan class=\"n\"\u003escreenshot\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eto\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eblog\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e*\u003c/span\u003e \u003cspan class=\"n\"\u003efed9abc\u003c/span\u003e \u003cspan class=\"n\"\u003ewip\u003c/span\u003e \u003cspan class=\"n\"\u003escreenshot\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eto\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eblog\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e*\u003c/span\u003e \u003cspan class=\"n\"\u003ed383780\u003c/span\u003e \u003cspan class=\"n\"\u003eupdate\u003c/span\u003e \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003ewsl2\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e*\u003c/span\u003e \u003cspan class=\"n\"\u003ead72b14\u003c/span\u003e \u003cspan class=\"n\"\u003ewip\u003c/span\u003e \u003cspan class=\"n\"\u003escreenshot\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eto\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eblog\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e*\u003c/span\u003e \u003cspan class=\"mi\"\u003e144\u003c/span\u003e\u003cspan class=\"n\"\u003ec2f3\u003c/span\u003e \u003cspan class=\"n\"\u003egratitude\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"mi\"\u003e180\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"find-deleted-files\"\u003eFind Deleted Files \u003ca href=\"#find-deleted-files\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWe can even do things like find all files that have been deleted and the hash\nthey were deleted.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003erepo\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003egit\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003elog\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;--diff-filter\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;D\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;--name-only\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;--pretty=format:\u0026#34;%h\u0026#34;\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003ca href=\"/git-find-deleted-files/\" class=\"wikilink\" data-title=\"git find deleted files\" data-description=\"It\u0026#39;s nearly impossible to completely loose a file if it is commited to git. It\u0026#39;s likely harder to fully remove the file than it is to recover it, but how do...\" data-date=\"2022-02-28\" data-preview=\"It\u0026#39;s nearly impossible to completely loose a file if it is commited to git. It\u0026#39;s likely harder to fully remove the file than it is to recover it, but how do...\"\u003egit find deleted files\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003efull post on finding deleted files\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"my-experience\"\u003eMy Experience \u003ca href=\"#my-experience\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis library seemed pretty straightforward and predicatable once I realized\nthere were two main implementations and that I would already be familar with\nthe more intensive git command implementation.\u003c/p\u003e\n",
      "content_text": "\n`GitPython` is a python api for your git repos, it can be quite handy when you\nneed to work with git from python.\n\n## Use Case\n\nI recently made myself a handy tool for making screenshots in python and it\nneed to do a git commit and push from within the script.  For this I reached\nfor `GitPython`.\n\n\u003ca href=\"/screenshot-to-blog/\" class=\"wikilink\" data-title=\"How I Quickly Capture Screenshots directly into My Blog\" data-description=\"When I am creating blog posts it\u0026#39;s often helpful to add screenshots to them to illustrate what I see on my screen. Sometimes I lack good screenshots in my...\" data-date=\"2022-04-30\"\u003eHow I Quickly Capture Screenshots directly into My Blog\u003c/a\u003e\n\n## Installation\n\n`GitPython` is a python library hosted on pypi that we will want to install\ninto our virtual environments using pip.\n\n``` python\npip install GitPython\n```\n\n## Create a Repo Object\n\nImport Repo from the git library and create an instance of the `Repo` object by\ngiving it a path to the directory containing your `.git` directory.\n\n``` python\nfrom git import Repo\nrepo = Repo('~/git/waylonwalker.com/')\n```\n\n## Two interfaces\n\nfrom the docs\n\n\u003e It provides abstractions of git objects for easy access of repository data,\n\u003e and additionally allows you to access the git repository more directly using\n\u003e either a pure python implementation, or the faster, but more resource\n\u003e intensive git command implementation.\n\nI only needed to use the more intensive but familar to me git command\nimplementation to get me project off the ground.  There is a good\n[tutorial](https://gitpython.readthedocs.io/en/stable/tutorial.html#tutorial-label)\nto get you started with their pure python implementation in their docs.\n\n## Status\n\nRequesting the git status can be done as follows.\n\n\u003e note I have prefixed my commands with \u003e\u003e\u003e to distinguish between the command\n\u003e I entered and the output.\n\n```\n\u003e\u003e\u003e print(repo.git.status())\n\nOn branch main\nYour branch is ahead of 'origin/main' by 1 commit.\n  (use \"git push\" to publish your local commits)\n\nUntracked files:\n  (use \"git add \u003cfile\u003e...\" to include in what will be committed)\n        blog/\n```\n\nYou can even pass in flags that you would pass into the cli.\n\n```\n\u003e\u003e\u003e print(repo.git.status(\"-s\"))\n?? blog/\n```\n\n## log\n\nExample of using the log.\n\n``` python\nprint(repo.git.log('--oneline', '--graph'))\n\n* 0d28bd8 fix broken image link\n* 3573928 wip screenshot-to-blog\n* fed9abc wip screenshot-to-blog\n* d383780 update for wsl2\n* ad72b14 wip screenshot-to-blog\n* 144c2f3 gratitude-180\n```\n\n## Find Deleted Files\n\nWe can even do things like find all files that have been deleted and the hash\nthey were deleted.\n\n``` python\nprint(repo.git.log('--diff-filter', 'D', '--name-only', '--pretty=format:\"%h\"'))\n```\n\n\u003ca href=\"/git-find-deleted-files/\" class=\"wikilink\" data-title=\"git find deleted files\" data-description=\"It\u0026#39;s nearly impossible to completely loose a file if it is commited to git. It\u0026#39;s likely harder to fully remove the file than it is to recover it, but how do...\" data-date=\"2022-02-28\"\u003egit find deleted files\u003c/a\u003e\n\n\u003e full post on finding deleted files\n\n## My Experience\n\nThis library seemed pretty straightforward and predicatable once I realized\nthere were two main implementations and that I would already be familar with\nthe more intensive git command implementation.\n",
      "summary": "is a python api for your git repos, it can be quite handy when you need to work with git from python.",
      "date_published": "2022-04-30T20:23:23Z",
      "date_modified": "2022-04-30T20:23:23Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "cli",
        "git"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/pipx-on-windows/",
      "url": "https://go.waylonwalker.com/pipx-on-windows/",
      "title": "pipx on windows",
      "content_html": "\u003cp\u003ePython, click install\u003c/p\u003e\n\u003cp\u003eEdit the System Environment Variables\u003c/p\u003e\n\u003cp\u003eEnvironment Variables button\u003c/p\u003e\n\u003cp\u003eAdd the following path to your users Path Variable\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eC:\\Program Files (x86)\\Common Files\\Oracle\\Java\\javapath;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\WINDOWS\\System32\\OpenSSH\\;C:\\Program Files (x86)\\NVIDIA Corporation\\PhysX\\Common;C:\\Program Files\\NVIDIA Corporation\\NVIDIA NvDLISR;C:\\Program Files\\dotnet\\;C:\\Users\\quadm\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\Scripts;\n\u003c/code\u003e\u003c/pre\u003e\n",
      "content_text": "\nPython, click install\n\nEdit the System Environment Variables\n\nEnvironment Variables button\n\nAdd the following path to your users Path Variable\n\n```\nC:\\Program Files (x86)\\Common Files\\Oracle\\Java\\javapath;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\WINDOWS\\System32\\OpenSSH\\;C:\\Program Files (x86)\\NVIDIA Corporation\\PhysX\\Common;C:\\Program Files\\NVIDIA Corporation\\NVIDIA NvDLISR;C:\\Program Files\\dotnet\\;C:\\Users\\quadm\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\Scripts;\n```\n",
      "summary": "Python, click install",
      "date_published": "2022-04-18T14:03:38Z",
      "date_modified": "2022-04-18T14:03:38Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/python-sys-excepthook/",
      "url": "https://go.waylonwalker.com/python-sys-excepthook/",
      "title": "Python sys.excepthook",
      "content_html": "\u003cp\u003eSometimes you just want python to do something else when you hit an exception,\nmaybe that’s fire a text, slack message, email, or system notification like I\nwanted.\u003c/p\u003e\n\u003cp\u003eI am working on a quick and dirty python script designed to take screenshots\nand land them on my website in a single hotkey.  With it being designed to run\nwith a hotkey, if it were to error I would not see it.\u003c/p\u003e\n\u003cp\u003eI could have gone down a logging route, but honestly this is meant to be quick,\ndirty, and work on my system for me.  I just want to get it in my system\nnotification.\u003c/p\u003e\n\u003ch2 id=\"sysexcepthook\"\u003esys.excepthook \u003ca href=\"#sysexcepthook\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003ePython exposes sys.excepthook for just this case.  Here is what I ended up\ndoing to fire a system notification as well as printing the message.  Yaya a\nlog would be mroe appropriate, but this is designed to just get done quick and\ndo the job I want it to do.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003enotify_exception\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"nb\"\u003etype\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003evalue\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003etb\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003etraceback_details\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"se\"\u003e\\n\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ejoin\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003etraceback\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eextract_tb\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003etb\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eformat\u003c/span\u003e\u003cspan class=\"p\"\u003e())\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003emsg\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;caller: \u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39; \u0026#39;\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ejoin\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003esys\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eargv\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"se\"\u003e\\n\u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"nb\"\u003etype\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e: \u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003evalue\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"se\"\u003e\\n\u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003etraceback_details\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003emsg\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003ePopen\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;notify-send \u0026#34;screenshot.py hit an exception\u0026#34; \u0026#34;\u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003emsg\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#34; -a screenshot.py\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003eshell\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"kc\"\u003eTrue\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003esys\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eexcepthook\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003enotify_exception\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"mi\"\u003e0\u003c/span\u003e \u003cspan class=\"o\"\u003e/\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nSometimes you just want python to do something else when you hit an exception,\nmaybe that's fire a text, slack message, email, or system notification like I\nwanted.\n\nI am working on a quick and dirty python script designed to take screenshots\nand land them on my website in a single hotkey.  With it being designed to run\nwith a hotkey, if it were to error I would not see it.\n\nI could have gone down a logging route, but honestly this is meant to be quick,\ndirty, and work on my system for me.  I just want to get it in my system\nnotification.\n\n## sys.excepthook\n\nPython exposes sys.excepthook for just this case.  Here is what I ended up\ndoing to fire a system notification as well as printing the message.  Yaya a\nlog would be mroe appropriate, but this is designed to just get done quick and\ndo the job I want it to do.\n\n```python\ndef notify_exception(type, value, tb):\n    traceback_details = \"\\n\".join(traceback.extract_tb(tb).format())\n\n    msg = f\"caller: {' '.join(sys.argv)}\\n{type}: {value}\\n{traceback_details}\"\n    print(msg)\n    Popen(\n        f'notify-send \"screenshot.py hit an exception\" \"{msg}\" -a screenshot.py',\n        shell=True,\n    )\n\n\nsys.excepthook = notify_exception\n0 / 0\n```\n",
      "summary": "Sometimes you just want python to do something else when you hit an exception, maybe that's fire a text, slack message, email, or system notification like I...",
      "date_published": "2022-04-10T14:21:54Z",
      "date_modified": "2022-04-10T14:21:54Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/linux-tty/",
      "url": "https://go.waylonwalker.com/linux-tty/",
      "title": "A TTY Can Save Your Bacon",
      "content_html": "\u003cp\u003eI recently was unable to boot into my home Linux Desktop, it got stuck at\ndiskcheck \u003ccode\u003efsck\u003c/code\u003e.  I found that I was able to get in to a tty through a hotkey.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://twitter.com/_WaylonWalker/status/1512281106120384519\"\u003ehttps://twitter.com/_WaylonWalker/status/1512281106120384519\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"whats-a-tty\"\u003eWhat’s a TTY? \u003ca href=\"#whats-a-tty\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThere’s probably more to it, but to me its a full screen terminal with zero\ngui, not even your gui fonts.  It does log into your default shell so if you\nhave a comfy command line setup it will be here for you even though it looks\nmuch different without fonts and full colorspace.\u003c/p\u003e\n\u003ch2 id=\"normal-setup\"\u003eNormal setup \u003ca href=\"#normal-setup\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNormally you have 6 TTY’s running, the first is dedicated to your desktop\nmanager, which is your login screen it might be something like gdm or lightdm.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ectrl+alt+F1: login screen\u003c/li\u003e\n\u003cli\u003ectrl+alt+F2: Desktop\u003c/li\u003e\n\u003cli\u003ectrl+alt+F3: TTY 3\u003c/li\u003e\n\u003cli\u003ectrl+alt+F4: TTY 4\u003c/li\u003e\n\u003cli\u003ectrl+alt+F5: TTY 5\u003c/li\u003e\n\u003cli\u003ectrl+alt+F6: TTY 6\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIn my case the desktop manager neverstarted, so ctrl+alt+F1 brought me into a tty.\u003c/p\u003e\n\u003ch2 id=\"what-happened\"\u003eWhat happened?? \u003ca href=\"#what-happened\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWell after getting back in and having some time to reflect, I think my Desktop\nmanager was installed or just broken, possibly during a update I ran a few days\nprior.\u003c/p\u003e\n\u003cp\u003eI tried a bunch of things like switching to lightdm, and manually running startx.\u003c/p\u003e\n\u003ch2 id=\"getting-back-in\"\u003eGetting back in \u003ca href=\"#getting-back-in\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe final commands that ended up getting me back in were installing and starting gdm3.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo apt install gdm3\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo systemctl start gdm3\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nI recently was unable to boot into my home Linux Desktop, it got stuck at\ndiskcheck `fsck`.  I found that I was able to get in to a tty through a hotkey.\n\nhttps://twitter.com/_WaylonWalker/status/1512281106120384519\n\n## What's a TTY?\n\nThere's probably more to it, but to me its a full screen terminal with zero\ngui, not even your gui fonts.  It does log into your default shell so if you\nhave a comfy command line setup it will be here for you even though it looks\nmuch different without fonts and full colorspace.\n\n## Normal setup\n\nNormally you have 6 TTY's running, the first is dedicated to your desktop\nmanager, which is your login screen it might be something like gdm or lightdm.\n\n* ctrl+alt+F1: login screen\n* ctrl+alt+F2: Desktop\n* ctrl+alt+F3: TTY 3\n* ctrl+alt+F4: TTY 4\n* ctrl+alt+F5: TTY 5\n* ctrl+alt+F6: TTY 6\n\nIn my case the desktop manager neverstarted, so ctrl+alt+F1 brought me into a tty.\n\n## What happened??\n\nWell after getting back in and having some time to reflect, I think my Desktop\nmanager was installed or just broken, possibly during a update I ran a few days\nprior.\n\nI tried a bunch of things like switching to lightdm, and manually running startx.\n\n## Getting back in\n\nThe final commands that ended up getting me back in were installing and starting gdm3.\n\n``` bash\nsudo apt install gdm3\nsudo systemctl start gdm3\n```\n",
      "summary": "I recently was unable to boot into my home Linux Desktop, it got stuck at diskcheck . I found that I was able to get in to a tty through a hotkey.",
      "date_published": "2022-04-08T13:46:25Z",
      "date_modified": "2022-04-08T13:46:25Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux",
        "linux",
        "linux"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/pygame-event-queue/",
      "url": "https://go.waylonwalker.com/pygame-event-queue/",
      "title": "pygame events are queued | Don't make this mistake",
      "content_html": "\u003cp\u003epygame events are stored in a queue, by default the most suggested way\nshown in all tutorials “\u003ccode\u003epumps\u003c/code\u003e” the queue, which removes all the\nmessages.\u003c/p\u003e\n\u003ch2 id=\"start-up-pygame\"\u003estart up pygame \u003ca href=\"#start-up-pygame\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eYou don’t necessarily need a full\n\u003ca href=\"https://waylonwalker.com/til/pygame-boilerplate-apr-2022/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eboilerplate\u003c/a\u003e\nto start looking at events, you just just need to \u003ccode\u003epygame.init()\u003c/code\u003e and\nto capture any keystrokes you need a window to capture them on, so you\nwill need a display running.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003epygame\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epygame\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003einit\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epygame\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003edisplay\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eset_mode\u003c/span\u003e\u003cspan class=\"p\"\u003e((\u003c/span\u003e\u003cspan class=\"mi\"\u003e854\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mi\"\u003e480\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"get-some-events\"\u003eget some events \u003ca href=\"#get-some-events\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLet’s use pygames normal \u003ccode\u003eevent.get\u003c/code\u003e method to get events.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eevents\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epygame\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eevent\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eget\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eprinting the events reveal this\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e1541\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eJoyDeviceAdded\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;device_index\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;guid\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;030000005e0400008e02000010010000\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e4352\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eAudioDeviceAdded\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;which\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;iscapture\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e4352\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eAudioDeviceAdded\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;which\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e1\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;iscapture\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e4352\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eAudioDeviceAdded\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;which\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e2\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;iscapture\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e4352\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eAudioDeviceAdded\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;which\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;iscapture\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e1\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e4352\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eAudioDeviceAdded\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;which\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e1\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;iscapture\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e1\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e32774\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eWindowShown\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e32777\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eWindowMoved\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;x\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e535\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;y\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e302\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e32770\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eVideoExpose\u003c/span\u003e \u003cspan class=\"p\"\u003e{})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e32776\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eWindowExposed\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e32788\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eWindowTakeFocus\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e32768\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eActiveEvent\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;gain\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e1\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;state\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e1\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e32785\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eWindowFocusGained\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e768\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eKeyDown\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;unicode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;a\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;key\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e97\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;mod\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;scancode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e4\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e771\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eTextInput\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;text\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;a\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e768\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eKeyDown\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;unicode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;s\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;key\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e115\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;mod\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;scancode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e22\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e771\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eTextInput\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;text\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;s\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e769\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eKeyUp\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;unicode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;a\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;key\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e97\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;mod\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;scancode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e4\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e768\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eKeyDown\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;unicode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;d\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;key\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e100\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;mod\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;scancode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e7\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e771\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eTextInput\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;text\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;d\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e769\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eKeyUp\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;unicode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;s\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;key\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e115\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;mod\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;scancode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e22\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e769\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eKeyUp\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;unicode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;d\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;key\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e100\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;mod\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;scancode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e7\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e768\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eKeyDown\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;unicode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;f\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;key\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e102\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;mod\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;scancode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e9\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e771\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eTextInput\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;text\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;f\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e769\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eKeyUp\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;unicode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;f\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;key\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e102\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;mod\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;scancode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e9\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e768\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eKeyDown\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;unicode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;s\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;key\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e115\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;mod\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;scancode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e22\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e771\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eTextInput\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;text\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;s\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e768\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eKeyDown\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;unicode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;d\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;key\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e100\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;mod\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;scancode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e7\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e771\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eTextInput\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;text\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;d\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e769\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eKeyUp\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;unicode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;s\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;key\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e115\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;mod\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;scancode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e22\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e769\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eKeyUp\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;unicode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;d\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;key\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e100\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;mod\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;scancode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e7\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e768\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eKeyDown\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;unicode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;f\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;key\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e102\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;mod\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;scancode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e9\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e771\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eTextInput\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;text\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;f\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e768\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eKeyDown\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;unicode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;a\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;key\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e97\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;mod\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;scancode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e4\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e771\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eTextInput\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;text\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;a\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e769\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eKeyUp\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;unicode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;f\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;key\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e102\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;mod\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;scancode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e9\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e768\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eKeyDown\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;unicode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;s\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;key\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e115\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;mod\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;scancode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e22\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e771\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eTextInput\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;text\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;s\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e769\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eKeyUp\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;unicode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;a\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;key\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e97\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;mod\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;scancode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e4\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e768\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eKeyDown\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;unicode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;d\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;key\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e100\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;mod\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;scancode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e7\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e771\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eTextInput\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;text\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;d\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e769\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eKeyUp\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;unicode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;s\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;key\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e115\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;mod\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;scancode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e22\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e769\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eKeyUp\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;unicode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;d\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;key\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e100\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;mod\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;scancode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e7\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e768\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eKeyDown\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;unicode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;f\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;key\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e102\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;mod\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;scancode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e9\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e771\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eTextInput\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;text\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;f\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e769\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eKeyUp\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;unicode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;f\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;key\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e102\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;mod\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;scancode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e9\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e768\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eKeyDown\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;unicode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;a\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;key\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e97\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;mod\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;scancode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e4\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e771\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eTextInput\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;text\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;a\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e768\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eKeyDown\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;unicode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;s\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;key\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e115\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;mod\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;scancode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e22\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e771\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eTextInput\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;text\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;s\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e768\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eKeyDown\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;unicode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;d\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;key\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e100\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;mod\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;scancode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e7\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e771\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eTextInput\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;text\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;d\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e769\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eKeyUp\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;unicode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;a\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;key\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e97\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;mod\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;scancode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e4\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e769\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eKeyUp\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;unicode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;s\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;key\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e115\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;mod\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;scancode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e22\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e769\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eKeyUp\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;unicode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;d\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;key\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e100\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;mod\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;scancode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e7\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e768\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eKeyDown\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;unicode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;f\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;key\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e102\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;mod\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;scancode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e9\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e771\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eTextInput\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;text\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;f\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e769\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eKeyUp\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;unicode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;f\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;key\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e102\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;mod\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;scancode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e9\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e768\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eKeyDown\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;unicode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;s\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;key\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e115\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;mod\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;scancode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e22\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e771\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eTextInput\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;text\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;s\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e769\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eKeyUp\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;unicode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;s\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;key\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e115\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;mod\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;scancode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e22\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e768\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eKeyDown\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;unicode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;d\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;key\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e100\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;mod\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;scancode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e7\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e771\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eTextInput\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;text\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;d\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e769\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eKeyUp\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;unicode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;d\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;key\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e100\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;mod\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;scancode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e7\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e768\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eKeyDown\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;unicode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;f\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;key\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e102\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;mod\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;scancode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e9\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e771\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eTextInput\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;text\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;f\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e769\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eKeyUp\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;unicode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;f\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;key\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e102\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;mod\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;scancode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e9\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e768\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eKeyDown\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;unicode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;s\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;key\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e115\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;mod\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;scancode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e22\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e771\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eTextInput\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;text\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;s\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e769\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eKeyUp\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;unicode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;s\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;key\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e115\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;mod\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;scancode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e22\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e768\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eKeyDown\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;unicode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;d\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;key\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e100\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;mod\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;scancode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e7\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e771\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eTextInput\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;text\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;d\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e769\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eKeyUp\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;unicode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;d\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;key\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e100\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;mod\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;scancode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e7\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e768\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eKeyDown\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;unicode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;key\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e1073742051\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;mod\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e1024\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;scancode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e227\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e772\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eUnknown\u003c/span\u003e \u003cspan class=\"p\"\u003e{})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e769\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eKeyUp\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;unicode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;key\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e1073742051\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;mod\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;scancode\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e227\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e32768\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eActiveEvent\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;gain\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;state\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e1\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e32786\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eWindowFocusLost\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;window\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eEvent\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e772\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eUnknown\u003c/span\u003e \u003cspan class=\"p\"\u003e{})\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"lets-get-some-more-events\"\u003eLets get some more events. \u003ca href=\"#lets-get-some-more-events\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLet’s say that we have multpile sprites all asking for the events from\ndifferent places in our game. If we assume that our game loop runs very\nfastand we get events one after another the second one will have no\nevents.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eevents_one\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epygame\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eevent\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eget\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eevents_two\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epygame\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eevent\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eget\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eprinting the events reveals that there are no events, well i\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"making-things-more-maddening\"\u003eMaking things more maddening \u003ca href=\"#making-things-more-maddening\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eEven simple games don’t quite run infinitely fast there is some delay,\nwith this delay most events will go to event_one, while any that occur\nin the short time between event_one and two will be in event_two’s\nqueue.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003etime\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eevents_one\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epygame\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eevent\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eget\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003etime\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003esleep\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mf\"\u003e.05\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"c1\"\u003e# simulating some delay that would naturally occur\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eevents_two\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epygame\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eevent\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eget\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"how-to-resolve-this\"\u003eHow to Resolve this \u003ca href=\"#how-to-resolve-this\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eStore events for each frame in memory.\u003c/p\u003e\n\u003ch2 id=\"pump\"\u003ePump \u003ca href=\"#pump\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI thought \u003ccode\u003epump=False\u003c/code\u003e would be the answer I was looking for, but I was\nproven wrong.  It does not behave intuitivly to me.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eevents_one\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epygame\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eevent\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eget\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003epump\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"kc\"\u003eFalse\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"c1\"\u003e# all events since last pump\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eevents_two\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epygame\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eevent\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eget\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003epump\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"kc\"\u003eFalse\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"c1\"\u003e# no events\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eevents_three\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epygame\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eevent\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eget\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e \u003cspan class=\"c1\"\u003e# all events since last pump\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003ccode\u003eevents_one\u003c/code\u003e and \u003ccode\u003eevents_three\u003c/code\u003e will have a list of events, while\n\u003ccode\u003eevents_two\u003c/code\u003e will be empty.  It seems that \u003ccode\u003epump=False\u003c/code\u003e leaves the\nevents there for the next \u003ccode\u003eevent.get()\u003c/code\u003e, but appears cleared to any\n\u003ccode\u003eevent.get(pump=False)\u003c/code\u003e.\u003c/p\u003e\n\u003ch2 id=\"keep-a-game-state\"\u003eKeep a Game State \u003ca href=\"#keep-a-game-state\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIf you want objects to do their own event handling, outside of the main\ngame, you will need to give them some game state with the events in it.\nHowever you decide, you may only call \u003ccode\u003eevent.get()\u003c/code\u003e once per game loop\notherwise weird things will happen.\u003c/p\u003e\n",
      "content_text": "\npygame events are stored in a queue, by default the most suggested way\nshown in all tutorials \"`pumps`\" the queue, which removes all the\nmessages.\n\n## start up pygame\n\nYou don't necessarily need a full\n[boilerplate](https://waylonwalker.com/til/pygame-boilerplate-apr-2022/)\nto start looking at events, you just just need to `pygame.init()` and\nto capture any keystrokes you need a window to capture them on, so you\nwill need a display running.\n\n```python\nimport pygame\npygame.init()\npygame.display.set_mode((854, 480))\n```\n\n## get some events\n\nLet's use pygames normal `event.get` method to get events.\n\n```python\nevents = pygame.event.get()\n```\n\nprinting the events reveal this\n\n```python\n[\n    \u003cEvent(1541-JoyDeviceAdded {'device_index': 0, 'guid': '030000005e0400008e02000010010000'})\u003e,\n    \u003cEvent(4352-AudioDeviceAdded {'which': 0, 'iscapture': 0})\u003e,\n    \u003cEvent(4352-AudioDeviceAdded {'which': 1, 'iscapture': 0})\u003e,\n    \u003cEvent(4352-AudioDeviceAdded {'which': 2, 'iscapture': 0})\u003e,\n    \u003cEvent(4352-AudioDeviceAdded {'which': 0, 'iscapture': 1})\u003e,\n    \u003cEvent(4352-AudioDeviceAdded {'which': 1, 'iscapture': 1})\u003e,\n    \u003cEvent(32774-WindowShown {'window': None})\u003e,\n    \u003cEvent(32777-WindowMoved {'x': 535, 'y': 302, 'window': None})\u003e,\n    \u003cEvent(32770-VideoExpose {})\u003e,\n    \u003cEvent(32776-WindowExposed {'window': None})\u003e,\n    \u003cEvent(32788-WindowTakeFocus {'window': None})\u003e,\n    \u003cEvent(32768-ActiveEvent {'gain': 1, 'state': 1})\u003e,\n    \u003cEvent(32785-WindowFocusGained {'window': None})\u003e,\n    \u003cEvent(768-KeyDown {'unicode': 'a', 'key': 97, 'mod': 0, 'scancode': 4, 'window': None})\u003e,\n    \u003cEvent(771-TextInput {'text': 'a', 'window': None})\u003e,\n    \u003cEvent(768-KeyDown {'unicode': 's', 'key': 115, 'mod': 0, 'scancode': 22, 'window': None})\u003e,\n    \u003cEvent(771-TextInput {'text': 's', 'window': None})\u003e,\n    \u003cEvent(769-KeyUp {'unicode': 'a', 'key': 97, 'mod': 0, 'scancode': 4, 'window': None})\u003e,\n    \u003cEvent(768-KeyDown {'unicode': 'd', 'key': 100, 'mod': 0, 'scancode': 7, 'window': None})\u003e,\n    \u003cEvent(771-TextInput {'text': 'd', 'window': None})\u003e,\n    \u003cEvent(769-KeyUp {'unicode': 's', 'key': 115, 'mod': 0, 'scancode': 22, 'window': None})\u003e,\n    \u003cEvent(769-KeyUp {'unicode': 'd', 'key': 100, 'mod': 0, 'scancode': 7, 'window': None})\u003e,\n    \u003cEvent(768-KeyDown {'unicode': 'f', 'key': 102, 'mod': 0, 'scancode': 9, 'window': None})\u003e,\n    \u003cEvent(771-TextInput {'text': 'f', 'window': None})\u003e,\n    \u003cEvent(769-KeyUp {'unicode': 'f', 'key': 102, 'mod': 0, 'scancode': 9, 'window': None})\u003e,\n    \u003cEvent(768-KeyDown {'unicode': 's', 'key': 115, 'mod': 0, 'scancode': 22, 'window': None})\u003e,\n    \u003cEvent(771-TextInput {'text': 's', 'window': None})\u003e,\n    \u003cEvent(768-KeyDown {'unicode': 'd', 'key': 100, 'mod': 0, 'scancode': 7, 'window': None})\u003e,\n    \u003cEvent(771-TextInput {'text': 'd', 'window': None})\u003e,\n    \u003cEvent(769-KeyUp {'unicode': 's', 'key': 115, 'mod': 0, 'scancode': 22, 'window': None})\u003e,\n    \u003cEvent(769-KeyUp {'unicode': 'd', 'key': 100, 'mod': 0, 'scancode': 7, 'window': None})\u003e,\n    \u003cEvent(768-KeyDown {'unicode': 'f', 'key': 102, 'mod': 0, 'scancode': 9, 'window': None})\u003e,\n    \u003cEvent(771-TextInput {'text': 'f', 'window': None})\u003e,\n    \u003cEvent(768-KeyDown {'unicode': 'a', 'key': 97, 'mod': 0, 'scancode': 4, 'window': None})\u003e,\n    \u003cEvent(771-TextInput {'text': 'a', 'window': None})\u003e,\n    \u003cEvent(769-KeyUp {'unicode': 'f', 'key': 102, 'mod': 0, 'scancode': 9, 'window': None})\u003e,\n    \u003cEvent(768-KeyDown {'unicode': 's', 'key': 115, 'mod': 0, 'scancode': 22, 'window': None})\u003e,\n    \u003cEvent(771-TextInput {'text': 's', 'window': None})\u003e,\n    \u003cEvent(769-KeyUp {'unicode': 'a', 'key': 97, 'mod': 0, 'scancode': 4, 'window': None})\u003e,\n    \u003cEvent(768-KeyDown {'unicode': 'd', 'key': 100, 'mod': 0, 'scancode': 7, 'window': None})\u003e,\n    \u003cEvent(771-TextInput {'text': 'd', 'window': None})\u003e,\n    \u003cEvent(769-KeyUp {'unicode': 's', 'key': 115, 'mod': 0, 'scancode': 22, 'window': None})\u003e,\n    \u003cEvent(769-KeyUp {'unicode': 'd', 'key': 100, 'mod': 0, 'scancode': 7, 'window': None})\u003e,\n    \u003cEvent(768-KeyDown {'unicode': 'f', 'key': 102, 'mod': 0, 'scancode': 9, 'window': None})\u003e,\n    \u003cEvent(771-TextInput {'text': 'f', 'window': None})\u003e,\n    \u003cEvent(769-KeyUp {'unicode': 'f', 'key': 102, 'mod': 0, 'scancode': 9, 'window': None})\u003e,\n    \u003cEvent(768-KeyDown {'unicode': 'a', 'key': 97, 'mod': 0, 'scancode': 4, 'window': None})\u003e,\n    \u003cEvent(771-TextInput {'text': 'a', 'window': None})\u003e,\n    \u003cEvent(768-KeyDown {'unicode': 's', 'key': 115, 'mod': 0, 'scancode': 22, 'window': None})\u003e,\n    \u003cEvent(771-TextInput {'text': 's', 'window': None})\u003e,\n    \u003cEvent(768-KeyDown {'unicode': 'd', 'key': 100, 'mod': 0, 'scancode': 7, 'window': None})\u003e,\n    \u003cEvent(771-TextInput {'text': 'd', 'window': None})\u003e,\n    \u003cEvent(769-KeyUp {'unicode': 'a', 'key': 97, 'mod': 0, 'scancode': 4, 'window': None})\u003e,\n    \u003cEvent(769-KeyUp {'unicode': 's', 'key': 115, 'mod': 0, 'scancode': 22, 'window': None})\u003e,\n    \u003cEvent(769-KeyUp {'unicode': 'd', 'key': 100, 'mod': 0, 'scancode': 7, 'window': None})\u003e,\n    \u003cEvent(768-KeyDown {'unicode': 'f', 'key': 102, 'mod': 0, 'scancode': 9, 'window': None})\u003e,\n    \u003cEvent(771-TextInput {'text': 'f', 'window': None})\u003e,\n    \u003cEvent(769-KeyUp {'unicode': 'f', 'key': 102, 'mod': 0, 'scancode': 9, 'window': None})\u003e,\n    \u003cEvent(768-KeyDown {'unicode': 's', 'key': 115, 'mod': 0, 'scancode': 22, 'window': None})\u003e,\n    \u003cEvent(771-TextInput {'text': 's', 'window': None})\u003e,\n    \u003cEvent(769-KeyUp {'unicode': 's', 'key': 115, 'mod': 0, 'scancode': 22, 'window': None})\u003e,\n    \u003cEvent(768-KeyDown {'unicode': 'd', 'key': 100, 'mod': 0, 'scancode': 7, 'window': None})\u003e,\n    \u003cEvent(771-TextInput {'text': 'd', 'window': None})\u003e,\n    \u003cEvent(769-KeyUp {'unicode': 'd', 'key': 100, 'mod': 0, 'scancode': 7, 'window': None})\u003e,\n    \u003cEvent(768-KeyDown {'unicode': 'f', 'key': 102, 'mod': 0, 'scancode': 9, 'window': None})\u003e,\n    \u003cEvent(771-TextInput {'text': 'f', 'window': None})\u003e,\n    \u003cEvent(769-KeyUp {'unicode': 'f', 'key': 102, 'mod': 0, 'scancode': 9, 'window': None})\u003e,\n    \u003cEvent(768-KeyDown {'unicode': 's', 'key': 115, 'mod': 0, 'scancode': 22, 'window': None})\u003e,\n    \u003cEvent(771-TextInput {'text': 's', 'window': None})\u003e,\n    \u003cEvent(769-KeyUp {'unicode': 's', 'key': 115, 'mod': 0, 'scancode': 22, 'window': None})\u003e,\n    \u003cEvent(768-KeyDown {'unicode': 'd', 'key': 100, 'mod': 0, 'scancode': 7, 'window': None})\u003e,\n    \u003cEvent(771-TextInput {'text': 'd', 'window': None})\u003e,\n    \u003cEvent(769-KeyUp {'unicode': 'd', 'key': 100, 'mod': 0, 'scancode': 7, 'window': None})\u003e,\n    \u003cEvent(768-KeyDown {'unicode': '', 'key': 1073742051, 'mod': 1024, 'scancode': 227, 'window': None})\u003e,\n    \u003cEvent(772-Unknown {})\u003e,\n    \u003cEvent(769-KeyUp {'unicode': '', 'key': 1073742051, 'mod': 0, 'scancode': 227, 'window': None})\u003e,\n    \u003cEvent(32768-ActiveEvent {'gain': 0, 'state': 1})\u003e,\n    \u003cEvent(32786-WindowFocusLost {'window': None})\u003e,\n    \u003cEvent(772-Unknown {})\u003e\n]\n```\n\n## Lets get some more events.\n\nLet's say that we have multpile sprites all asking for the events from\ndifferent places in our game. If we assume that our game loop runs very\nfastand we get events one after another the second one will have no\nevents.\n\n```python\nevents_one = pygame.event.get()\nevents_two = pygame.event.get()\n```\n\nprinting the events reveals that there are no events, well i\n\n```python\n[]\n```\n\n## Making things more maddening\n\nEven simple games don't quite run infinitely fast there is some delay,\nwith this delay most events will go to event_one, while any that occur\nin the short time between event_one and two will be in event_two's\nqueue.\n\n\n```python\nimport time\nevents_one = pygame.event.get()\ntime.sleep(.05) # simulating some delay that would naturally occur\nevents_two = pygame.event.get()\n```\n\n## How to Resolve this\n\nStore events for each frame in memory.\n\n## Pump\n\nI thought `pump=False` would be the answer I was looking for, but I was\nproven wrong.  It does not behave intuitivly to me.\n\n```python\nevents_one = pygame.event.get(pump=False) # all events since last pump\nevents_two = pygame.event.get(pump=False) # no events\nevents_three = pygame.event.get() # all events since last pump\n```\n\n`events_one` and `events_three` will have a list of events, while\n`events_two` will be empty.  It seems that `pump=False` leaves the\nevents there for the next `event.get()`, but appears cleared to any\n`event.get(pump=False)`.\n\n## Keep a Game State\n\nIf you want objects to do their own event handling, outside of the main\ngame, you will need to give them some game state with the events in it.\nHowever you decide, you may only call `event.get()` once per game loop\notherwise weird things will happen.\n",
      "summary": "pygame events are stored in a queue, by default the most suggested way shown in all tutorials \"\" the queue, which removes all the messages.",
      "date_published": "2022-04-07T13:14:20Z",
      "date_modified": "2022-04-07T13:14:20Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "pygame"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/pygame-image-load/",
      "url": "https://go.waylonwalker.com/pygame-image-load/",
      "title": "Display Sprites in Pygame | Load and Blit",
      "content_html": "\u003cp\u003eOne of the most essential concepts of pygame to start making a game you will\nneed to understand is loading images and blitting them to the screen.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003cstrong\u003eblit\u003c/strong\u003e stands for block image transfer, to me it feels a lot like layering\nup layers/images in photoshop or Gimp.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"loading-an-image\"\u003eLoading an image \u003ca href=\"#loading-an-image\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI started by making a spotlight in Gimp, by opening a 64x64 pixel image and\npainting the center with a very soft brush.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"./spotlight.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"./spotlight.png\" alt=\"the spotlight I created in gimp\"/ data-glightbox=\"description: the spotlight I created in gimp\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cblockquote\u003e\n\u003cp\u003eThis is what it looks like\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eNow we can load this into pygame.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003epygame\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eimg\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epygame\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eimage\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eload\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;assets/spotlight.png\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"converting-to-the-pygame-colorspace\"\u003eConverting to the pygame colorspace \u003ca href=\"#converting-to-the-pygame-colorspace\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eTo make pygame a bit more efficient we can convert the image to pygames\ncolorspace once when we load it rather than every time we blit it onto another\nsurface.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003epygame\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# convert full opaque images\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eimg\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epygame\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eimage\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eload\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;assets/spotlight.png\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003econvert\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# convert pngs with transparancy\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eimg\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epygame\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eimage\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eload\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;assets/spotlight.png\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003econvert_alpha\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"blitting\"\u003eblitting \u003ca href=\"#blitting\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eTo display the image onto the screen we need to use the blit method which needs\nat least two arguments, something to blit and a position to blit it at.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003escreen\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epygame\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003edisplay\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eset_mode\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003escreen_size\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003escreen\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eblit\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e \u003cspan class=\"n\"\u003eimg\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e),)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003e\u003cstrong\u003enote\u003c/strong\u003e blitting to the position (0, 0) will align the top left corners of\nthe object we are blitting onto (screen) and the object we are blitting\n(img).\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"starter\"\u003eStarter \u003ca href=\"#starter\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNow we need an actual game running to be able to put on the screen.  I am using\nmy own starter/boilerplate, if you want to follow along you can install it from\ngithub into your own \u003ca href=\"/virtual-environment/\" class=\"glossary-term\" title=\"Virtual Environment is term for a sandboxed environment commonly associated with the python programming language. If you are installing any sort of python...\"\u003evirtual environment\u003c/a\u003e.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epip\u003c/span\u003e \u003cspan class=\"n\"\u003einstall\u003c/span\u003e \u003cspan class=\"n\"\u003egit\u003c/span\u003e\u003cspan class=\"o\"\u003e+\u003c/span\u003e\u003cspan class=\"n\"\u003ehttps\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"o\"\u003e//\u003c/span\u003e\u003cspan class=\"n\"\u003egithub\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ecom\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003eWaylonWalker\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003epygame\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003estarter\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003ca href=\"/pygame-boilerplate-apr-2022/\" class=\"wikilink\" data-title=\"Pygame Boilerplate Apr 2022\" data-description=\"I\u0026#39;m poking a bit into gamedev. Partly to better understand, partly because it\u0026#39;s stretching different parts of my brain/skillset than writing data pipelines...\" data-date=\"2022-04-03\" data-preview=\"I\u0026#39;m poking a bit into gamedev. Partly to better understand, partly because it\u0026#39;s stretching different parts of my brain/skillset than writing data pipelines...\"\u003ePygame Boilerplate Apr 2022\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eYou can read more about my starter in this post\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"lets-place-this-image-right-in-the-middle\"\u003eLet’s place this image right in the middle \u003ca href=\"#lets-place-this-image-right-in-the-middle\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNow we can use the starter to create a new game, and with just a bit of offset\nwe can put the spotlight directly in the middle.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003epygame\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003epygame_starter\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eGame\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eclass\u003c/span\u003e \u003cspan class=\"nc\"\u003eMyGame\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eGame\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"fm\"\u003e__init__\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"nb\"\u003esuper\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"fm\"\u003e__init__\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"c1\"\u003e# load in the image one time and store it inside the object instance\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eimg\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epygame\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eimage\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eload\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;assets/spotlight.png\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003econvert_alpha\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003egame\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"c1\"\u003e# fill the screen with aqua\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003escreen\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003efill\u003c/span\u003e\u003cspan class=\"p\"\u003e((\u003c/span\u003e\u003cspan class=\"mi\"\u003e128\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mi\"\u003e255\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mi\"\u003e255\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"c1\"\u003e# transfer the image to the middle of the screen\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003escreen\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eblit\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eimg\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003escreen_size\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e \u003cspan class=\"o\"\u003e/\u003c/span\u003e \u003cspan class=\"mi\"\u003e2\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u003c/span\u003e \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eimg\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eget_size\u003c/span\u003e\u003cspan class=\"p\"\u003e()[\u003c/span\u003e\u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e],\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003escreen_size\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"mi\"\u003e1\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e \u003cspan class=\"o\"\u003e/\u003c/span\u003e \u003cspan class=\"mi\"\u003e2\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u003c/span\u003e \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eimg\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eget_size\u003c/span\u003e\u003cspan class=\"p\"\u003e()[\u003c/span\u003e\u003cspan class=\"mi\"\u003e1\u003c/span\u003e\u003cspan class=\"p\"\u003e],\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"vm\"\u003e__name__\u003c/span\u003e \u003cspan class=\"o\"\u003e==\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;__main__\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003egame\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eMyGame\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003egame\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003erun\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eIf we save this as \u003ccode\u003eload_and_blit.py\u003c/code\u003e we can run it at the command like as so.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epython\u003c/span\u003e \u003cspan class=\"n\"\u003eload_and_blit\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003epy\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eAnd we should get the following results.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://images.waylonwalker.com/pygame-load-blit-center-alpha.png\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/images.waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/images.waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ethe results of putting the image in the middle\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"convert-a-transparent-png\"\u003econvert a transparent png \u003ca href=\"#convert-a-transparent-png\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWhat happens when we accidently use \u003ccode\u003e.convert()\u003c/code\u003e rather than \u003ccode\u003e.convert_alpha()\u003c/code\u003e?\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://images.waylonwalker.com/pygame-load-blit-center-no-alpha.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://images.waylonwalker.com/pygame-load-blit-center-no-alpha.png\" alt=\"using convert on a transparant png gets rid of all transparancy and fills with black\"/ data-glightbox=\"description: using convert on a transparant png gets rid of all transparancy and fills with black\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"making-snow\"\u003eMaking snow \u003ca href=\"#making-snow\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eA common concept in pygame, that is built into my starter, is that you\ntypically want to reset the screen each and every frame.  Building on this with\nour new concept of blitting spotlights onto the screen we can make a random\nnoise of snow by blitting a bunch of images to the screen.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003erandom\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003epygame\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003epygame_starter\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eGame\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eclass\u003c/span\u003e \u003cspan class=\"nc\"\u003eMyGame\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eGame\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"fm\"\u003e__init__\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"nb\"\u003esuper\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"fm\"\u003e__init__\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eimg\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epygame\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eimage\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eload\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;assets/spotlight.png\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003econvert_alpha\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003egame\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003escreen\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003efill\u003c/span\u003e\u003cspan class=\"p\"\u003e((\u003c/span\u003e\u003cspan class=\"mi\"\u003e128\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mi\"\u003e255\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mi\"\u003e255\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003efor\u003c/span\u003e  \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"nb\"\u003erange\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e100\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003escreen\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eblit\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eimg\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                    \u003cspan class=\"n\"\u003erandom\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003erandint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003escreen_size\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e])\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u003c/span\u003e \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eimg\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eget_size\u003c/span\u003e\u003cspan class=\"p\"\u003e()[\u003c/span\u003e\u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e],\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                    \u003cspan class=\"n\"\u003erandom\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003erandint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003escreen_size\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"mi\"\u003e1\u003c/span\u003e\u003cspan class=\"p\"\u003e])\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u003c/span\u003e \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eimg\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eget_size\u003c/span\u003e\u003cspan class=\"p\"\u003e()[\u003c/span\u003e\u003cspan class=\"mi\"\u003e1\u003c/span\u003e\u003cspan class=\"p\"\u003e],\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"vm\"\u003e__name__\u003c/span\u003e \u003cspan class=\"o\"\u003e==\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;__main__\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003egame\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eMyGame\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003egame\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003erun\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"the-results\"\u003ethe results \u003ca href=\"#the-results\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cvideo autoplay=\"\" controls=\"\" loop=\"true\" muted=\"\" playsinline=\"\" width=\"100%\"\u003e\n    \u003csource src=\"https://images.waylonwalker.com/pygame-snow.mp4\" type=\"video/mp4\"/\u003e\n    Sorry, your browser doesn\u0026#39;t support embedded videos.\n\u003c/video\u003e\n",
      "content_text": "\nOne of the most essential concepts of pygame to start making a game you will\nneed to understand is loading images and blitting them to the screen.\n\n\u003e **blit** stands for block image transfer, to me it feels a lot like layering\n\u003e up layers/images in photoshop or Gimp.\n\n## Loading an image\n\nI started by making a spotlight in Gimp, by opening a 64x64 pixel image and\npainting the center with a very soft brush.\n\n![the spotlight I created in gimp](./spotlight.png)\n\n\u003e This is what it looks like\n\nNow we can load this into pygame.\n\n```python\nimport pygame\nimg = pygame.image.load(\"assets/spotlight.png\")\n```\n\n## Converting to the pygame colorspace\n\nTo make pygame a bit more efficient we can convert the image to pygames\ncolorspace once when we load it rather than every time we blit it onto another\nsurface.\n\n```python\nimport pygame\n\n# convert full opaque images\nimg = pygame.image.load(\"assets/spotlight.png\").convert()\n\n# convert pngs with transparancy\nimg = pygame.image.load(\"assets/spotlight.png\").convert_alpha()\n```\n\n## blitting\n\nTo display the image onto the screen we need to use the blit method which needs\nat least two arguments, something to blit and a position to blit it at.\n\n```python\nscreen = pygame.display.set_mode(self.screen_size)\nscreen.blit( img, (0, 0),)\n```\n\n\u003e **note** blitting to the position (0, 0) will align the top left corners of\n\u003e the object we are blitting onto (screen) and the object we are blitting\n\u003e (img).\n\n## Starter\n\nNow we need an actual game running to be able to put on the screen.  I am using\nmy own starter/boilerplate, if you want to follow along you can install it from\ngithub into your own virtual environment.\n\n```python\npip install git+https://github.com/WaylonWalker/pygame-starter\n```\n\n\u003ca href=\"/pygame-boilerplate-apr-2022/\" class=\"wikilink\" data-title=\"Pygame Boilerplate Apr 2022\" data-description=\"I\u0026#39;m poking a bit into gamedev. Partly to better understand, partly because it\u0026#39;s stretching different parts of my brain/skillset than writing data pipelines...\" data-date=\"2022-04-03\"\u003ePygame Boilerplate Apr 2022\u003c/a\u003e\n\n\u003e You can read more about my starter in this post\n\n## Let's place this image right in the middle\n\nNow we can use the starter to create a new game, and with just a bit of offset\nwe can put the spotlight directly in the middle.\n\n```python\nimport pygame\nfrom pygame_starter import Game\n\n\nclass MyGame(Game):\n    def __init__(self):\n        super().__init__()\n        # load in the image one time and store it inside the object instance\n        self.img = pygame.image.load(\"assets/spotlight.png\").convert_alpha()\n    def game(self):\n        # fill the screen with aqua\n        self.screen.fill((128, 255, 255))\n        # transfer the image to the middle of the screen\n        self.screen.blit(\n            self.img,\n            (\n                self.screen_size[0] / 2 - self.img.get_size()[0],\n                self.screen_size[1] / 2 - self.img.get_size()[1],\n            ),\n        )\n\n\nif __name__ == \"__main__\":\n    game = MyGame()\n    game.run()\n```\n\nIf we save this as `load_and_blit.py` we can run it at the command like as so.\n\n```python\npython load_and_blit.py\n```\n\nAnd we should get the following results.\n\n[the results of putting the image in the middle](https://images.waylonwalker.com/pygame-load-blit-center-alpha.png)\n\n## convert a transparent png\n\nWhat happens when we accidently use `.convert()` rather than `.convert_alpha()`?\n\n![using convert on a transparant png gets rid of all transparancy and fills with black](https://images.waylonwalker.com/pygame-load-blit-center-no-alpha.png)\n\n## Making snow\n\nA common concept in pygame, that is built into my starter, is that you\ntypically want to reset the screen each and every frame.  Building on this with\nour new concept of blitting spotlights onto the screen we can make a random\nnoise of snow by blitting a bunch of images to the screen.\n\n```python\nimport random\n\nimport pygame\nfrom pygame_starter import Game\n\n\nclass MyGame(Game):\n\n    def __init__(self):\n        super().__init__()\n        self.img = pygame.image.load(\"assets/spotlight.png\").convert_alpha()\n\n    def game(self):\n        self.screen.fill((128, 255, 255))\n        for  in range(100):\n            self.screen.blit(\n                self.img,\n                (\n                    random.randint(0, self.screen_size[0]) - self.img.get_size()[0],\n                    random.randint(0, self.screen_size[1]) - self.img.get_size()[1],\n                ),\n            )\n\n\nif __name__ == \"__main__\":\n    game = MyGame()\n    game.run()\n```\n\n## the results\n\n\u003cvideo autoplay=\"\" controls=\"\" loop=\"true\" muted=\"\" playsinline=\"\" width=\"100%\"\u003e\n    \u003csource src=\"https://images.waylonwalker.com/pygame-snow.mp4\" type=\"video/mp4\"\u003e\n    Sorry, your browser doesn't support embedded videos.\n\u003c/video\u003e\n",
      "summary": "One of the most essential concepts of pygame to start making a game you will need to understand is loading images and blitting them to the screen.",
      "date_published": "2022-04-06T15:07:15Z",
      "date_modified": "2022-04-06T15:07:15Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/pastel-cli/",
      "url": "https://go.waylonwalker.com/pastel-cli/",
      "title": "Mixing Colors at the Command Line",
      "content_html": "\u003cp\u003eFrom the same Author that brought us command line essentials like \u003ccode\u003efd\u003c/code\u003e and\n\u003ccode\u003ebat\u003c/code\u003e written in rust comes \u003ca href=\"https://github.com/sharkdp/pastel\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003epastel\u003c/a\u003e an\nincredible command-line tool to generate, analyze, convert and manipulate\ncolors.\u003c/p\u003e\n\u003ch2 id=\"install\"\u003eInstall \u003ca href=\"#install\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eYou can install from one of the\n\u003ca href=\"https://github.com/sharkdp/pastel/releases\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ereleases\u003c/a\u003e, follow the\n\u003ca href=\"https://github.com/sharkdp/pastel#installation\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003einstructions\u003c/a\u003e for your system\nfrom the repo.  I chose to go the nix route.  I have enjoyed the simplicity of\nthe nix package manager being cross platform and have very up  to date packages\nin it.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003enix-env --install pastel\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"mixing-colors\"\u003eMixing colors \u003ca href=\"#mixing-colors\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eSomething I often do to blend colors together is add a little alpha to\nsomething over top of a background.  I can simulate this by mixing colors.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epastel color cornflowerblue \u003cspan class=\"p\"\u003e|\u003c/span\u003e pastel mix goldenrod -f .1\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eHere is one from the docs that show how you can generate a color palette from\nrandom colors, mix in some red, lighten and format all in one pipe.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epastel random \u003cspan class=\"p\"\u003e|\u003c/span\u003e pastel mix red \u003cspan class=\"p\"\u003e|\u003c/span\u003e pastel lighten 0.2 \u003cspan class=\"p\"\u003e|\u003c/span\u003e pastel format hex\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"color-picker\"\u003ecolor picker \u003ca href=\"#color-picker\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI am on Ubuntu 20.10 as I write this and it works flawlessly.  When I call the\ncommand, a color picker gui pops up along with an rgb panel.  I can pick from\nthe panel or from anywhere on my screen.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epastel color-picker\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cvideo autoplay=\"\" controls=\"\" loop=\"true\" muted=\"\" playsinline=\"\" width=\"100%\"\u003e\n    \u003csource src=\"https://images.waylonwalker.com/pastel-pick.mp4\" type=\"video/mp4\"/\u003e\n    Sorry, your browser doesn\u0026#39;t support embedded videos.\n\u003c/video\u003e\n\u003ch2 id=\"conversions\"\u003eConversions \u003ca href=\"#conversions\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI often will want to convert a color from rgb to hex or hsl vice versa.  I open\ngoogle and search.  This is one part that I could really use adding to my\nworkflow.\u003c/p\u003e\n\u003ch2 id=\"check-it\"\u003eCheck it \u003ca href=\"#check-it\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eHere I can mix up a dark grey with rgb, mix in 20% cornflowerblue, and grab the\nhex value.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epastel color 50,50,50 \u003cspan class=\"p\"\u003e|\u003c/span\u003e pastel mix cornflowerblue -f .2\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cfigure\u003e\n\u003ca href=\"https://images.waylonwalker.com/pastel-mix-grey.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://images.waylonwalker.com/pastel-mix-grey.png\" alt=\"my terminal output from mixing grey\"/ data-glightbox=\"description: my terminal output from mixing grey\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eI really want to get this into my workflow.  I saw it quite awhile ago but have\nnot done much color work.  Lately I have been doing a bit more front end, and\nhave been getting into game development.  This is the time to stop googling\nrandom color mixers and use this one.\u003c/p\u003e\n",
      "content_text": "\nFrom the same Author that brought us command line essentials like `fd` and\n`bat` written in rust comes [pastel](https://github.com/sharkdp/pastel) an\nincredible command-line tool to generate, analyze, convert and manipulate\ncolors.\n\n## Install\n\nYou can install from one of the\n[releases](https://github.com/sharkdp/pastel/releases), follow the\n[instructions](https://github.com/sharkdp/pastel#installation) for your system\nfrom the repo.  I chose to go the nix route.  I have enjoyed the simplicity of\nthe nix package manager being cross platform and have very up  to date packages\nin it.\n\n```bash\nnix-env --install pastel\n```\n\n## Mixing colors\n\nSomething I often do to blend colors together is add a little alpha to\nsomething over top of a background.  I can simulate this by mixing colors.\n\n```bash\npastel color cornflowerblue | pastel mix goldenrod -f .1\n```\n\nHere is one from the docs that show how you can generate a color palette from\nrandom colors, mix in some red, lighten and format all in one pipe.\n\n```bash\npastel random | pastel mix red | pastel lighten 0.2 | pastel format hex\n```\n\n## color picker\n\nI am on Ubuntu 20.10 as I write this and it works flawlessly.  When I call the\ncommand, a color picker gui pops up along with an rgb panel.  I can pick from\nthe panel or from anywhere on my screen.\n\n```bash\npastel color-picker\n```\n\n\u003cvideo autoplay=\"\" controls=\"\" loop=\"true\" muted=\"\" playsinline=\"\" width=\"100%\"\u003e\n    \u003csource src=\"https://images.waylonwalker.com/pastel-pick.mp4\" type=\"video/mp4\"\u003e\n    Sorry, your browser doesn't support embedded videos.\n\u003c/video\u003e\n\n## Conversions\n\nI often will want to convert a color from rgb to hex or hsl vice versa.  I open\ngoogle and search.  This is one part that I could really use adding to my\nworkflow.\n\n## Check it\n\nHere I can mix up a dark grey with rgb, mix in 20% cornflowerblue, and grab the\nhex value.\n\n```bash\npastel color 50,50,50 | pastel mix cornflowerblue -f .2\n```\n\n![my terminal output from mixing grey](https://images.waylonwalker.com/pastel-mix-grey.png)\n\nI really want to get this into my workflow.  I saw it quite awhile ago but have\nnot done much color work.  Lately I have been doing a bit more front end, and\nhave been getting into game development.  This is the time to stop googling\nrandom color mixers and use this one.\n",
      "summary": "From the same Author that brought us command line essentials like and written in rust comes pastel an incredible command-line tool to generate, analyze,...",
      "date_published": "2022-04-05T17:20:37Z",
      "date_modified": "2022-04-05T17:20:37Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "cli"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/dunk-is-my-new-diff-pager/",
      "url": "https://go.waylonwalker.com/dunk-is-my-new-diff-pager/",
      "title": "Dunk is my new diff pager",
      "content_html": "\u003cp\u003e\u003ca href=\"https://github.com/darrenburns/dunk\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eDunk\u003c/a\u003e is a beautiful \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e diff tool\nbuilt on top of \u003ca href=\"https://github.com/Textualize/rich\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003erich\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eBrowsing through twitter the other day I discovered it through this\ntweet by \u003ca href=\"https://twitter.com/_darrenburns\"\u003e_darrenburns\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://twitter.com/_darrenburns/status/1510350016623394817\" class=\"hoverlink\"\u003ehttps://twitter.com/_darrenburns/status/1510350016623394817\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"dunk-is-beta\"\u003eDunk is beta \u003ca href=\"#dunk-is-beta\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eBefore I dive in deep, I do want to mention that Dunk is super new and beta at\nthis point.  I am making it my default pager, because I know what I am doing\nand can quickly shift back if I need to, no sweat.  If you are a little less\ncomfortable with the command line, terminal, or reading any issues that might\ncome up, it might be best if you just pipe into Dunk when you want to use it.\u003c/p\u003e\n\u003cp\u003eThe author really cautions the use of it as your default pager this early, I’m\njust showing that it’s possible, and I’m trying it.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eHe notes that it might have some issues especially with partially staged files.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"try-it\"\u003etry it \u003ca href=\"#try-it\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eYou can try it with pipx.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit diff \u003cspan class=\"p\"\u003e|\u003c/span\u003e pipx run dunk\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"install-it\"\u003einstall it \u003ca href=\"#install-it\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIf you like it, you can install it with pip or pipx, I prefer pipx for\ncli applications like this.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epipx install dunk\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"set-it-as-your-default-pager\"\u003eset it as your default pager \u003ca href=\"#set-it-as-your-default-pager\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eYou can configure dunk as your default pager with the command line, or\nby editing your \u003ccode\u003e.gitconfig\u003c/code\u003e file.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit config --global pager.diff \u003cspan class=\"s2\"\u003e\u0026#34;dunk | less -R`\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nx\"\u003epager\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nx\"\u003ediff\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"nx\"\u003edunk\u003c/span\u003e \u003cspan class=\"err\"\u003e|\u003c/span\u003e \u003cspan class=\"nx\"\u003eless\u003c/span\u003e \u003cspan class=\"nx\"\u003e-R\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003eAs \u003ca href=\"https://twitter.com/_darrenburns/status/1511106440613797896\"\u003epointed out\u003c/a\u003e by\n\u003ca href=\"https://twitter.com/_darrenburns\"\u003e_darrenburns\u003c/a\u003e dunk is not a pager and you\ncan gain back all of the benefits of using a pager by piping into less with the\n\u003ccode\u003e-R\u003c/code\u003e flag.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"reset-it-if-you-dont-like-it\"\u003ereset it if you don’t like it \u003ca href=\"#reset-it-if-you-dont-like-it\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eYou can \u003ccode\u003e--unset\u003c/code\u003e your pager configuration from the command line or edit\nyour \u003ccode\u003e.gitconfig\u003c/code\u003e file by hand to remove the lines shown above.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit config --global --unset pager.diff\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"comparison\"\u003eComparison \u003ca href=\"#comparison\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI have some edits to a game my son and I are working on unstaged so I\nran \u003ccode\u003egit diff\u003c/code\u003e on that project with and without dunk to compare the\ndifferences.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://images.waylonwalker.com/git-diff-creeper-adventure-default.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://images.waylonwalker.com/git-diff-creeper-adventure-default.png\" alt=\"default diff\"/ data-glightbox=\"description: default diff\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eDunk just looks so good.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://images.waylonwalker.com/git-diff-creeper-adventure-dunk.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://images.waylonwalker.com/git-diff-creeper-adventure-dunk.png\" alt=\"dunk diff\"/ data-glightbox=\"description: dunk diff\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"always-install\"\u003eAlways install \u003ca href=\"#always-install\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIf you follow along here often you know that I am a big fan of\ninstalling all my tools in an ansible playbook so that I don’t suffer\nconfiguring a new machine for months after getting it and wondering why\nits not exactly like the last.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c\"\u003e# Dunk - prettier git diffs\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"c\"\u003e# https://github.com/darrenburns/dunk\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e- \u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003echeck is dunk installed\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003eshell\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ecommand -v black\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003eregister\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003edunk_exists\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003eignore_errors\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"kc\"\u003eyes\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e- \u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003einstall dunk\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003ewhen\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003edunk_exists is failed\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003eshell\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003epipx install dunk\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e[[ ansible-install-if-not-callable ]]\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eMore on conditionally installing tools with ansible in this post.\u003c/p\u003e\n\u003c/blockquote\u003e\n",
      "content_text": "\n[Dunk](https://github.com/darrenburns/dunk) is a beautiful git diff tool\nbuilt on top of [rich](https://github.com/Textualize/rich).\n\nBrowsing through twitter the other day I discovered it through this\ntweet by [_darrenburns](https://twitter.com/_darrenburns).\n\n[https://twitter.com/_darrenburns/status/1510350016623394817](https://twitter.com/_darrenburns/status/1510350016623394817){.hoverlink}\n\n## Dunk is beta\n\nBefore I dive in deep, I do want to mention that Dunk is super new and beta at\nthis point.  I am making it my default pager, because I know what I am doing\nand can quickly shift back if I need to, no sweat.  If you are a little less\ncomfortable with the command line, terminal, or reading any issues that might\ncome up, it might be best if you just pipe into Dunk when you want to use it.\n\nThe author really cautions the use of it as your default pager this early, I'm\njust showing that it's possible, and I'm trying it.\n\n\u003e He notes that it might have some issues especially with partially staged files.\n\n## try it\n\nYou can try it with pipx.\n\n```bash\ngit diff | pipx run dunk\n```\n\n## install it\n\nIf you like it, you can install it with pip or pipx, I prefer pipx for\ncli applications like this.\n\n```bash\npipx install dunk\n```\n\n## set it as your default pager\n\nYou can configure dunk as your default pager with the command line, or\nby editing your `.gitconfig` file.\n\n```bash\ngit config --global pager.diff \"dunk | less -R`\n```\n\n```toml\n[pager]\n    diff = dunk | less -R\n```\n\n\u003e As [pointed out](https://twitter.com/_darrenburns/status/1511106440613797896) by\n\u003e [_darrenburns](https://twitter.com/_darrenburns) dunk is not a pager and you\n\u003e can gain back all of the benefits of using a pager by piping into less with the\n\u003e `-R` flag.\n\n## reset it if you don't like it\n\nYou can `--unset` your pager configuration from the command line or edit\nyour `.gitconfig` file by hand to remove the lines shown above.\n\n```bash\ngit config --global --unset pager.diff\n```\n\n## Comparison\n\nI have some edits to a game my son and I are working on unstaged so I\nran `git diff` on that project with and without dunk to compare the\ndifferences.\n\n![default diff](https://images.waylonwalker.com/git-diff-creeper-adventure-default.png)\n\nDunk just looks so good.\n\n![dunk diff](https://images.waylonwalker.com/git-diff-creeper-adventure-dunk.png)\n\n## Always install\n\nIf you follow along here often you know that I am a big fan of\ninstalling all my tools in an ansible playbook so that I don't suffer\nconfiguring a new machine for months after getting it and wondering why\nits not exactly like the last.\n\n```yaml\n# Dunk - prettier git diffs\n# https://github.com/darrenburns/dunk\n- name: check is dunk installed\n  shell: command -v black\n  register: dunk_exists\n  ignore_errors: yes\n\n- name: install dunk\n  when: dunk_exists is failed\n  shell: pipx install dunk\n```\n\n[[ ansible-install-if-not-callable ]]\n\n\u003e More on conditionally installing tools with ansible in this post.\n",
      "summary": "Dunk is a beautiful git diff tool built on top of rich.",
      "date_published": "2022-04-04T15:47:00Z",
      "date_modified": "2022-04-04T15:47:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "linux",
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/pygame-boilerplate-apr-2022/",
      "url": "https://go.waylonwalker.com/pygame-boilerplate-apr-2022/",
      "title": "Pygame Boilerplate Apr 2022",
      "content_html": "\u003cp\u003eI’m poking a bit into gamedev.  Partly to better understand, partly\nbecause it’s stretching different parts of my brain/skillset than\nwriting data pipelines does, but mostly for the experience of designing\nthem with my 9yo Wyatt.\u003c/p\u003e\n\u003ch2 id=\"pygame-boilerplates\"\u003epygame boilerplates \u003ca href=\"#pygame-boilerplates\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI’ve seen several pygame boilerplate templates, but they all seem to\nrely heavily on globl variables.  That’s just not how I generally\ndevelop anything.  I want a package that I can pip install, run, import,\ntest, all the good stuff.\u003c/p\u003e\n\u003ch2 id=\"my-current-starter\"\u003eMy current starter \u003ca href=\"#my-current-starter\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWhat currently have is a single module starter package that is on github\nso that I can install it and start building games with very little code.\u003c/p\u003e\n\u003ch2 id=\"installation\"\u003eInstallation \u003ca href=\"#installation\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eSince it’s a package on GitHub you can install it with the \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e+ prefix.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epip install git+https://github.com/WaylonWalker/pygame-starter\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"example-game\"\u003eExample Game \u003ca href=\"#example-game\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eYou can make a quick game by inheriting from Game, and calling\n\u003ccode\u003e.run()\u003c/code\u003e.  This example just fills the screen with an aqua color, but\nyou can put all of your game logic in the \u003ccode\u003egame\u003c/code\u003e method.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003epygame_starer\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eGame\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eclass\u003c/span\u003e \u003cspan class=\"nc\"\u003eMyGame\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eGame\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003egame\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003escreen\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003efill\u003c/span\u003e\u003cspan class=\"p\"\u003e((\u003c/span\u003e\u003cspan class=\"mi\"\u003e128\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mi\"\u003e255\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mi\"\u003e255\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"vm\"\u003e__name__\u003c/span\u003e \u003cspan class=\"o\"\u003e==\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;__main__\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003egame\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eMyGame\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003egame\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003erun\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"the-starter\"\u003eThe starter \u003ca href=\"#the-starter\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eHere is what the current \u003ccode\u003egame.py\u003c/code\u003e looks like.  I will probably update\nit as time goes on and I learn more about the things I want to do with\nit.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003etyping\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eTuple\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003epygame\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eclass\u003c/span\u003e \u003cspan class=\"nc\"\u003eGame\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"fm\"\u003e__init__\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003escreen_size\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003eTuple\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nb\"\u003eint\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"nb\"\u003eint\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e854\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mi\"\u003e480\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003ecaption\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"nb\"\u003estr\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;pygame-starter\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003etick_speed\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"nb\"\u003eint\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"mi\"\u003e60\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e        screen_size (Tuple[int, int]): The size of the screen you want to use, defaults to 480p.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e        caption (str): the name of the game that will appear in the title of the window, defaults to `pygame-starter`.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e        tick_speed (int): the ideal clock speed of the game, defaults to 60\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e        ## Example Game\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e        You can make a quick game by inheriting from Game, and calling\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e        `.run()`.  This example just fills the screen with an aqua color, but\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e        you can put all of your game logic in the `game` method.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e        ``` python\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e        from pygame_starer import Game\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e        class MyGame(Game):\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e            def game(self):\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e                self.screen.fill((128, 255, 255))\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e        if __name__ == \u0026#34;__main__\u0026#34;:\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e            game = MyGame()\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e            game.run()\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e        ```\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e        \u0026#34;\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003epygame\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003einit\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003epygame\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003edisplay\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eset_caption\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ecaption\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003escreen_size\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003escreen_size\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003escreen\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epygame\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003edisplay\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eset_mode\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003escreen_size\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eclock\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epygame\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003etime\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eClock\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003etick_speed\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003etick_speed\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003erunning\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"kc\"\u003eTrue\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003esurfs\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003eshould_quit\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u0026#34;check for pygame.QUIT event and exit\u0026#34;\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003eevent\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003epygame\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eevent\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eget\u003c/span\u003e\u003cspan class=\"p\"\u003e():\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"n\"\u003eevent\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003etype\u003c/span\u003e \u003cspan class=\"o\"\u003e==\u003c/span\u003e \u003cspan class=\"n\"\u003epygame\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eQUIT\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003erunning\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"kc\"\u003eFalse\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003egame\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e        This is where you put your game logic.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e        \u0026#34;\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"o\"\u003e...\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003ereset_screen\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e        fill the screen with black\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e        \u0026#34;\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003escreen\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003efill\u003c/span\u003e\u003cspan class=\"p\"\u003e((\u003c/span\u003e\u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003eupdate\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e        run one update cycle\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e        \u0026#34;\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eshould_quit\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ereset_screen\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003egame\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003esurf\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003esurfs\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003escreen\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eblit\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003esurf\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003epygame\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003edisplay\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eupdate\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eclock\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003etick\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003etick_speed\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003erun\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e        run update at the specified tick_speed, until exit.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e        \u0026#34;\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003ewhile\u003c/span\u003e \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003erunning\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eupdate\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003epygame\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003equit\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"vm\"\u003e__name__\u003c/span\u003e \u003cspan class=\"o\"\u003e==\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;__main__\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003egame\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eGame\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003egame\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003erun\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nI'm poking a bit into gamedev.  Partly to better understand, partly\nbecause it's stretching different parts of my brain/skillset than\nwriting data pipelines does, but mostly for the experience of designing\nthem with my 9yo Wyatt.\n\n## pygame boilerplates\n\nI've seen several pygame boilerplate templates, but they all seem to\nrely heavily on globl variables.  That's just not how I generally\ndevelop anything.  I want a package that I can pip install, run, import,\ntest, all the good stuff.\n\n## My current starter\n\nWhat currently have is a single module starter package that is on github\nso that I can install it and start building games with very little code.\n\n## Installation\n\nSince it's a package on GitHub you can install it with the git+ prefix.\n\n``` bash\npip install git+https://github.com/WaylonWalker/pygame-starter\n```\n\n## Example Game\n\nYou can make a quick game by inheriting from Game, and calling\n`.run()`.  This example just fills the screen with an aqua color, but\nyou can put all of your game logic in the `game` method.\n\n``` python\nfrom pygame_starer import Game\n\nclass MyGame(Game):\n    def game(self):\n        self.screen.fill((128, 255, 255))\n\nif __name__ == \"__main__\":\n    game = MyGame()\n    game.run()\n\n```\n\n## The starter\n\nHere is what the current `game.py` looks like.  I will probably update\nit as time goes on and I learn more about the things I want to do with\nit.\n\n```python\nfrom typing import Tuple\n\nimport pygame\n\n\nclass Game:\n    def __init__(\n        self,\n        screen_size: Tuple[int, int] = (854, 480),\n        caption: str = \"pygame-starter\",\n        tick_speed: int = 60,\n    ):\n        \"\"\"\n\n        screen_size (Tuple[int, int]): The size of the screen you want to use, defaults to 480p.\n        caption (str): the name of the game that will appear in the title of the window, defaults to `pygame-starter`.\n        tick_speed (int): the ideal clock speed of the game, defaults to 60\n\n        ## Example Game\n\n        You can make a quick game by inheriting from Game, and calling\n        `.run()`.  This example just fills the screen with an aqua color, but\n        you can put all of your game logic in the `game` method.\n\n        ``` python\n        from pygame_starer import Game\n\n        class MyGame(Game):\n            def game(self):\n                self.screen.fill((128, 255, 255))\n\n        if __name__ == \"__main__\":\n            game = MyGame()\n            game.run()\n\n        ```\n        \"\"\"\n        pygame.init()\n        pygame.display.set_caption(caption)\n\n        self.screen_size = screen_size\n        self.screen = pygame.display.set_mode(self.screen_size)\n        self.clock = pygame.time.Clock()\n        self.tick_speed = tick_speed\n\n        self.running = True\n        self.surfs = []\n\n    def should_quit(self):\n        \"\"\"check for pygame.QUIT event and exit\"\"\"\n        for event in pygame.event.get():\n            if event.type == pygame.QUIT:\n                self.running = False\n\n    def game(self):\n        \"\"\"\n        This is where you put your game logic.\n\n        \"\"\"\n        ...\n\n    def reset_screen(self):\n        \"\"\"\n        fill the screen with black\n        \"\"\"\n        self.screen.fill((0, 0, 0))\n\n    def update(self):\n        \"\"\"\n        run one update cycle\n        \"\"\"\n        self.should_quit()\n        self.reset_screen()\n        self.game()\n        for surf in self.surfs:\n            self.screen.blit(surf, (0, 0))\n        pygame.display.update()\n        self.clock.tick(self.tick_speed)\n\n    def run(self):\n        \"\"\"\n        run update at the specified tick_speed, until exit.\n        \"\"\"\n        while self.running:\n            self.update()\n        pygame.quit()\n\n\nif __name__ == \"__main__\":\n    game = Game()\n    game.run()\n```\n",
      "summary": "I'm poking a bit into gamedev. Partly to better understand, partly because it's stretching different parts of my brain/skillset than writing data pipelines...",
      "date_published": "2022-04-03T16:32:40Z",
      "date_modified": "2022-04-03T16:32:40Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "gamedev"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/linux-unzip-directory/",
      "url": "https://go.waylonwalker.com/linux-unzip-directory/",
      "title": "Unzip minecraft mods to their directory from the command line",
      "content_html": "\u003cp\u003eThis morning I was trying to install a modpack on my minecraft server after\ngetting a zip file, and its quite painful when I unzip everything in the\ncurrent directory rather than the directory it belongs in.\u003c/p\u003e\n\u003ch2 id=\"i-had-the-files-on-a-windows-machine\"\u003eI had the files on a Windows Machine \u003ca href=\"#i-had-the-files-on-a-windows-machine\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eSo I’ve been struggling to get mods installed on linux lately and the easiest\nway to download the entire pack rather than each mod one by one seems to be to\nuse the overwolf application on windows.  Once I have the modpack I can start\nmyself a small mod-server by zipping it, putting it in a mod-server directory\nand running a python \u003ccode\u003ehttp.server\u003c/code\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epython -m http.server\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"downoading-on-the-server\"\u003eDownoading on the server \u003ca href=\"#downoading-on-the-server\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThen I go back to my server and download the modpack with wget.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ewget\u003c/span\u003e \u003cspan class=\"mf\"\u003e10.0.0.171\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"mi\"\u003e8000\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003eOne\u003c/span\u003e\u003cspan class=\"o\"\u003e%\u003c/span\u003e\u003cspan class=\"mi\"\u003e2\u003c/span\u003e\u003cspan class=\"n\"\u003eBBlock\u003c/span\u003e\u003cspan class=\"o\"\u003e%\u003c/span\u003e\u003cspan class=\"mi\"\u003e2\u003c/span\u003e\u003cspan class=\"n\"\u003eBServer\u003c/span\u003e\u003cspan class=\"o\"\u003e%\u003c/span\u003e\u003cspan class=\"mi\"\u003e2\u003c/span\u003e\u003cspan class=\"n\"\u003eBPack\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"mf\"\u003e1.4\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ezip\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"unzip-to-the-minecraft-data-directory\"\u003eUnzip to the minecraft-data directory \u003ca href=\"#unzip-to-the-minecraft-data-directory\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNow I can unzip my mods into the \u003ccode\u003eminecraft-data\u003c/code\u003e directory.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eunzip One+Block+Server+Pack-1.4.zip -d minecraft-data\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"running-the-server-with-docker\"\u003eRunning the server with docker \u003ca href=\"#running-the-server-with-docker\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI run the minecraft server with docker, which is setup to mount the\nminecraft-data directory.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/docker-minecraft-server/\" class=\"wikilink\" data-title=\"Running a Minecraft Server in Docker\" data-description=\"I\u0026#39;ve ran a Minecraft server at home since December 2017 for me and my son to play on. We start a brand new one somewhere between every day and every week....\" data-date=\"2022-02-07\" data-preview=\"I\u0026#39;ve ran a Minecraft server at home since December 2017 for me and my son to play on. We start a brand new one somewhere between every day and every week....\"\u003eRunning a Minecraft Server in Docker\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eA bit more on that in the other post, but when I download the whole modpack\nlike this I make these changes to my docker compose. (commented out lines)\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003eversion\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;3.8\u0026#34;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003eservices\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003emc\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003econtainer_name\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ewalkercraft\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eimage\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eitzg/minecraft-server:java8\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eenvironment\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003eEULA\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;TRUE\u0026#34;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003eTYPE\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;FORGE\u0026#34;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003eVERSION\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"m\"\u003e1.15.2\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"c\"\u003e# MODS_FILE: /extras/mods.txt\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"c\"\u003e# REMOVE_OLD_MODS: \u0026#34;true\u0026#34;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003etty\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"kc\"\u003etrue\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003estdin_open\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"kc\"\u003etrue\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003erestart\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eunless-stopped\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eports\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e- \u003cspan class=\"m\"\u003e25565\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"m\"\u003e25565\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003evolumes\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e- \u003cspan class=\"l\"\u003e./minecraft-data:/data\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"c\"\u003e# - ./mods.txt:/extras/mods.txt:ro\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003evolumes\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003edata\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nThis morning I was trying to install a modpack on my minecraft server after\ngetting a zip file, and its quite painful when I unzip everything in the\ncurrent directory rather than the directory it belongs in.\n\n## I had the files on a Windows Machine\n\nSo I've been struggling to get mods installed on linux lately and the easiest\nway to download the entire pack rather than each mod one by one seems to be to\nuse the overwolf application on windows.  Once I have the modpack I can start\nmyself a small mod-server by zipping it, putting it in a mod-server directory\nand running a python `http.server`\n\n```bash\npython -m http.server\n```\n\n## Downoading on the server\n\nThen I go back to my server and download the modpack with wget.\n\n``` python\nwget 10.0.0.171:8000/One%2BBlock%2BServer%2BPack-1.4.zip\n```\n\n## Unzip to the minecraft-data directory\n\nNow I can unzip my mods into the `minecraft-data` directory.\n\n```bash\nunzip One+Block+Server+Pack-1.4.zip -d minecraft-data\n```\n\n## Running the server with docker\n\nI run the minecraft server with docker, which is setup to mount the\nminecraft-data directory.\n\n\u003ca href=\"/docker-minecraft-server/\" class=\"wikilink\" data-title=\"Running a Minecraft Server in Docker\" data-description=\"I\u0026#39;ve ran a Minecraft server at home since December 2017 for me and my son to play on. We start a brand new one somewhere between every day and every week....\" data-date=\"2022-02-07\"\u003eRunning a Minecraft Server in Docker\u003c/a\u003e\n\nA bit more on that in the other post, but when I download the whole modpack\nlike this I make these changes to my docker compose. (commented out lines)\n\n```yaml\nversion: \"3.8\"\n\nservices:\n  mc:\n    container_name: walkercraft\n    image: itzg/minecraft-server:java8\n    environment:\n      EULA: \"TRUE\"\n      TYPE: \"FORGE\"\n      VERSION: 1.15.2\n      # MODS_FILE: /extras/mods.txt\n      # REMOVE_OLD_MODS: \"true\"\n    tty: true\n    stdin_open: true\n    restart: unless-stopped\n    ports:\n      - 25565:25565\n    volumes:\n      - ./minecraft-data:/data\n      # - ./mods.txt:/extras/mods.txt:ro\n\nvolumes:\n  data:\n```\n",
      "summary": "This morning I was trying to install a modpack on my minecraft server after getting a zip file, and its quite painful when I unzip everything in the current...",
      "date_published": "2022-04-02T16:20:34Z",
      "date_modified": "2022-04-02T16:20:34Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux",
        "bash",
        "cli"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/site-down/",
      "url": "https://go.waylonwalker.com/site-down/",
      "title": "Did my site build just go down?",
      "content_html": "\u003cp\u003eMy personal Site build went down last week, and I was unable to publish a new\narticle.  This is the process I went through to get it back up and running\nquickly.\u003c/p\u003e\n\u003ch2 id=\"is-it-a-fluke\"\u003eIs it a fluke? \u003ca href=\"#is-it-a-fluke\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eClassic IT fix, rerun it and see if you get the same error.  Everyone is busy\nand when you have your build go down you are probably busy doing something\nelse.  My first step is often to simply click rerun right from GitHub actions.\nSometimes this will fix it, and sometimes it doesn’t.  It’s an easy fix to run\nin the meantime you are not focused on fixing it.\u003c/p\u003e\n\u003ch2 id=\"is-github-having-issues\"\u003eIs GitHub having issues? \u003ca href=\"#is-github-having-issues\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAlso worth a check to see if GitHub is having a hiccup or not.  This error felt\npretty obviously not GitHub’s fault, but it’s a good one to check when you run\ninto a weird unexplainable error.\u003c/p\u003e\n\u003cp\u003eCheck \u003ca href=\"https://www.githubstatus.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.githubstatus.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.githubstatus.com.ico\" class=\"has-avatar  has-avatar-before\"\u003egithub status\u003c/a\u003e for any downtime issues with actions.\u003c/p\u003e\n\u003ch2 id=\"build-down\"\u003eBuild Down \u003ca href=\"#build-down\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAlright down to the error message I got.  The error is pretty obvious that\nsomewhere I am trying to import a non-existing module from click.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eRun\u003c/span\u003e \u003cspan class=\"n\"\u003emarkata\u003c/span\u003e \u003cspan class=\"n\"\u003ebuild\u003c/span\u003e \u003cspan class=\"o\"\u003e--\u003c/span\u003e\u003cspan class=\"n\"\u003eno\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003epretty\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eTraceback\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003emost\u003c/span\u003e \u003cspan class=\"n\"\u003erecent\u003c/span\u003e \u003cspan class=\"n\"\u003ecall\u003c/span\u003e \u003cspan class=\"n\"\u003elast\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"n\"\u003eFile\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/opt/hostedtoolcache/Python/3.8.12/x64/bin/markata\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eline\u003c/span\u003e \u003cspan class=\"mi\"\u003e33\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003emodule\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003esys\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eexit\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eload_entry_point\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;markata==0.1.0\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;console_scripts\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;markata\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)())\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"n\"\u003eFile\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/opt/hostedtoolcache/Python/3.8.12/x64/bin/markata\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eline\u003c/span\u003e \u003cspan class=\"mi\"\u003e25\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003eimportlib_load_entry_point\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"nb\"\u003enext\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ematches\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eload\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"n\"\u003eFile\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/opt/hostedtoolcache/Python/3.8.12/x64/lib/python3.8/importlib/metadata.py\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eline\u003c/span\u003e \u003cspan class=\"mi\"\u003e77\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003eload\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003emodule\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eimport_module\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"k\"\u003ematch\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003egroup\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;module\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"n\"\u003eFile\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/opt/hostedtoolcache/Python/3.8.12/x64/lib/python3.8/importlib/__init__.py\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eline\u003c/span\u003e \u003cspan class=\"mi\"\u003e127\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003eimport_module\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"n\"\u003e_bootstrap\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003e_gcd_import\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"n\"\u003elevel\u003c/span\u003e\u003cspan class=\"p\"\u003e:],\u003c/span\u003e \u003cspan class=\"n\"\u003epackage\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003elevel\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"n\"\u003eFile\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;\u0026lt;frozen importlib._bootstrap\u0026gt;\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eline\u003c/span\u003e \u003cspan class=\"mi\"\u003e1014\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003e_gcd_import\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"n\"\u003eFile\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;\u0026lt;frozen importlib._bootstrap\u0026gt;\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eline\u003c/span\u003e \u003cspan class=\"mi\"\u003e991\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003e_find_and_load\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"n\"\u003eFile\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;\u0026lt;frozen importlib._bootstrap\u0026gt;\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eline\u003c/span\u003e \u003cspan class=\"mi\"\u003e961\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003e_find_and_load_unlocked\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"n\"\u003eFile\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;\u0026lt;frozen importlib._bootstrap\u0026gt;\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eline\u003c/span\u003e \u003cspan class=\"mi\"\u003e219\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003e_call_with_frames_removed\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"n\"\u003eFile\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;\u0026lt;frozen importlib._bootstrap\u0026gt;\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eline\u003c/span\u003e \u003cspan class=\"mi\"\u003e1014\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003e_gcd_import\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"n\"\u003eFile\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;\u0026lt;frozen importlib._bootstrap\u0026gt;\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eline\u003c/span\u003e \u003cspan class=\"mi\"\u003e991\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003e_find_and_load\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"n\"\u003eFile\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;\u0026lt;frozen importlib._bootstrap\u0026gt;\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eline\u003c/span\u003e \u003cspan class=\"mi\"\u003e975\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003e_find_and_load_unlocked\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"n\"\u003eFile\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;\u0026lt;frozen importlib._bootstrap\u0026gt;\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eline\u003c/span\u003e \u003cspan class=\"mi\"\u003e671\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003e_load_unlocked\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"n\"\u003eFile\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;\u0026lt;frozen importlib._bootstrap_external\u0026gt;\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eline\u003c/span\u003e \u003cspan class=\"mi\"\u003e843\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003eexec_module\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"n\"\u003eFile\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;\u0026lt;frozen importlib._bootstrap\u0026gt;\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eline\u003c/span\u003e \u003cspan class=\"mi\"\u003e219\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003e_call_with_frames_removed\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"n\"\u003eFile\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/opt/hostedtoolcache/Python/3.8.12/x64/lib/python3.8/site-packages/markata/__init__.py\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eline\u003c/span\u003e \u003cspan class=\"mi\"\u003e25\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003emodule\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003emarkata.cli.plugins\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003ePlugins\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"n\"\u003eFile\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/opt/hostedtoolcache/Python/3.8.12/x64/lib/python3.8/site-packages/markata/cli/__init__.py\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eline\u003c/span\u003e \u003cspan class=\"mi\"\u003e1\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003emodule\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003e.cli\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eapp\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ecli\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003emake_layout\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003erun_until_keyboard_interrupt\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"n\"\u003eFile\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/opt/hostedtoolcache/Python/3.8.12/x64/lib/python3.8/site-packages/markata/cli/cli.py\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eline\u003c/span\u003e \u003cspan class=\"mi\"\u003e3\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003emodule\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003etyper\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"n\"\u003eFile\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/opt/hostedtoolcache/Python/3.8.12/x64/lib/python3.8/site-packages/typer/__init__.py\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eline\u003c/span\u003e \u003cspan class=\"mi\"\u003e12\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003emodule\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003eclick.termui\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eget_terminal_size\u003c/span\u003e \u003cspan class=\"k\"\u003eas\u003c/span\u003e \u003cspan class=\"n\"\u003eget_terminal_size\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"ne\"\u003eImportError\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003ecannot\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003ename\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;get_terminal_size\u0026#39;\u003c/span\u003e \u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;click.termui\u0026#39;\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003eopt\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003ehostedtoolcache\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003ePython\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"mf\"\u003e3.8.12\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003ex64\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003elib\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003epython3\u003c/span\u003e\u003cspan class=\"mf\"\u003e.8\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003esite\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003epackages\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003eclick\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003etermui\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003epy\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"check-pypis-release-date-of-click\"\u003eCheck pypi’s release date of click \u003ca href=\"#check-pypis-release-date-of-click\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eSo the latest click was released just a few hours before this build.  This\nfeels like we are getting somewhere.  Either click did a poor job of issuing\ndeprecation warnings, or I was ignoring them in my build pipeline.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://images.waylonwalker.com/click-8-1-0-release-date.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://images.waylonwalker.com/click-8-1-0-release-date.png\" alt=\"click 8.1.0 release date on pypi\"/ data-glightbox=\"description: click 8.1.0 release date on pypi\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"pin-it-and-push\"\u003epin it and push \u003ca href=\"#pin-it-and-push\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003elet’s fix this build now\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eTo get the build up and running today so that we don’t stop the flow of new\nposts I am going to open my \u003ccode\u003erequirements.txt\u003c/code\u003e file, and pin under the version\nthat was just built.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eclick\u0026lt;8.1.0\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eSince I am still busy doing other things that fixing this, and am pretty\nconfident that things were working before, I am just going to commit this and\nship it.\u003c/p\u003e\n\u003ch2 id=\"watch-ci\"\u003ewatch ci \u003ca href=\"#watch-ci\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eComing back to actions a few minutes later shows the site is building\nsuccessfully without the same error as before.  New posts will now be flowing\nto the site with the slightly older version of click.\u003c/p\u003e\n\u003ch2 id=\"looking-for-an-issue\"\u003elooking for an issue \u003ca href=\"#looking-for-an-issue\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLet’s make sure that the issue is going to be resolved. After not being busy\nand having time to investigate the issue, I can see that typer is the library\nmaking the import to \u003ccode\u003eget_terminal_size\u003c/code\u003e.  Lets checkout its\n\u003ca href=\"https://github.com/tiangolo/typer/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eGitHub-repo\u003c/a\u003e and make sure someone is\nworking on it.\u003c/p\u003e\n\u003cp\u003eBy the time I go to the package that was having this issue there was already an\n\u003ca href=\"https://github.com/tiangolo/typer/issues/377\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eissue\u003c/a\u003e up, and PR waiting\napproval.  I gave the Issue a reaction 👍 to signal that I also care, and\nappreciate the issue author taking time to submit.\u003c/p\u003e\n",
      "content_text": "\nMy personal Site build went down last week, and I was unable to publish a new\narticle.  This is the process I went through to get it back up and running\nquickly.\n\n## Is it a fluke?\n\nClassic IT fix, rerun it and see if you get the same error.  Everyone is busy\nand when you have your build go down you are probably busy doing something\nelse.  My first step is often to simply click rerun right from GitHub actions.\nSometimes this will fix it, and sometimes it doesn't.  It's an easy fix to run\nin the meantime you are not focused on fixing it.\n\n## Is GitHub having issues?\n\nAlso worth a check to see if GitHub is having a hiccup or not.  This error felt\npretty obviously not GitHub's fault, but it's a good one to check when you run\ninto a weird unexplainable error.\n\nCheck [github status](https://www.githubstatus.com/) for any downtime issues with actions.\n\n## Build Down\n\nAlright down to the error message I got.  The error is pretty obvious that\nsomewhere I am trying to import a non-existing module from click.\n\n``` python\nRun markata build --no-pretty\nTraceback (most recent call last):\n  File \"/opt/hostedtoolcache/Python/3.8.12/x64/bin/markata\", line 33, in \u003cmodule\u003e\n    sys.exit(load_entry_point('markata==0.1.0', 'console_scripts', 'markata')())\n  File \"/opt/hostedtoolcache/Python/3.8.12/x64/bin/markata\", line 25, in importlib_load_entry_point\n    return next(matches).load()\n  File \"/opt/hostedtoolcache/Python/3.8.12/x64/lib/python3.8/importlib/metadata.py\", line 77, in load\n    module = import_module(match.group('module'))\n  File \"/opt/hostedtoolcache/Python/3.8.12/x64/lib/python3.8/importlib/__init__.py\", line 127, in import_module\n    return _bootstrap._gcd_import(name[level:], package, level)\n  File \"\u003cfrozen importlib._bootstrap\u003e\", line 1014, in _gcd_import\n  File \"\u003cfrozen importlib._bootstrap\u003e\", line 991, in _find_and_load\n  File \"\u003cfrozen importlib._bootstrap\u003e\", line 961, in _find_and_load_unlocked\n  File \"\u003cfrozen importlib._bootstrap\u003e\", line 219, in _call_with_frames_removed\n  File \"\u003cfrozen importlib._bootstrap\u003e\", line 1014, in _gcd_import\n  File \"\u003cfrozen importlib._bootstrap\u003e\", line 991, in _find_and_load\n  File \"\u003cfrozen importlib._bootstrap\u003e\", line 975, in _find_and_load_unlocked\n  File \"\u003cfrozen importlib._bootstrap\u003e\", line 671, in _load_unlocked\n  File \"\u003cfrozen importlib._bootstrap_external\u003e\", line 843, in exec_module\n  File \"\u003cfrozen importlib._bootstrap\u003e\", line 219, in _call_with_frames_removed\n  File \"/opt/hostedtoolcache/Python/3.8.12/x64/lib/python3.8/site-packages/markata/__init__.py\", line 25, in \u003cmodule\u003e\n    from markata.cli.plugins import Plugins\n  File \"/opt/hostedtoolcache/Python/3.8.12/x64/lib/python3.8/site-packages/markata/cli/__init__.py\", line 1, in \u003cmodule\u003e\n    from .cli import app, cli, make_layout, run_until_keyboard_interrupt\n  File \"/opt/hostedtoolcache/Python/3.8.12/x64/lib/python3.8/site-packages/markata/cli/cli.py\", line 3, in \u003cmodule\u003e\n    import typer\n  File \"/opt/hostedtoolcache/Python/3.8.12/x64/lib/python3.8/site-packages/typer/__init__.py\", line 12, in \u003cmodule\u003e\n    from click.termui import get_terminal_size as get_terminal_size\nImportError: cannot import name 'get_terminal_size' from 'click.termui' (/opt/hostedtoolcache/Python/3.8.12/x64/lib/python3.8/site-packages/click/termui.py)\n```\n\n## Check pypi's release date of click\n\nSo the latest click was released just a few hours before this build.  This\nfeels like we are getting somewhere.  Either click did a poor job of issuing\ndeprecation warnings, or I was ignoring them in my build pipeline.\n\n![click 8.1.0 release date on pypi](https://images.waylonwalker.com/click-8-1-0-release-date.png)\n\n## pin it and push\n_let's fix this build now_\n\nTo get the build up and running today so that we don't stop the flow of new\nposts I am going to open my `requirements.txt` file, and pin under the version\nthat was just built.\n\n``` txt\nclick\u003c8.1.0\n```\n\nSince I am still busy doing other things that fixing this, and am pretty\nconfident that things were working before, I am just going to commit this and\nship it.\n\n## watch ci\n\nComing back to actions a few minutes later shows the site is building\nsuccessfully without the same error as before.  New posts will now be flowing\nto the site with the slightly older version of click.\n\n## looking for an issue\n\nLet's make sure that the issue is going to be resolved. After not being busy\nand having time to investigate the issue, I can see that typer is the library\nmaking the import to `get_terminal_size`.  Lets checkout its\n[GitHub-repo](https://github.com/tiangolo/typer/) and make sure someone is\nworking on it.\n\nBy the time I go to the package that was having this issue there was already an\n[issue](https://github.com/tiangolo/typer/issues/377) up, and PR waiting\napproval.  I gave the Issue a reaction 👍 to signal that I also care, and\nappreciate the issue author taking time to submit.\n",
      "summary": "My personal Site build went down last week, and I was unable to publish a new article. This is the process I went through to get it back up and running quickly.",
      "date_published": "2022-04-01T16:25:49Z",
      "date_modified": "2022-04-01T16:25:49Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/python-base-exception/",
      "url": "https://go.waylonwalker.com/python-base-exception/",
      "title": "Don't inherit from python BaseException, Here's why.",
      "content_html": "\u003cp\u003eI ran into a PR this week where the author was inheriting what BaseException\nrather than exception.  I made this example to illustrate the unintended side\neffects that it can have.\u003c/p\u003e\n\u003cp\u003eTry running these examples in a \u003ccode\u003e.py\u003c/code\u003e file for yourself and try to kill them\nwith control-c.\u003c/p\u003e\n\u003ch2 id=\"you-cannot-keybard-interrupt\"\u003eYou cannot Keybard interrupt \u003ca href=\"#you-cannot-keybard-interrupt\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eSince things such as \u003ccode\u003eKeyboardInterrupt\u003c/code\u003e are created as an exception that\ninherits from \u003ccode\u003eBaseException\u003c/code\u003e, if you except \u003ccode\u003eBaseException\u003c/code\u003e you can no longer\n\u003ccode\u003eKeyboardInterrupt\u003c/code\u003e.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003etime\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003esleep\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003ewhile\u003c/span\u003e \u003cspan class=\"kc\"\u003eTrue\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003etry\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003esleep\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e30\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003eexcept\u003c/span\u003e \u003cspan class=\"ne\"\u003eBaseException\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"c1\"\u003e# ❌\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003epass\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"except-from-exception-or-higher\"\u003eexcept from Exception or higher \u003ca href=\"#except-from-exception-or-higher\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIf you except from exception or something than inherits from it you will be\nbetter off, and avoid unintended side effects.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003etime\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003esleep\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003ewhile\u003c/span\u003e \u003cspan class=\"kc\"\u003eTrue\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003etry\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003esleep\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e30\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003eexcept\u003c/span\u003e \u003cspan class=\"ne\"\u003eException\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"c1\"\u003e# ✅\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003epass\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"this-goes-with-custom-exceptions-as-well\"\u003eThis goes with Custom Exceptions as well \u003ca href=\"#this-goes-with-custom-exceptions-as-well\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWhen you make custom exceptions expect that users, or your team members will\nwant to catch them and try to handle them if they can.  If you inherit from\n\u003ccode\u003eBaseException\u003c/code\u003e you will put them in a similar situation when they use your\ncustom Exception.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eclass\u003c/span\u003e \u003cspan class=\"nc\"\u003eMyFancyException\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"ne\"\u003eBaseException\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e \u003cspan class=\"c1\"\u003e# ❌\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e...\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eclass\u003c/span\u003e \u003cspan class=\"nc\"\u003eMyFancyException\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"ne\"\u003eException\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e \u003cspan class=\"c1\"\u003e# ✅\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e...\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nI ran into a PR this week where the author was inheriting what BaseException\nrather than exception.  I made this example to illustrate the unintended side\neffects that it can have.\n\nTry running these examples in a `.py` file for yourself and try to kill them\nwith control-c.\n\n## You cannot Keybard interrupt\n\nSince things such as `KeyboardInterrupt` are created as an exception that\ninherits from `BaseException`, if you except `BaseException` you can no longer\n`KeyboardInterrupt`.\n\n```python\nfrom time import sleep\n\nwhile True:\n    try:\n        sleep(30)\n    except BaseException: # ❌\n        pass\n```\n\n## except from Exception or higher\n\nIf you except from exception or something than inherits from it you will be\nbetter off, and avoid unintended side effects.\n\n```python\nfrom time import sleep\n\nwhile True:\n    try:\n        sleep(30)\n    except Exception: # ✅\n        pass\n```\n\n## This goes with Custom Exceptions as well\n\nWhen you make custom exceptions expect that users, or your team members will\nwant to catch them and try to handle them if they can.  If you inherit from\n`BaseException` you will put them in a similar situation when they use your\ncustom Exception.\n\n```python\nclass MyFancyException(BaseException): # ❌\n    ...\n\nclass MyFancyException(Exception): # ✅\n    ...\n```\n",
      "summary": "I ran into a PR this week where the author was inheriting what BaseException rather than exception. I made this example to illustrate the unintended side...",
      "date_published": "2022-03-31T01:21:30Z",
      "date_modified": "2022-03-31T01:21:30Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/python-cache-key/",
      "url": "https://go.waylonwalker.com/python-cache-key/",
      "title": "How I make cache-keys from python objects",
      "content_html": "\u003cp\u003eWhen I need a consistent key for a pythohn object I often reach for\n\u003ccode\u003ehashlib.md5\u003c/code\u003e  It works for me and the use cases I have.\u003c/p\u003e\n\u003ch2 id=\"diskcache\"\u003ediskcache \u003ca href=\"#diskcache\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eYesterday we talked about setting up a persistant cache with python diskcache.\nIn order to make this really work we need a good way to make consistent cache\nkeys from some sort of python object.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/python-diskcache/\" class=\"wikilink\" data-title=\"How I setup a sqlite cache in python\" data-description=\"When I need to cache some data between runs or share a cache accross multiple processes my go to library in python is . It\u0026#39;s built on sqlite with just enough...\" data-date=\"2022-03-29\" data-preview=\"When I need to cache some data between runs or share a cache accross multiple processes my go to library in python is . It\u0026#39;s built on sqlite with just enough...\"\u003eHow I setup a sqlite cache in python\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"hash\"\u003ehash \u003ca href=\"#hash\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003edoes not work\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eMy first thought was to just hash the files, this will give me a unique key for\neach.  This will work, and give you a consistant key for one and only one given\npython process.  If you start a new interpreter you will get different keys.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ewaylonwalker\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ecom\u003c/span\u003e \u003cspan class=\"n\"\u003eon\u003c/span\u003e \u003cspan class=\"err\"\u003e\u003c/span\u003e \u003cspan class=\"n\"\u003emain\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"err\"\u003e$✘!?\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e \u003cspan class=\"n\"\u003evia\u003c/span\u003e \u003cspan class=\"err\"\u003e\u003c/span\u003e \u003cspan class=\"n\"\u003ev5\u003c/span\u003e\u003cspan class=\"mf\"\u003e.1.5\u003c/span\u003e \u003cspan class=\"err\"\u003e\u003c/span\u003e \u003cspan class=\"n\"\u003ev3\u003c/span\u003e\u003cspan class=\"mf\"\u003e.8.0\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ewaylonwalker\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ecom\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e❯\u003c/span\u003e \u003cspan class=\"n\"\u003eipython\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ewaylonwalker\u003c/span\u003e \u003cspan class=\"err\"\u003e↪\u003c/span\u003e\u003cspan class=\"n\"\u003emain\u003c/span\u003e \u003cspan class=\"n\"\u003ev3\u003c/span\u003e\u003cspan class=\"mf\"\u003e.8.0\u003c/span\u003e \u003cspan class=\"n\"\u003eipython\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e❯\u003c/span\u003e \u003cspan class=\"nb\"\u003ehash\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;waylonwalker\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"mi\"\u003e3862245013515310359\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ewaylonwalker\u003c/span\u003e \u003cspan class=\"err\"\u003e↪\u003c/span\u003e\u003cspan class=\"n\"\u003emain\u003c/span\u003e \u003cspan class=\"n\"\u003ev3\u003c/span\u003e\u003cspan class=\"mf\"\u003e.8.0\u003c/span\u003e \u003cspan class=\"n\"\u003eipython\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e❯\u003c/span\u003e \u003cspan class=\"nb\"\u003ehash\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;waylonwalker\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"mi\"\u003e3862245013515310359\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ewaylonwalker\u003c/span\u003e \u003cspan class=\"err\"\u003e↪\u003c/span\u003e\u003cspan class=\"n\"\u003emain\u003c/span\u003e \u003cspan class=\"n\"\u003ev3\u003c/span\u003e\u003cspan class=\"mf\"\u003e.8.0\u003c/span\u003e \u003cspan class=\"n\"\u003eipython\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e❯\u003c/span\u003e \u003cspan class=\"n\"\u003eexit\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ewaylonwalker\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ecom\u003c/span\u003e \u003cspan class=\"n\"\u003eon\u003c/span\u003e \u003cspan class=\"err\"\u003e\u003c/span\u003e \u003cspan class=\"n\"\u003emain\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"err\"\u003e$✘!?\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e \u003cspan class=\"n\"\u003evia\u003c/span\u003e \u003cspan class=\"err\"\u003e\u003c/span\u003e \u003cspan class=\"n\"\u003ev5\u003c/span\u003e\u003cspan class=\"mf\"\u003e.1.5\u003c/span\u003e \u003cspan class=\"err\"\u003e\u003c/span\u003e \u003cspan class=\"n\"\u003ev3\u003c/span\u003e\u003cspan class=\"mf\"\u003e.8.0\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ewaylonwalker\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ecom\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e❯\u003c/span\u003e \u003cspan class=\"n\"\u003eipython\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ewaylonwalker\u003c/span\u003e \u003cspan class=\"err\"\u003e↪\u003c/span\u003e\u003cspan class=\"n\"\u003emain\u003c/span\u003e \u003cspan class=\"n\"\u003ev3\u003c/span\u003e\u003cspan class=\"mf\"\u003e.8.0\u003c/span\u003e \u003cspan class=\"n\"\u003eipython\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e❯\u003c/span\u003e \u003cspan class=\"nb\"\u003ehash\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;waylonwalker\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"mi\"\u003e83673051278873734\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003ehere is a snapshot of my terminal proving that you can get the same hash in one session, but it changes when you restart ipython.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"hashlibmd5\"\u003ehashlib.md5 \u003ca href=\"#hashlibmd5\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eHere is a quick couple ipython sessions showing that md5 cache is consistent accross multiple sessions.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ewaylonwalker\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ecom\u003c/span\u003e \u003cspan class=\"n\"\u003eon\u003c/span\u003e \u003cspan class=\"err\"\u003e\u003c/span\u003e \u003cspan class=\"n\"\u003emain\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"err\"\u003e$✘!?\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e \u003cspan class=\"n\"\u003evia\u003c/span\u003e \u003cspan class=\"err\"\u003e\u003c/span\u003e \u003cspan class=\"n\"\u003ev5\u003c/span\u003e\u003cspan class=\"mf\"\u003e.1.5\u003c/span\u003e \u003cspan class=\"err\"\u003e\u003c/span\u003e \u003cspan class=\"n\"\u003ev3\u003c/span\u003e\u003cspan class=\"mf\"\u003e.8.0\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ewaylonwalker\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ecom\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"n\"\u003eon\u003c/span\u003e \u003cspan class=\"err\"\u003e\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eus\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eeast\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"mi\"\u003e1\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e❯\u003c/span\u003e \u003cspan class=\"n\"\u003eipython\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ewaylonwalker\u003c/span\u003e \u003cspan class=\"err\"\u003e↪\u003c/span\u003e\u003cspan class=\"n\"\u003emain\u003c/span\u003e \u003cspan class=\"n\"\u003ev3\u003c/span\u003e\u003cspan class=\"mf\"\u003e.8.0\u003c/span\u003e \u003cspan class=\"n\"\u003eipython\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e❯\u003c/span\u003e \u003cspan class=\"n\"\u003ehashlib\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003emd5\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;waylonwalker\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"n\"\u003ePYFLYBY\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003ehashlib\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e╭───────────────────────────────\u003c/span\u003e \u003cspan class=\"n\"\u003eTraceback\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003emost\u003c/span\u003e \u003cspan class=\"n\"\u003erecent\u003c/span\u003e \u003cspan class=\"n\"\u003ecall\u003c/span\u003e \u003cspan class=\"n\"\u003elast\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"err\"\u003e────────────────────────────────╮\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e│\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eipython\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"nb\"\u003einput\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"mi\"\u003e1\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"mi\"\u003e1537\u003c/span\u003e\u003cspan class=\"n\"\u003ec4473c74\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"mi\"\u003e1\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003emodule\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e                                                     \u003cspan class=\"err\"\u003e│\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e╰──────────────────────────────────────────────────────────────────────────────────────────────────╯\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"ne\"\u003eTypeError\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003eUnicode\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eobjects\u003c/span\u003e \u003cspan class=\"n\"\u003emust\u003c/span\u003e \u003cspan class=\"n\"\u003ebe\u003c/span\u003e \u003cspan class=\"n\"\u003eencoded\u003c/span\u003e \u003cspan class=\"n\"\u003ebefore\u003c/span\u003e \u003cspan class=\"n\"\u003ehashing\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ewaylonwalker\u003c/span\u003e \u003cspan class=\"err\"\u003e↪\u003c/span\u003e\u003cspan class=\"n\"\u003emain\u003c/span\u003e \u003cspan class=\"n\"\u003ev3\u003c/span\u003e\u003cspan class=\"mf\"\u003e.8.0\u003c/span\u003e \u003cspan class=\"n\"\u003eipython\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e❯\u003c/span\u003e \u003cspan class=\"n\"\u003ehashlib\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003emd5\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;waylonwalker\u0026#34;\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eencode\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;utf-8\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003emd5\u003c/span\u003e \u003cspan class=\"n\"\u003eHASH\u003c/span\u003e \u003cspan class=\"nb\"\u003eobject\u003c/span\u003e \u003cspan class=\"o\"\u003e@\u003c/span\u003e \u003cspan class=\"mh\"\u003e0x7fe4ba6832d0\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ewaylonwalker\u003c/span\u003e \u003cspan class=\"err\"\u003e↪\u003c/span\u003e\u003cspan class=\"n\"\u003emain\u003c/span\u003e \u003cspan class=\"n\"\u003ev3\u003c/span\u003e\u003cspan class=\"mf\"\u003e.8.0\u003c/span\u003e \u003cspan class=\"n\"\u003eipython\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e❯\u003c/span\u003e \u003cspan class=\"n\"\u003ehashlib\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003emd5\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;waylonwalker\u0026#34;\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eencode\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;utf-8\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ehexdigest\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e\u0026#39;1c7c1073ca096ffdb324471770911fe2\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ewaylonwalker\u003c/span\u003e \u003cspan class=\"err\"\u003e↪\u003c/span\u003e\u003cspan class=\"n\"\u003emain\u003c/span\u003e \u003cspan class=\"n\"\u003ev3\u003c/span\u003e\u003cspan class=\"mf\"\u003e.8.0\u003c/span\u003e \u003cspan class=\"n\"\u003eipython\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e❯\u003c/span\u003e \u003cspan class=\"n\"\u003ehashlib\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003emd5\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;waylonwalker\u0026#34;\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eencode\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;utf-8\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ehexdigest\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e\u0026#39;1c7c1073ca096ffdb324471770911fe2\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ewaylonwalker\u003c/span\u003e \u003cspan class=\"err\"\u003e↪\u003c/span\u003e\u003cspan class=\"n\"\u003emain\u003c/span\u003e \u003cspan class=\"n\"\u003ev3\u003c/span\u003e\u003cspan class=\"mf\"\u003e.8.0\u003c/span\u003e \u003cspan class=\"n\"\u003eipython\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e❯\u003c/span\u003e \u003cspan class=\"n\"\u003ehashlib\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003emd5\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;waylonwalker\u0026#34;\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eencode\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;utf-8\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ehexdigest\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e\u0026#39;1c7c1073ca096ffdb324471770911fe2\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ewaylonwalker\u003c/span\u003e \u003cspan class=\"err\"\u003e↪\u003c/span\u003e\u003cspan class=\"n\"\u003emain\u003c/span\u003e \u003cspan class=\"n\"\u003ev3\u003c/span\u003e\u003cspan class=\"mf\"\u003e.8.0\u003c/span\u003e \u003cspan class=\"n\"\u003eipython\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e❯\u003c/span\u003e \u003cspan class=\"n\"\u003eexit\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ewaylonwalker\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ecom\u003c/span\u003e \u003cspan class=\"n\"\u003eon\u003c/span\u003e \u003cspan class=\"err\"\u003e\u003c/span\u003e \u003cspan class=\"n\"\u003emain\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"err\"\u003e$✘!?\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e \u003cspan class=\"n\"\u003evia\u003c/span\u003e \u003cspan class=\"err\"\u003e\u003c/span\u003e \u003cspan class=\"n\"\u003ev5\u003c/span\u003e\u003cspan class=\"mf\"\u003e.1.5\u003c/span\u003e \u003cspan class=\"err\"\u003e\u003c/span\u003e \u003cspan class=\"n\"\u003ev3\u003c/span\u003e\u003cspan class=\"mf\"\u003e.8.0\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ewaylonwalker\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ecom\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"n\"\u003eon\u003c/span\u003e \u003cspan class=\"err\"\u003e\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eus\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eeast\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"mi\"\u003e1\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"n\"\u003etook\u003c/span\u003e \u003cspan class=\"mi\"\u003e47\u003c/span\u003e\u003cspan class=\"n\"\u003es\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e❯\u003c/span\u003e \u003cspan class=\"n\"\u003eipython\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ewaylonwalker\u003c/span\u003e \u003cspan class=\"err\"\u003e↪\u003c/span\u003e\u003cspan class=\"n\"\u003emain\u003c/span\u003e \u003cspan class=\"n\"\u003ev3\u003c/span\u003e\u003cspan class=\"mf\"\u003e.8.0\u003c/span\u003e \u003cspan class=\"n\"\u003eipython\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e❯\u003c/span\u003e \u003cspan class=\"n\"\u003ehashlib\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003emd5\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;waylonwalker\u0026#34;\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eencode\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;utf-8\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ehexdigest\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"n\"\u003ePYFLYBY\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003ehashlib\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e\u0026#39;1c7c1073ca096ffdb324471770911fe2\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"key-for-diskcache\"\u003ekey for diskcache \u003ca href=\"#key-for-diskcache\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eSince it is consistent we can use it as a cache key for diskcache operations.\nI setup a little funciton that allows me to pass a bunch of differnt things in\nto cache.  As long as the \u003cstrong\u003estr\u003c/strong\u003e method exists and is gives the data that you\nwant to cache key on, this will work.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003emake_hash\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"o\"\u003e*\u003c/span\u003e\u003cspan class=\"n\"\u003ekeys\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"nb\"\u003estr\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u0026gt;\u003c/span\u003e \u003cspan class=\"nb\"\u003estr\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003estr_keys\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nb\"\u003estr\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ekey\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003ekey\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003ekeys\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"n\"\u003ehashlib\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003emd5\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ejoin\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003estr_keys\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eencode\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;utf-8\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ehexdigest\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003ca href=\"/python-args-kwargs/\" class=\"wikilink\" data-title=\"understanding python \\\\*args and \\\\*\\\\*kwargs\" data-description=\"Python and are super useful tools, that when used properly can make you code much simpler and easier to maintain. Large manual conversions from a dataset to...\" data-date=\"2020-06-10\" data-preview=\"Python and are super useful tools, that when used properly can make you code much simpler and easier to maintain. Large manual conversions from a dataset to...\"\u003eunderstanding python *args and **kwargs\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eIf the *args is confusing, I have a full article on \u003ccode\u003e*args\u003c/code\u003e and \u003ccode\u003e**kwargs\u003c/code\u003e.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"see-it-in-action\"\u003eSee it in action \u003ca href=\"#see-it-in-action\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eHere you can see it in action.  Anything passed into the function gets to be\npart of the key.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ewaylonwalker ↪main v3.8.0 ipython\n❯ def make_hash(self, *keys: str) -\u0026gt; str:\n...:     str_keys = [str(key) for key in keys]\n...:     return hashlib.md5(\u0026#34;\u0026#34;.join(str_keys).encode(\u0026#34;utf-8\u0026#34;)).hexdigest()\n...:\n\nwaylonwalker ↪main v3.8.0 ipython\n❯ make_hash(1, \u0026#34;one\u0026#34;, \u0026#34;1\u0026#34;, 1.0)\n\u0026#39;73901d019df012a1cdab826ce301217d\u0026#39;\n\nwaylonwalker ↪main v3.8.0 ipython\n❯ exit\n\n\nwaylonwalker.com on  main [$✘!?] via  v5.1.5  v3.8.0 (waylonwalker.com) on  (us-east-1) took 19m19s\n❯\n\nwaylonwalker.com on  main [$✘!?] via  v5.1.5  v3.8.0 (waylonwalker.com) on  (us-east-1)\n❯ ipython\n\nwaylonwalker ↪main v3.8.0 ipython\n❯ def make_hash(self, *keys: str) -\u0026gt; str:\n...:     str_keys = [str(key) for key in keys]\n...:     return hashlib.md5(\u0026#34;\u0026#34;.join(str_keys).encode(\u0026#34;utf-8\u0026#34;)).hexdigest()\n[PYFLYBY] import hashlib\n\nwaylonwalker ↪main v3.8.0 ipython\n❯ make_hash(1, \u0026#34;one\u0026#34;, \u0026#34;1\u0026#34;, 1.0)\n\u0026#39;73901d019df012a1cdab826ce301217d\u0026#39;\n\u003c/code\u003e\u003c/pre\u003e\n",
      "content_text": "\nWhen I need a consistent key for a pythohn object I often reach for\n`hashlib.md5`  It works for me and the use cases I have.\n\n## diskcache\n\nYesterday we talked about setting up a persistant cache with python diskcache.\nIn order to make this really work we need a good way to make consistent cache\nkeys from some sort of python object.\n\n\u003ca href=\"/python-diskcache/\" class=\"wikilink\" data-title=\"How I setup a sqlite cache in python\" data-description=\"When I need to cache some data between runs or share a cache accross multiple processes my go to library in python is . It\u0026#39;s built on sqlite with just enough...\" data-date=\"2022-03-29\"\u003eHow I setup a sqlite cache in python\u003c/a\u003e\n\n## hash\n\n_does not work_\n\nMy first thought was to just hash the files, this will give me a unique key for\neach.  This will work, and give you a consistant key for one and only one given\npython process.  If you start a new interpreter you will get different keys.\n\n```python\nwaylonwalker.com on  main [$✘!?] via  v5.1.5  v3.8.0 (waylonwalker.com)\n❯ ipython\n\nwaylonwalker ↪main v3.8.0 ipython\n❯ hash(\"waylonwalker\")\n-3862245013515310359\n\nwaylonwalker ↪main v3.8.0 ipython\n❯ hash(\"waylonwalker\")\n-3862245013515310359\n\nwaylonwalker ↪main v3.8.0 ipython\n❯ exit\n\nwaylonwalker.com on  main [$✘!?] via  v5.1.5  v3.8.0 (waylonwalker.com)\n❯ ipython\n\n\nwaylonwalker ↪main v3.8.0 ipython\n❯ hash(\"waylonwalker\")\n-83673051278873734\n\n```\n\n\u003e here is a snapshot of my terminal proving that you can get the same hash in one session, but it changes when you restart ipython.\n\n## hashlib.md5\n\nHere is a quick couple ipython sessions showing that md5 cache is consistent accross multiple sessions.\n\n```python\nwaylonwalker.com on  main [$✘!?] via  v5.1.5  v3.8.0 (waylonwalker.com) on  (us-east-1)\n❯ ipython\n\nwaylonwalker ↪main v3.8.0 ipython\n❯ hashlib.md5(\"waylonwalker\")\n[PYFLYBY] import hashlib\n╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮\n│ \u003cipython-input-1-1537c4473c74\u003e:1 in \u003cmodule\u003e                                                     │\n╰──────────────────────────────────────────────────────────────────────────────────────────────────╯\nTypeError: Unicode-objects must be encoded before hashing\n\nwaylonwalker ↪main v3.8.0 ipython\n❯ hashlib.md5(\"waylonwalker\".encode(\"utf-8\"))\n\u003cmd5 HASH object @ 0x7fe4ba6832d0\u003e\n\nwaylonwalker ↪main v3.8.0 ipython\n❯ hashlib.md5(\"waylonwalker\".encode(\"utf-8\")).hexdigest()\n'1c7c1073ca096ffdb324471770911fe2'\n\nwaylonwalker ↪main v3.8.0 ipython\n❯ hashlib.md5(\"waylonwalker\".encode(\"utf-8\")).hexdigest()\n'1c7c1073ca096ffdb324471770911fe2'\n\nwaylonwalker ↪main v3.8.0 ipython\n❯ hashlib.md5(\"waylonwalker\".encode(\"utf-8\")).hexdigest()\n'1c7c1073ca096ffdb324471770911fe2'\n\nwaylonwalker ↪main v3.8.0 ipython\n❯ exit\n\n\nwaylonwalker.com on  main [$✘!?] via  v5.1.5  v3.8.0 (waylonwalker.com) on  (us-east-1) took 47s\n❯ ipython\n\nwaylonwalker ↪main v3.8.0 ipython\n❯ hashlib.md5(\"waylonwalker\".encode(\"utf-8\")).hexdigest()\n[PYFLYBY] import hashlib\n'1c7c1073ca096ffdb324471770911fe2'\n\n\n```\n\n## key for diskcache\n\nSince it is consistent we can use it as a cache key for diskcache operations.\nI setup a little funciton that allows me to pass a bunch of differnt things in\nto cache.  As long as the __str__ method exists and is gives the data that you\nwant to cache key on, this will work.\n\n```python\ndef make_hash(self, *keys: str) -\u003e str:\n    str_keys = [str(key) for key in keys]\n    return hashlib.md5(\"\".join(str_keys).encode(\"utf-8\")).hexdigest()\n```\n\n\u003ca href=\"/python-args-kwargs/\" class=\"wikilink\" data-title=\"understanding python \\\\*args and \\\\*\\\\*kwargs\" data-description=\"Python and are super useful tools, that when used properly can make you code much simpler and easier to maintain. Large manual conversions from a dataset to...\" data-date=\"2020-06-10\"\u003eunderstanding python \\*args and \\*\\*kwargs\u003c/a\u003e\n\n\u003e If the *args is confusing, I have a full article on `*args` and `**kwargs`.\n\n## See it in action\n\nHere you can see it in action.  Anything passed into the function gets to be\npart of the key.\n\n```\nwaylonwalker ↪main v3.8.0 ipython\n❯ def make_hash(self, *keys: str) -\u003e str:\n...:     str_keys = [str(key) for key in keys]\n...:     return hashlib.md5(\"\".join(str_keys).encode(\"utf-8\")).hexdigest()\n...:\n\nwaylonwalker ↪main v3.8.0 ipython\n❯ make_hash(1, \"one\", \"1\", 1.0)\n'73901d019df012a1cdab826ce301217d'\n\nwaylonwalker ↪main v3.8.0 ipython\n❯ exit\n\n\nwaylonwalker.com on  main [$✘!?] via  v5.1.5  v3.8.0 (waylonwalker.com) on  (us-east-1) took 19m19s\n❯\n\nwaylonwalker.com on  main [$✘!?] via  v5.1.5  v3.8.0 (waylonwalker.com) on  (us-east-1)\n❯ ipython\n\nwaylonwalker ↪main v3.8.0 ipython\n❯ def make_hash(self, *keys: str) -\u003e str:\n...:     str_keys = [str(key) for key in keys]\n...:     return hashlib.md5(\"\".join(str_keys).encode(\"utf-8\")).hexdigest()\n[PYFLYBY] import hashlib\n\nwaylonwalker ↪main v3.8.0 ipython\n❯ make_hash(1, \"one\", \"1\", 1.0)\n'73901d019df012a1cdab826ce301217d'\n```\n",
      "summary": "When I need a consistent key for a pythohn object I often reach for It works for me and the use cases I have.",
      "date_published": "2022-03-30T16:11:09Z",
      "date_modified": "2022-03-30T16:11:09Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/python-diskcache/",
      "url": "https://go.waylonwalker.com/python-diskcache/",
      "title": "How I setup a sqlite cache in python",
      "content_html": "\u003cp\u003eWhen I need to cache some data between runs or share a cache accross multiple\nprocesses my go to library in python is \u003ccode\u003ediskcache\u003c/code\u003e.  It’s built on sqlite with\njust enough cacheing niceties that make it very worth it.\u003c/p\u003e\n\u003ch2 id=\"install-diskcache\"\u003einstall diskcache \u003ca href=\"#install-diskcache\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eInstall diskcache into your virtual environement of choice using pip from your command line.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epython -m pip install diskcache\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"setup-the-cache\"\u003esetup the cache \u003ca href=\"#setup-the-cache\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThere are a couple of different types of cache, \u003ccode\u003eCache\u003c/code\u003e, \u003ccode\u003eFanoutCache\u003c/code\u003e,\nand \u003ccode\u003eDjangoCache\u003c/code\u003e, you can read more about those in the\n\u003ca href=\"https://grantjenks.com/docs/diskcache\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/grantjenks.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/grantjenks.com.ico\" class=\"has-avatar  has-avatar-before\"\u003edocs\u003c/a\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003ediskcache\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eCache\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ecache\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eFanoutCache\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;.mycache\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003estatistics\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"kc\"\u003eTrue\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"adding-to-the-cache\"\u003eAdding to the cache \u003ca href=\"#adding-to-the-cache\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdding to the cache only needs a key and value.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ecache\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eadd\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;me\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;waylonwalker\u0026#39;\u003c/span\u003e \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"set-the-expire-time\"\u003eSet the expire time \u003ca href=\"#set-the-expire-time\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eOptionally you can set the seconds before it expires.  The cache invalidation\ntools like this is what really makes diskcache shine over using raw sqlite or\nany sort of static file.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ecache\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eadd\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;me\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;waylonwalker\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eexpire\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"mi\"\u003e60\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"tagging\"\u003etagging \u003ca href=\"#tagging\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eDiskcache supports tagging entries added to the cache.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# add an item to the cache with a tag\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ecache\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eadd\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;me\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;waylonwalker\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eexpire\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"mi\"\u003e60\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003etag\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;people\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eThis seems to let you do a few new things like getting items from the cache by\nboth key and tag, or evict all tags from the cache.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# evict all items tagged as \u0026#39;people\u0026#39; from the cache\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ecache\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eevict\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003etag\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;people\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"reading-from-the-cache\"\u003eReading from the cache \u003ca href=\"#reading-from-the-cache\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eYou can read from the cache by using the \u003ccode\u003e.get\u003c/code\u003e method and giving it the key\nyou want to retrieve.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ewho\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003ecache\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eget\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;me\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# who == \u0026#39;waylonwalker\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"cache-misses\"\u003eCache Misses \u003ca href=\"#cache-misses\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eCache misses will return a \u003ccode\u003eNone\u003c/code\u003e just like any dictionary \u003ccode\u003e.get\u003c/code\u003e miss.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003emissed = cache.get(\u0026#39;missing\u0026#39;)\n# missed == None\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2 id=\"heading\"\u003e⭐ \u003ca href=\"#heading\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eGive Grant some love and give\n\u003ca href=\"https://github.com/grantjenks/python-diskcache\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003egrantjenks/python-diskcache\u003c/a\u003e a\n⭐.\u003c/p\u003e\n",
      "content_text": "\nWhen I need to cache some data between runs or share a cache accross multiple\nprocesses my go to library in python is `diskcache`.  It's built on sqlite with\njust enough cacheing niceties that make it very worth it.\n\n## install diskcache\n\nInstall diskcache into your virtual environement of choice using pip from your command line.\n\n```bash\npython -m pip install diskcache\n```\n\n## setup the cache\n\nThere are a couple of different types of cache, `Cache`, `FanoutCache`,\nand `DjangoCache`, you can read more about those in the\n[docs](https://grantjenks.com/docs/diskcache)\n\n```python\nfrom diskcache import Cache\ncache = FanoutCache('.mycache', statistics=True)\n```\n\n\n\n## Adding to the cache\n\nAdding to the cache only needs a key and value.\n\n``` python\ncache.add('me', 'waylonwalker' )\n```\n\n## Set the expire time\n\nOptionally you can set the seconds before it expires.  The cache invalidation\ntools like this is what really makes diskcache shine over using raw sqlite or\nany sort of static file.\n\n``` python\ncache.add('me', 'waylonwalker', expire=60)\n```\n\n## tagging\n\nDiskcache supports tagging entries added to the cache.\n\n``` python\n# add an item to the cache with a tag\ncache.add('me', 'waylonwalker', expire=60, tag='people')\n```\n\nThis seems to let you do a few new things like getting items from the cache by\nboth key and tag, or evict all tags from the cache.\n\n``` python\n# evict all items tagged as 'people' from the cache\ncache.evict(tag='people')\n```\n\n## Reading from the cache\n\nYou can read from the cache by using the `.get` method and giving it the key\nyou want to retrieve.\n\n```python\nwho = cache.get('me')\n# who == 'waylonwalker'\n```\n\n## Cache Misses\n\nCache misses will return a `None` just like any dictionary `.get` miss.\n\n```\nmissed = cache.get('missing')\n# missed == None\n```\n\n## ⭐\n\nGive Grant some love and give\n[grantjenks/python-diskcache](https://github.com/grantjenks/python-diskcache) a\n⭐.\n",
      "summary": "When I need to cache some data between runs or share a cache accross multiple processes my go to library in python is . It's built on sqlite with just enough...",
      "date_published": "2022-03-29T16:47:36Z",
      "date_modified": "2022-03-29T16:47:36Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/python-lru-cache/",
      "url": "https://go.waylonwalker.com/python-lru-cache/",
      "title": "Cache a python function with lru_cache",
      "content_html": "\u003cp\u003eThe easiest way to speed up any code is to run less code.  A common technique\nto reduce the amount of repative work is to implement a cache such that the\nnext time you need the same work done, you don’t need to recompute anything you\ncan simply retrieve it from a cache.\u003c/p\u003e\n\u003ch2 id=\"lru-cache\"\u003elru_cache \u003ca href=\"#lru-cache\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe easiest and most common to setup in python is a builtin functools.lru_cache.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003efunctools\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003elru_cache\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nd\"\u003e@lru_cache\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003eget_cars\u003c/span\u003e\u003cspan class=\"p\"\u003e():\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;pulling cars data\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"n\"\u003epd\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eread_csv\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;https://waylonwalker.com/cars.csv\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003estorage_options\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;User-Agent\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;Mozilla/5.0\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"when-to-use-lru-cache\"\u003ewhen to use lru_cache \u003ca href=\"#when-to-use-lru-cache\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAny time you have a function where you expect the same results each time a\nfunction is called with the same inputs, you \u003cem\u003ecan\u003c/em\u003e use lru_cache.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ewhen same *args, **kwargs always return the same value\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003elru_cache only works for one python process.  If you are running multiple\nsubprocesses, or running the same script over and over, lru_cache will not\nwork.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003elru_cache only caches in a single python process\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"max-size\"\u003emax_size \u003ca href=\"#max-size\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003elru_cache can take an optional parameter \u003ccode\u003emaxsize\u003c/code\u003e to set the size of your\ncache.  By default its set to \u003ccode\u003e128\u003c/code\u003e, if you want to store more or less items in\nyour cache you can adjust this value.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003eget_cars\u003c/code\u003e example is a bit of a unique one.  As\n\u003ca href=\"https://www.youtube.com/watch?v=K0Q5twtYxWY\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003eanthonywritescode\u003c/a\u003e points out\nthis implementation is behaving like a singleton, and we can optimize the size\nof the cache by allocating exactly how many items we will ever have in it by\nsetting its value to 1.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003efunctools\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003elru_cache\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nd\"\u003e@lru_cache\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003emaxsize\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"mi\"\u003e1\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003eget_cars\u003c/span\u003e\u003cspan class=\"p\"\u003e():\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;pulling cars data\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"n\"\u003epd\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eread_csv\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;https://waylonwalker.com/cars.csv\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003estorage_options\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;User-Agent\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;Mozilla/5.0\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"my-example-stretches-the-rule-a-little-bit\"\u003eMy example stretches the rule a little bit \u003ca href=\"#my-example-stretches-the-rule-a-little-bit\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe example above does a web request.  As a Data Engineer I often write scripts\nthat run for a short time then stop.  I do not expect the output of this\nfunction to change during the runtime of this job, and if it did I may actually\nwant them to match anyways.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eweb request do change their output\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eIf I were building webapps, or some sort of process that was running for a long\ntime.  Something that starts and waits for work, this may not be a good\napplication of lru_cache.  If this process is running for days or months my\nassumption that the request does not change is no longer valid.\u003c/p\u003e\n\u003ch2 id=\"theres-also-a-typed-kwarg-for-lru-cache\"\u003eThere’s also a typed kwarg for lru_cache \u003ca href=\"#theres-also-a-typed-kwarg-for-lru-cache\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis one is new to me but you can cache not only on the value, but the type of\nthe value being passed into your function.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e(from the docstring)\nIf \u003cem\u003etyped\u003c/em\u003e is True, arguments of different types will be cached separately.\nFor example, f(3.0) and f(3) will be treated as distinct calls with distinct\nresults.\u003c/p\u003e\n\u003c/blockquote\u003e\n",
      "content_text": "\nThe easiest way to speed up any code is to run less code.  A common technique\nto reduce the amount of repative work is to implement a cache such that the\nnext time you need the same work done, you don't need to recompute anything you\ncan simply retrieve it from a cache.\n\n## lru_cache\n\nThe easiest and most common to setup in python is a builtin functools.lru_cache.\n\n```python\nfrom functools import lru_cache\n\n@lru_cache\ndef get_cars():\n    print('pulling cars data')\n    return pd.read_csv(\"https://waylonwalker.com/cars.csv\", storage_options = {'User-Agent': 'Mozilla/5.0'})\n```\n\n## when to use lru_cache\n\nAny time you have a function where you expect the same results each time a\nfunction is called with the same inputs, you _can_ use lru_cache.\n\n\u003e when same *args, **kwargs always return the same value\n\nlru_cache only works for one python process.  If you are running multiple\nsubprocesses, or running the same script over and over, lru_cache will not\nwork.\n\n\u003e lru_cache only caches in a single python process\n\n## max_size\n\nlru_cache can take an optional parameter `maxsize` to set the size of your\ncache.  By default its set to `128`, if you want to store more or less items in\nyour cache you can adjust this value.\n\nThe `get_cars` example is a bit of a unique one.  As\n[anthonywritescode](https://www.youtube.com/watch?v=K0Q5twtYxWY) points out\nthis implementation is behaving like a singleton, and we can optimize the size\nof the cache by allocating exactly how many items we will ever have in it by\nsetting its value to 1.\n\n```python\nfrom functools import lru_cache\n\n@lru_cache(maxsize=1)\ndef get_cars():\n    print('pulling cars data')\n    return pd.read_csv(\"https://waylonwalker.com/cars.csv\", storage_options = {'User-Agent': 'Mozilla/5.0'})\n```\n\n## My example stretches the rule a little bit\n\nThe example above does a web request.  As a Data Engineer I often write scripts\nthat run for a short time then stop.  I do not expect the output of this\nfunction to change during the runtime of this job, and if it did I may actually\nwant them to match anyways.\n\n\u003e web request do change their output\n\nIf I were building webapps, or some sort of process that was running for a long\ntime.  Something that starts and waits for work, this may not be a good\napplication of lru_cache.  If this process is running for days or months my\nassumption that the request does not change is no longer valid.\n\n## There's also a typed kwarg for lru_cache\n\nThis one is new to me but you can cache not only on the value, but the type of\nthe value being passed into your function.\n\n\u003e (from the docstring)\n\u003e If *typed* is True, arguments of different types will be cached separately.\n\u003e For example, f(3.0) and f(3) will be treated as distinct calls with distinct\n\u003e results.\n",
      "summary": "The easiest way to speed up any code is to run less code. A common technique to reduce the amount of repative work is to implement a cache such that the next...",
      "date_published": "2022-03-28T01:21:30Z",
      "date_modified": "2022-03-28T01:21:30Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/pandas-read-csv-user-agent/",
      "url": "https://go.waylonwalker.com/pandas-read-csv-user-agent/",
      "title": "Set User Agent on pandas read_csv",
      "content_html": "\u003cp\u003eI keep a small \u003ca href=\"https://waylonwalker.com/cars.csv\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ecars.csv\u003c/a\u003e on my website for\nquickly trying out different pandas operations.  It’s very handy to keep around\nto help what a method you are unfamiliar with does, or give a teammate an\nexample they can replicate.\u003c/p\u003e\n\u003ch2 id=\"hosts-switched\"\u003eHosts switched \u003ca href=\"#hosts-switched\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI recently switched hosting from netlify over to cloudflare.  Well cloudflare\ndoes some work to block certain requests that it does not think is a real user.\nOne of these checks is to ensure there is a real user agent on the request.\u003c/p\u003e\n\u003ch2 id=\"not-my-go-to-dataset-\"\u003eNot my go to dataset 😭 \u003ca href=\"#not-my-go-to-dataset-\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis breaks my go to example dataset.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epd\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eread_csv\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;https://waylonwalker.com/cars.csv\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# HTTPError: HTTP Error 403: Forbidden\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"but-requests-works\"\u003eBut requests works??? \u003ca href=\"#but-requests-works\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWhat’s weird is, requests still works just fine!  Not sure why using urllib the\nway pandas does breaks the request, but it does.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003erequests\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eget\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;https://waylonwalker.com/cars.csv\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eResponse\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"mi\"\u003e200\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"setting-the-user-agent-in-pandasread-csv\"\u003eSetting the User Agent in pandas.read_csv \u003ca href=\"#setting-the-user-agent-in-pandasread-csv\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003ethis fixed the issue for me!\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eAfter a bit of googling I realize that this is a common thing, and that setting\nthe user-agent fixes it.  This is the point I remember seeing in the cloudflare\ndashbard that they protect against a lot of different attacks, aparantly it\ntreats \u003ccode\u003epd.read_csv\u003c/code\u003e as an attack on my cloudflare pages site.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epd\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eread_csv\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;https://waylonwalker.com/cars.csv\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003estorage_options\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;User-Agent\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;Mozilla/5.0\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# success\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"now-my-data-is-back\"\u003eNow my data is back \u003ca href=\"#now-my-data-is-back\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNow this works again, but it feels like just a bit more effort than I want to\ndo by hand.  I might need to look into my cloudflare settings to see if I can\nallow this dataset to be accessed by \u003ccode\u003epd.read_csv\u003c/code\u003e.\u003c/p\u003e\n",
      "content_text": "\nI keep a small [cars.csv](https://waylonwalker.com/cars.csv) on my website for\nquickly trying out different pandas operations.  It's very handy to keep around\nto help what a method you are unfamiliar with does, or give a teammate an\nexample they can replicate.\n\n## Hosts switched\n\nI recently switched hosting from netlify over to cloudflare.  Well cloudflare\ndoes some work to block certain requests that it does not think is a real user.\nOne of these checks is to ensure there is a real user agent on the request.\n\n## Not my go to dataset 😭\n\nThis breaks my go to example dataset.\n\n```python\npd.read_csv(\"https://waylonwalker.com/cars.csv\")\n\n# HTTPError: HTTP Error 403: Forbidden\n```\n\n## But requests works???\n\nWhat's weird is, requests still works just fine!  Not sure why using urllib the\nway pandas does breaks the request, but it does.\n\n```python\nrequests.get(\"https://waylonwalker.com/cars.csv\")\n\n\u003cResponse [200]\u003e\n```\n\n## Setting the User Agent in pandas.read_csv\n\n_this fixed the issue for me!_\n\nAfter a bit of googling I realize that this is a common thing, and that setting\nthe user-agent fixes it.  This is the point I remember seeing in the cloudflare\ndashbard that they protect against a lot of different attacks, aparantly it\ntreats `pd.read_csv` as an attack on my cloudflare pages site.\n\n```python\npd.read_csv(\"https://waylonwalker.com/cars.csv\", storage_options = {'User-Agent': 'Mozilla/5.0'})\n\n# success\n```\n\n## Now my data is back\n\nNow this works again, but it feels like just a bit more effort than I want to\ndo by hand.  I might need to look into my cloudflare settings to see if I can\nallow this dataset to be accessed by `pd.read_csv`.\n",
      "summary": "I keep a small cars.csv on my website for quickly trying out different pandas operations. It's very handy to keep around to help what a method you are...",
      "date_published": "2022-03-27T01:21:30Z",
      "date_modified": "2022-03-27T01:21:30Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/python-requests-get/",
      "url": "https://go.waylonwalker.com/python-requests-get/",
      "title": "Get Webpage with python requests",
      "content_html": "\u003cp\u003ePython’s requests library is one of the gold standard apis, designed by Kenneth\nReitz.  It was designed with the user perspective in mind first and\nimplementation second. I have heard this called readme driven development,\nwhere the interface the user will use is laid out first, then implemented.\nThis makes the library much mor intuitive than if it were designed around how\nit was easiest to implement.\u003c/p\u003e\n\u003ch2 id=\"install-requests\"\u003eInstall Requests \u003ca href=\"#install-requests\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eRequests is on pypi and can be installed into your virtual environtment with pip.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epython -m pip install requests\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"getting-the-content-of-a-request\"\u003eGetting the content of a request \u003ca href=\"#getting-the-content-of-a-request\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eRequests makes getting content from a web url as easy as possible.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003erequests\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003er\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003erequests\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eget\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;https://waylonwalker.com/til/htmx-get/\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003earticle\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003er\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003econtent\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"requests-is-not-limited-to-\u003ca href=\"/html/\" class=\"glossary-term\" title=\"HTML (HyperText Markup Language) is the standard markup language used to create and design documents on the World Wide Web. It structures web content by...\"\u003ehtml\u003c/a\u003e\"\u003erequests is not limited to html \u003ca href=\"#requests-is-not-limited-to-html\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eRequests can handle any web request and is not limited to only html.  Here are\nsome examples to get a markdown file, a csv, and a png image.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ehtmx_get_md\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003erequests\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eget\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;https://waylonwalker.com/til/htmx-get.md\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003econtent\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ecars\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003erequests\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eget\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;https://waylonwalker.com/cars.csv\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003econtent\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eprofile\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003erequests\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eget\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;https://images.waylonwalker.com/8bitc.png\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003econtent\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"rtfm\"\u003eRTFM \u003ca href=\"#rtfm\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThere is way more to requests, this just scratches the surface while covering\nwhat you are going to need to get going. The\n\u003ca href=\"https://docs.python-requests.org/en/latest/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/docs.python-requests.org.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/docs.python-requests.org.ico\" class=\"has-avatar  has-avatar-before\"\u003erequests docs\u003c/a\u003e have way more details.\u003c/p\u003e\n",
      "content_text": "\nPython's requests library is one of the gold standard apis, designed by Kenneth\nReitz.  It was designed with the user perspective in mind first and\nimplementation second. I have heard this called readme driven development,\nwhere the interface the user will use is laid out first, then implemented.\nThis makes the library much mor intuitive than if it were designed around how\nit was easiest to implement.\n\n## Install Requests\n\nRequests is on pypi and can be installed into your virtual environtment with pip.\n\n```bash\npython -m pip install requests\n```\n\n## Getting the content of a request\n\nRequests makes getting content from a web url as easy as possible.\n\n```python\nimport requests\n\nr = requests.get('https://waylonwalker.com/til/htmx-get/')\narticle = r.content\n```\n\n## requests is not limited to html\n\nRequests can handle any web request and is not limited to only html.  Here are\nsome examples to get a markdown file, a csv, and a png image.\n\n```python\nhtmx_get_md = requests.get('https://waylonwalker.com/til/htmx-get.md').content\ncars = requests.get('https://waylonwalker.com/cars.csv').content\nprofile = requests.get('https://images.waylonwalker.com/8bitc.png').content\n```\n\n## RTFM\n\nThere is way more to requests, this just scratches the surface while covering\nwhat you are going to need to get going. The\n[requests docs](https://docs.python-requests.org/en/latest/) have way more details.\n",
      "summary": "Python's requests library is one of the gold standard apis, designed by Kenneth Reitz. It was designed with the user perspective in mind first and...",
      "date_published": "2022-03-26T17:10:35Z",
      "date_modified": "2022-03-26T17:10:35Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/htmx-get/",
      "url": "https://go.waylonwalker.com/htmx-get/",
      "title": "Ease into htmx with htmx-get",
      "content_html": "\u003cp\u003eI recently attended\n\u003ca href=\"https://2022.pythonwebconf.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/2022.pythonwebconf.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/2022.pythonwebconf.com.ico\" class=\"has-avatar  has-avatar-before\"\u003epython web conf 2022\u003c/a\u003e\nand after seeing some incredible presentations on it I am excited to\ngive \u003ca href=\"https://htmx.org/\"\u003ehtmx\u003c/a\u003e a try.\u003c/p\u003e\n\u003ch2 id=\"the-base-page\"\u003eThe base page \u003ca href=\"#the-base-page\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eStart with some \u003ca href=\"/html/\" class=\"glossary-term\" title=\"HTML (HyperText Markup Language) is the standard markup language used to create and design documents on the World Wide Web. It structures web content by...\"\u003ehtml\u003c/a\u003e boilerplate, pop in a script tag to add the\n\u003ca href=\"/htmx/\" class=\"glossary-term\" title=\"htmx is a frontend javascript library for creating dynamic web applications.\"\u003ehtmx\u003c/a\u003e.org script, and a button that says click me.  I added just a tish\nof style so that it does not sear your delicate developer your eyes.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"cp\"\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nt\"\u003ehtml\u003c/span\u003e \u003cspan class=\"na\"\u003elang\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s\"\u003e\u0026#34;en\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nt\"\u003ehead\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nt\"\u003etitle\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u0026lt;/\u003c/span\u003e\u003cspan class=\"nt\"\u003etitle\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nt\"\u003emeta\u003c/span\u003e \u003cspan class=\"na\"\u003echarset\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s\"\u003e\u0026#34;UTF-8\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nt\"\u003emeta\u003c/span\u003e \u003cspan class=\"na\"\u003ename\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s\"\u003e\u0026#34;viewport\u0026#34;\u003c/span\u003e \u003cspan class=\"na\"\u003econtent\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s\"\u003e\u0026#34;width=device-width, initial-scale=1\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nt\"\u003estyle\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003ehtml\u003c/span\u003e  \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ebackground\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#1f2022\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#eefbfe\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003efont-size\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e64\u003c/span\u003e\u003cspan class=\"kt\"\u003epx\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003ebutton\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"k\"\u003efont-size\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e64\u003c/span\u003e\u003cspan class=\"kt\"\u003epx\u003c/span\u003e\u003cspan class=\"p\"\u003e;}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nt\"\u003ebody\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003eheight\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e100\u003c/span\u003e\u003cspan class=\"kt\"\u003evh\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003ewidth\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e100\u003c/span\u003e\u003cspan class=\"kt\"\u003evw\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003edisplay\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eflex\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003ejustify-content\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003ecenter\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003ealign-items\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"kc\"\u003ecenter\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e\u0026lt;/\u003c/span\u003e\u003cspan class=\"nt\"\u003estyle\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"c\"\u003e\u0026lt;!-- Load from unpkg --\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nt\"\u003escript\u003c/span\u003e \u003cspan class=\"na\"\u003esrc\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s\"\u003e\u0026#34;https://unpkg.com/htmx.org@1.7.0\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u0026lt;/\u003c/span\u003e\u003cspan class=\"nt\"\u003escript\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"p\"\u003e\u0026lt;/\u003c/span\u003e\u003cspan class=\"nt\"\u003ehead\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nt\"\u003ebody\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"c\"\u003e\u0026lt;!-- have a button POST a click via AJAX --\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nt\"\u003ebutton\u003c/span\u003e \u003cspan class=\"na\"\u003ehx-get\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s\"\u003e\u0026#34;/partial\u0026#34;\u003c/span\u003e \u003cspan class=\"na\"\u003ehx-swap\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s\"\u003e\u0026#34;outerHTML\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    Click Me\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"p\"\u003e\u0026lt;/\u003c/span\u003e\u003cspan class=\"nt\"\u003ebutton\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"p\"\u003e\u0026lt;/\u003c/span\u003e\u003cspan class=\"nt\"\u003ebody\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e\u0026lt;/\u003c/span\u003e\u003cspan class=\"nt\"\u003ehtml\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eSave this as \u003ccode\u003eindex.html\u003c/code\u003e and fire up a webserver and you will be\npresented with this big beefcake of a button.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://images.waylonwalker.com/htmx-get-til-click-me.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://images.waylonwalker.com/htmx-get-til-click-me.png\" alt=\"big beefcake of a button\"/ data-glightbox=\"description: big beefcake of a button\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eIf you don’t have a development server preference I reccomend opening\nthe terminal and running \u003ccode\u003epython -m http.server 8000\u003c/code\u003e then opening your\nbrowser to \u003ccode\u003elocalhost:8000\u003c/code\u003e\u003c/p\u003e\n\u003ch2 id=\"the-partial\"\u003eThe Partial \u003ca href=\"#the-partial\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNow the page has a button that is ready to replace itself, notice the\n\u003ccode\u003ehx-swap=\u0026#34;outerHTML\u0026#34;\u0026gt;\u003c/code\u003e, with the contents of /partial. To create a\nstatic api of sorts we can simply host a partial page in a file at\n\u003ccode\u003e/partial/index.html\u003c/code\u003e with the following contents.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nt\"\u003ep\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ehello\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e\u0026lt;/\u003c/span\u003e\u003cspan class=\"nt\"\u003ep\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cfigure\u003e\n\u003ca href=\"https://images.waylonwalker.com/htmx-get-til-hello.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://images.waylonwalker.com/htmx-get-til-hello.png\" alt=\"the final results\"/ data-glightbox=\"description: the final results\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cscript src=\"https://unpkg.com/htmx.org@1.7.0\"\u003e\u003c/script\u003e\n\u003ch2 id=\"tree\"\u003eTree \u003ca href=\"#tree\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eTo make it a bit clearer here is what the file tree looks like after\nsetting this up.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e~/git/htmx  v3.9.7 (git)\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ tree\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e├── clicked\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│   └── index.html\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e└── index.html\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"demo\"\u003eDemo \u003ca href=\"#demo\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI added htmx to this page and setup a partial below, check out this\neaster egg.\u003c/p\u003e\n\u003cbutton hx-get=\"./partial\" hx-swap=\"outerHTML\"\u003e\n    Click Me\n\u003c/button\u003e\n\u003ch2 id=\"links\"\u003eLinks \u003ca href=\"#links\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://2022.pythonwebconf.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/2022.pythonwebconf.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/2022.pythonwebconf.com.ico\" class=\"has-avatar  has-avatar-before\"\u003epython web conf 2022\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://htmx.org/\"\u003ehtmx\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://images.waylonwalker.com/htmx-get-til-click-me.png\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/images.waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/images.waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ebig beefcake of a button\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://images.waylonwalker.com/htmx-get-til-hello.png\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/images.waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/images.waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ethe final results\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\nI recently attended\n[python web conf 2022](https://2022.pythonwebconf.com/)\nand after seeing some incredible presentations on it I am excited to\ngive [htmx](https://htmx.org/) a try.\n\n## The base page\n\nStart with some html boilerplate, pop in a script tag to add the\nhtmx.org script, and a button that says click me.  I added just a tish\nof style so that it does not sear your delicate developer your eyes.\n\n```html\n\u003c!DOCTYPE html\u003e\n\u003chtml lang=\"en\"\u003e\n  \u003chead\u003e\n    \u003ctitle\u003e\u003c/title\u003e\n    \u003cmeta charset=\"UTF-8\"\u003e\n    \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1\"\u003e\n    \u003cstyle\u003e\n      html  { background: #1f2022; color: #eefbfe; font-size: 64px; }\n      button {font-size: 64px;}\n      body { height: 100vh; width: 100vw; display: flex; justify-content: center; align-items:center; }\n    \u003c/style\u003e\n    \u003c!-- Load from unpkg --\u003e\n    \u003cscript src=\"https://unpkg.com/htmx.org@1.7.0\"\u003e\u003c/script\u003e\n  \u003c/head\u003e\n  \u003cbody\u003e\n  \u003c!-- have a button POST a click via AJAX --\u003e\n  \u003cbutton hx-get=\"/partial\" hx-swap=\"outerHTML\"\u003e\n    Click Me\n  \u003c/button\u003e\n\n  \u003c/body\u003e\n\u003c/html\u003e\n```\n\nSave this as `index.html` and fire up a webserver and you will be\npresented with this big beefcake of a button.\n\n![big beefcake of a button](https://images.waylonwalker.com/htmx-get-til-click-me.png)\n\nIf you don't have a development server preference I reccomend opening\nthe terminal and running `python -m http.server 8000` then opening your\nbrowser to `localhost:8000`\n\n## The Partial\n\nNow the page has a button that is ready to replace itself, notice the\n`hx-swap=\"outerHTML\"\u003e`, with the contents of /partial. To create a\nstatic api of sorts we can simply host a partial page in a file at\n`/partial/index.html` with the following contents.\n\n```html\n\u003cp\u003e\nhello\n\u003c/p\u003e\n```\n\n![the final results](https://images.waylonwalker.com/htmx-get-til-hello.png)\n\n\u003cscript src=\"https://unpkg.com/htmx.org@1.7.0\"\u003e\u003c/script\u003e\n\n## Tree\n\nTo make it a bit clearer here is what the file tree looks like after\nsetting this up.\n\n```txt\n~/git/htmx  v3.9.7 (git)\n❯ tree\n.\n├── clicked\n│   └── index.html\n└── index.html\n```\n\n## Demo\n\nI added htmx to this page and setup a partial below, check out this\neaster egg.\n\n\u003cbutton hx-get=\"./partial\" hx-swap=\"outerHTML\"\u003e\n    Click Me\n\u003c/button\u003e\n\n\n## Links\n\n* [python web conf 2022](https://2022.pythonwebconf.com/)\n* [htmx](https://htmx.org/)\n* [big beefcake of a button](https://images.waylonwalker.com/htmx-get-til-click-me.png)\n* [the final results](https://images.waylonwalker.com/htmx-get-til-hello.png)\n",
      "summary": "I recently attended python web conf 2022 and after seeing some incredible presentations on it I am excited to give htmx a try.",
      "date_published": "2022-03-25T00:49:23Z",
      "date_modified": "2022-03-25T00:49:23Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "webdev",
        "webdev",
        "webdev"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/lookatme-styles/",
      "url": "https://go.waylonwalker.com/lookatme-styles/",
      "title": "Style Lookatme Slides a bit more Personal",
      "content_html": "\u003cp\u003eI recently gave a talk at python web conf 2022, and one of the things I did\nwhen I should have been working on my presentation was workig on how my\npresentation looked… classic procrastination technique.\u003c/p\u003e\n\u003ch2 id=\"slide-one\"\u003eSlide One \u003ca href=\"#slide-one\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLets use this section to show what it \u003cem\u003elooks\u003c/em\u003e like as I change \u003cstrong\u003emy\u003c/strong\u003e styles.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003emarkata\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eMarkata\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eMarkata\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003emarkata\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003erun\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003e☝ This is how my \u003cstrong\u003ewebsite\u003c/strong\u003e is built\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cul\u003e\n\u003cli\u003ewrite markdown\u003c/li\u003e\n\u003cli\u003ebuild site\u003c/li\u003e\n\u003cli\u003epublish\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"default\"\u003edefault \u003ca href=\"#default\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis is what the above slide looks like in lookatme.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://images.waylonwalker.com/lookatme-styles-default.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://images.waylonwalker.com/lookatme-styles-default.png\" alt=\"default styles\"/ data-glightbox=\"description: default styles\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"set-focus-to-the-most-important-element\"\u003eSet focus to the most important element \u003ca href=\"#set-focus-to-the-most-important-element\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe way I write my slides I want the most prominant element to be the slides\ntitle, not the presentation title.  The slides title is generally the point I\nam trying to make, I will leave some supporting information if I want, but\nsometimes, I \u003cem\u003ejust\u003c/em\u003e have a title.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003estyles\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003etitle\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"nt\"\u003ebg\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003edefault\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"nt\"\u003efg\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;#e1af66\u0026#39;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eheadings\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"nt\"\u003e\u0026#39;1\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e            \u003c/span\u003e\u003cspan class=\"nt\"\u003ebg\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003edefault\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e            \u003c/span\u003e\u003cspan class=\"nt\"\u003efg\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;#ff66c4,bold,italics\u0026#39;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e            \u003c/span\u003e\u003cspan class=\"nt\"\u003eprefix\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39; ⇁ \u0026#39;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e            \u003c/span\u003e\u003cspan class=\"nt\"\u003esuffix\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39; ↽ \u0026#39;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cfigure\u003e\n\u003ca href=\"https://images.waylonwalker.com/lookatme-styles-focus-to-slide-title.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://images.waylonwalker.com/lookatme-styles-focus-to-slide-title.png\" alt=\"set the focus on the slide title styles\"/ data-glightbox=\"description: set the focus on the slide title styles\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cblockquote\u003e\n\u003cp\u003eby default he prefix/suffix was a full block that just went transparant into\nthe slide.  I thought the harpoons were fun and went with them on a whim\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"the-box-characters-bother-me\"\u003eThe box characters bother me \u003ca href=\"#the-box-characters-bother-me\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe box characters are fine really, but it really bothers me that they are not\nconneted.  The author is probably doing this because it looks ok on most\nsystems, and many terminals dont have their fonts right and wont align anyways.\nI am not sure if I ever had a windows terminal other than their new Terminal\nthat properly connected box characters.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003equote\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"nt\"\u003eside\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;│\u0026#39;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"nt\"\u003estyle\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e            \u003c/span\u003e\u003cspan class=\"nt\"\u003ebg\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003edefault\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e            \u003c/span\u003e\u003cspan class=\"nt\"\u003efg\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;#aaa\u0026#39;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"nt\"\u003etop_corner\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;╭\u0026#39;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"nt\"\u003ebottom_corner\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;╰\u0026#39;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"add-author\"\u003eAdd Author \u003ca href=\"#add-author\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdding author to the root of the frontmatter of the document will add it to the bottom left of the slides.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003eauthor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;@_waylonwalker\u0026#39;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cfigure\u003e\n\u003ca href=\"https://images.waylonwalker.com/lookatme-styles-add-author.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://images.waylonwalker.com/lookatme-styles-add-author.png\" alt=\"lookatme slides with author defined\"/ data-glightbox=\"description: lookatme slides with author defined\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"style-the-author\"\u003eStyle the author \u003ca href=\"#style-the-author\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWe can style the foreground and background of this text by adding something\nlike this to the styles section of the frontmatter.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003eauthor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003ebg\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003edefault\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003efg\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;#368ce2\u0026#39;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"the-rest-of-the-footer\"\u003eThe rest of the footer \u003ca href=\"#the-rest-of-the-footer\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWhile we are at it, lets style the rest of the footer to my own theme.  Let’s pop this into the style and see what it looks like.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003edate\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003ebg\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003edefault\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003efg\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;#368ce2\u0026#39;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003eslides\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003ebg\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003edefault\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003efg\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;#368ce2\u0026#39;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cfigure\u003e\n\u003ca href=\"https://images.waylonwalker.com/lookatme-styles-add-author-styles.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://images.waylonwalker.com/lookatme-styles-add-author-styles.png\" alt=\"lookatme slides with author styled\"/ data-glightbox=\"description: lookatme slides with author styled\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"reduce-the-padding\"\u003ereduce the padding \u003ca href=\"#reduce-the-padding\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWhen I am presenting I am punched in as big as I can go, and which makes\nthe padding massive.  I want as much as the screen real estate devoted to\nmaking big readable text as I can.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003epadding\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003ebottom\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"m\"\u003e0\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eleft\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"m\"\u003e0\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eright\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"m\"\u003e0\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003etop\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"m\"\u003e0\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cfigure\u003e\n\u003ca href=\"https://images.waylonwalker.com/lookatme-styles-no-padding.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://images.waylonwalker.com/lookatme-styles-no-padding.png\" alt=\"lookatme slides with no more padding\"/ data-glightbox=\"description: lookatme slides with no more padding\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"final-results\"\u003efinal results \u003ca href=\"#final-results\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eHere is what the final frontmatter looks like to fully style my talk.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nn\"\u003e---\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003edate\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"ld\"\u003e2022-03-24\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003etemplateKey\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003etil\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003etitle\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eStyle Lookatme Slides a bit more Personal\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003etags\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e- \u003cspan class=\"l\"\u003epython\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e- \u003cspan class=\"l\"\u003ecli\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e- \u003cspan class=\"l\"\u003epython\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003eauthor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;@_waylonwalker\u0026#39;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003estyles\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003epadding\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"nt\"\u003ebottom\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"m\"\u003e0\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"nt\"\u003eleft\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"m\"\u003e0\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"nt\"\u003eright\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"m\"\u003e0\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"nt\"\u003etop\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"m\"\u003e0\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003etitle\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"nt\"\u003ebg\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003edefault\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"nt\"\u003efg\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;#e1af66\u0026#39;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003edate\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"nt\"\u003ebg\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003edefault\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"nt\"\u003efg\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;#368ce2\u0026#39;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eslides\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"nt\"\u003ebg\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003edefault\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"nt\"\u003efg\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;#368ce2\u0026#39;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eheadings\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"nt\"\u003e\u0026#39;1\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e            \u003c/span\u003e\u003cspan class=\"nt\"\u003ebg\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003edefault\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e            \u003c/span\u003e\u003cspan class=\"nt\"\u003efg\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;#ff66c4,bold,italics\u0026#39;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e            \u003c/span\u003e\u003cspan class=\"nt\"\u003eprefix\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39; ⇁ \u0026#39;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e            \u003c/span\u003e\u003cspan class=\"nt\"\u003esuffix\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39; ↽ \u0026#39;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003equote\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"nt\"\u003eside\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;│\u0026#39;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"nt\"\u003estyle\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e            \u003c/span\u003e\u003cspan class=\"nt\"\u003ebg\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003edefault\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e            \u003c/span\u003e\u003cspan class=\"nt\"\u003efg\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;#aaa\u0026#39;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"nt\"\u003etop_corner\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;╭\u0026#39;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"nt\"\u003ebottom_corner\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;╰\u0026#39;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eauthor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"nt\"\u003ebg\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003edefault\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"nt\"\u003efg\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;#368ce2\u0026#39;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nn\"\u003e---\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nI recently gave a talk at python web conf 2022, and one of the things I did\nwhen I should have been working on my presentation was workig on how my\npresentation looked... classic procrastination technique.\n\n## Slide One\n\nLets use this section to show what it _looks_ like as I change **my** styles.\n\n\n``` python\nfrom markata import Markata\nMarkata()\nmarkata.run()\n```\n\n\u003e ☝ This is how my **website** is built\n\n* write markdown\n* build site\n* publish\n\n## default\n\nThis is what the above slide looks like in lookatme.\n\n![default styles](https://images.waylonwalker.com/lookatme-styles-default.png)\n\n## Set focus to the most important element\n\nThe way I write my slides I want the most prominant element to be the slides\ntitle, not the presentation title.  The slides title is generally the point I\nam trying to make, I will leave some supporting information if I want, but\nsometimes, I _just_ have a title.\n\n``` yaml\nstyles:\n    title:\n        bg: default\n        fg: '#e1af66'\n    headings:\n        '1':\n            bg: default\n            fg: '#ff66c4,bold,italics'\n            prefix: ' ⇁ '\n            suffix: ' ↽ '\n```\n\n![set the focus on the slide title styles](https://images.waylonwalker.com/lookatme-styles-focus-to-slide-title.png)\n\n\n\u003e by default he prefix/suffix was a full block that just went transparant into\n\u003e the slide.  I thought the harpoons were fun and went with them on a whim\n\n## The box characters bother me\n\nThe box characters are fine really, but it really bothers me that they are not\nconneted.  The author is probably doing this because it looks ok on most\nsystems, and many terminals dont have their fonts right and wont align anyways.\nI am not sure if I ever had a windows terminal other than their new Terminal\nthat properly connected box characters.\n\n```yaml\n    quote:\n        side: '│'\n        style:\n            bg: default\n            fg: '#aaa'\n        top_corner: '╭'\n        bottom_corner: '╰'\n````\n\n## Add Author\n\nAdding author to the root of the frontmatter of the document will add it to the bottom left of the slides.\n\n```yaml\nauthor: '@_waylonwalker'\n```\n\n![lookatme slides with author defined](https://images.waylonwalker.com/lookatme-styles-add-author.png)\n\n## Style the author\n\nWe can style the foreground and background of this text by adding something\nlike this to the styles section of the frontmatter.\n\n```yaml\nauthor:\n    bg: default\n    fg: '#368ce2'\n```\n\n## The rest of the footer\n\nWhile we are at it, lets style the rest of the footer to my own theme.  Let's pop this into the style and see what it looks like.\n\n```yaml\ndate:\n    bg: default\n    fg: '#368ce2'\nslides:\n    bg: default\n    fg: '#368ce2'\n```\n\n![lookatme slides with author styled](https://images.waylonwalker.com/lookatme-styles-add-author-styles.png)\n\n## reduce the padding\n\nWhen I am presenting I am punched in as big as I can go, and which makes\nthe padding massive.  I want as much as the screen real estate devoted to\nmaking big readable text as I can.\n\n```yaml\npadding:\n    bottom: 0\n    left: 0\n    right: 0\n    top: 0\n```\n\n![lookatme slides with no more padding](https://images.waylonwalker.com/lookatme-styles-no-padding.png)\n\n\n## final results\n\nHere is what the final frontmatter looks like to fully style my talk.\n\n```yaml\n---\ndate: 2022-03-24\ntemplateKey: til\ntitle: Style Lookatme Slides a bit more Personal\ntags:\n  - python\n  - cli\n  - python\nauthor: '@_waylonwalker'\nstyles:\n    padding:\n        bottom: 0\n        left: 0\n        right: 0\n        top: 0\n    title:\n        bg: default\n        fg: '#e1af66'\n    date:\n        bg: default\n        fg: '#368ce2'\n    slides:\n        bg: default\n        fg: '#368ce2'\n    headings:\n        '1':\n            bg: default\n            fg: '#ff66c4,bold,italics'\n            prefix: ' ⇁ '\n            suffix: ' ↽ '\n    quote:\n        side: '│'\n        style:\n            bg: default\n            fg: '#aaa'\n        top_corner: '╭'\n        bottom_corner: '╰'\n    author:\n        bg: default\n        fg: '#368ce2'\n---\n```\n",
      "summary": "I recently gave a talk at python web conf 2022, and one of the things I did when I should have been working on my presentation was workig on how my...",
      "date_published": "2022-03-24T00:00:00Z",
      "date_modified": "2022-03-24T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "cli",
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/python-frontmatter/",
      "url": "https://go.waylonwalker.com/python-frontmatter/",
      "title": "How I load Markdown in Python",
      "content_html": "\u003cp\u003eI use a package\n\u003ca href=\"https://github.com/eyeseast/python-frontmatter\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eeyeseast/python-frontmatter\u003c/a\u003e{.hoverlink}\nto load files with frontmatter in them.  Its a handy package that allows you to\nload files with structured frontmatter (yaml, json, or toml).\u003c/p\u003e\n\u003ch2 id=\"install\"\u003eInstall \u003ca href=\"#install\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIt’s on pypi, so you can install it into your \u003ca href=\"/virtual-environment/\" class=\"glossary-term\" title=\"Virtual Environment is term for a sandboxed environment commonly associated with the python programming language. If you are installing any sort of python...\"\u003evirtual environment\u003c/a\u003e with pip.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epython -m pip install python-frontmatter\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"-whats-frontmatter\"\u003e🙋 What’s Frontmatter \u003ca href=\"#-whats-frontmatter\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eFrontmatter is a handy way to add metadata to your plain text files.  It’s\nquite common to have yaml frontmatter in markdown.  All of my blog posts have\nyaml frontmatter to give the post metadata such as post date, tags, title, and\ntemplate.  dev.to is a popular developer blogging platform that also builds all\nof its posts with markdown and yaml frontmatter.\u003c/p\u003e\n\u003ch2 id=\"lets-see-an-example\"\u003eLet’s see an example \u003ca href=\"#lets-see-an-example\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eHere is the exact frontmatter for this post you are reading on my site.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e---\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edate: 2022-03-24 03:18:48.631729\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003etemplateKey: til\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003etitle: How I load Markdown in Python\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003etags:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"k\"\u003e-\u003c/span\u003e linux\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"k\"\u003e-\u003c/span\u003e python\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e---\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eThis is where the markdown content for the post goes.\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"so-its-yaml\"\u003eSo it’s yaml \u003ca href=\"#so-its-yaml\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eyaml is the most commmon, but\n\u003ca href=\"https://pypi.org/project/python-frontmatter/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/pypi.org.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/pypi.org.ico\" class=\"has-avatar  has-avatar-before\"\u003epython-frontmatter\u003c/a\u003e{.hoverlink}\nalso supports\n\u003ca href=\"https://python-frontmatter.readthedocs.io/en/latest/handlers.html?highlight=toml#module-frontmatter.default_handlers\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/python-frontmatter.readthedocs.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/python-frontmatter.readthedocs.io.ico\" class=\"has-avatar  has-avatar-before\"\u003eHandlers\u003c/a\u003e{.hoverlink}\nfor toml and json.\u003c/p\u003e\n\u003cp\u003eIf you want a good set of examples of yaml\n\u003ca href=\"https://learnxinyminutes.com/docs/yaml/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/learnxinyminutes.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/learnxinyminutes.com.ico\" class=\"has-avatar  has-avatar-before\"\u003elearnxinyminutes\u003c/a\u003e{.hoverlink} has a fantastic set\nof examples in one page.\u003c/p\u003e\n\u003ch2 id=\"how-to-load-yaml-frontmatter-in-python\"\u003eHow to load yaml frontmatter in python \u003ca href=\"#how-to-load-yaml-frontmatter-in-python\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eHere is how I would load this post into python using\n\u003ca href=\"https://pypi.org/project/python-frontmatter/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/pypi.org.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/pypi.org.ico\" class=\"has-avatar  has-avatar-before\"\u003epython-frontmatter\u003c/a\u003e{.hoverlink}.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003efrontmatter\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003einspect\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003efrontmatter\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eload\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;pages/til/python-frontmatter.md\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eWe can use \u003ca href=\"https://github.com/Textualize/rich\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003erich\u003c/a\u003e{.hoverlink} to inspect the Post\nobject to see what all it contains.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e❯\u003c/span\u003e \u003cspan class=\"n\"\u003einspect\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003efrontmatter\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eload\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;pages/til/python-frontmatter.md\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e╭──────────────────────────────────────────────────────────\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"k\"\u003eclass\u003c/span\u003e \u003cspan class=\"err\"\u003e\u0026#39;\u003c/span\u003e\u003cspan class=\"nc\"\u003efrontmatter\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ePost\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;\u0026gt; ───────────────────────────────────────────────────────────╮\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e│\u003c/span\u003e \u003cspan class=\"n\"\u003eA\u003c/span\u003e \u003cspan class=\"n\"\u003epost\u003c/span\u003e \u003cspan class=\"n\"\u003econtains\u003c/span\u003e \u003cspan class=\"n\"\u003econtent\u003c/span\u003e \u003cspan class=\"ow\"\u003eand\u003c/span\u003e \u003cspan class=\"n\"\u003emetadata\u003c/span\u003e \u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003eFront\u003c/span\u003e \u003cspan class=\"n\"\u003eMatter\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e \u003cspan class=\"n\"\u003eThis\u003c/span\u003e \u003cspan class=\"ow\"\u003eis\u003c/span\u003e \u003cspan class=\"n\"\u003ewhat\u003c/span\u003e \u003cspan class=\"n\"\u003egets\u003c/span\u003e                                                                       \u003cspan class=\"err\"\u003e│\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e│\u003c/span\u003e \u003cspan class=\"n\"\u003ereturned\u003c/span\u003e \u003cspan class=\"n\"\u003eby\u003c/span\u003e \u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"n\"\u003epy\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"n\"\u003efunc\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"err\"\u003e`\u003c/span\u003e\u003cspan class=\"n\"\u003eload\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003efrontmatter\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eload\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"err\"\u003e`\u003c/span\u003e \u003cspan class=\"ow\"\u003eand\u003c/span\u003e \u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"n\"\u003epy\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"n\"\u003efunc\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"err\"\u003e`\u003c/span\u003e\u003cspan class=\"n\"\u003eloads\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003efrontmatter\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eloads\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"err\"\u003e`\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e                                                        \u003cspan class=\"err\"\u003e│\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e│\u003c/span\u003e \u003cspan class=\"n\"\u003ePassing\u003c/span\u003e \u003cspan class=\"n\"\u003ethis\u003c/span\u003e \u003cspan class=\"n\"\u003eto\u003c/span\u003e \u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"n\"\u003epy\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"n\"\u003efunc\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"err\"\u003e`\u003c/span\u003e\u003cspan class=\"n\"\u003edump\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003efrontmatter\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003edump\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"err\"\u003e`\u003c/span\u003e \u003cspan class=\"ow\"\u003eor\u003c/span\u003e \u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"n\"\u003epy\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"n\"\u003efunc\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"err\"\u003e`\u003c/span\u003e\u003cspan class=\"n\"\u003edumps\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003efrontmatter\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003edumps\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"err\"\u003e`\u003c/span\u003e                                                      \u003cspan class=\"err\"\u003e│\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e│\u003c/span\u003e \u003cspan class=\"n\"\u003ewill\u003c/span\u003e \u003cspan class=\"n\"\u003eturn\u003c/span\u003e \u003cspan class=\"n\"\u003eit\u003c/span\u003e \u003cspan class=\"n\"\u003eback\u003c/span\u003e \u003cspan class=\"n\"\u003einto\u003c/span\u003e \u003cspan class=\"n\"\u003etext\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e                                                                                                                    \u003cspan class=\"err\"\u003e│\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e│\u003c/span\u003e                                                                                                                                                 \u003cspan class=\"err\"\u003e│\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e│\u003c/span\u003e \u003cspan class=\"err\"\u003e╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮\u003c/span\u003e \u003cspan class=\"err\"\u003e│\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e│\u003c/span\u003e \u003cspan class=\"err\"\u003e│\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003efrontmatter\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ePost\u003c/span\u003e \u003cspan class=\"nb\"\u003eobject\u003c/span\u003e \u003cspan class=\"n\"\u003eat\u003c/span\u003e \u003cspan class=\"mh\"\u003e0x7f03c4c23ca0\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e                                                                                                 \u003cspan class=\"err\"\u003e│\u003c/span\u003e \u003cspan class=\"err\"\u003e│\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e│\u003c/span\u003e \u003cspan class=\"err\"\u003e╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u003c/span\u003e \u003cspan class=\"err\"\u003e│\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e│\u003c/span\u003e                                                                                                                                                 \u003cspan class=\"err\"\u003e│\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e│\u003c/span\u003e  \u003cspan class=\"n\"\u003econtent\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;I use a package\u003c/span\u003e\u003cspan class=\"se\"\u003e\\n\u003c/span\u003e\u003cspan class=\"s2\"\u003e[eyeseast/python-frontmatter](https://github.com/eyeseast/python-frontmatter)\u003c/span\u003e\u003cspan class=\"se\"\u003e\\n\u003c/span\u003e\u003cspan class=\"s2\"\u003eto load files with frontmatter in   │\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e│\u003c/span\u003e            \u003cspan class=\"n\"\u003ethem\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e  \u003cspan class=\"n\"\u003eIts\u003c/span\u003e \u003cspan class=\"n\"\u003ea\u003c/span\u003e \u003cspan class=\"n\"\u003ehandy\u003c/span\u003e \u003cspan class=\"n\"\u003epackage\u003c/span\u003e \u003cspan class=\"n\"\u003ethat\u003c/span\u003e \u003cspan class=\"n\"\u003eallows\u003c/span\u003e \u003cspan class=\"n\"\u003eyou\u003c/span\u003e \u003cspan class=\"n\"\u003eto\u003c/span\u003e\\\u003cspan class=\"n\"\u003enload\u003c/span\u003e \u003cspan class=\"n\"\u003efiles\u003c/span\u003e \u003cspan class=\"k\"\u003ewith\u003c/span\u003e \u003cspan class=\"n\"\u003estructured\u003c/span\u003e \u003cspan class=\"n\"\u003efrontmatter\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eyaml\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ejson\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"ow\"\u003eor\u003c/span\u003e \u003cspan class=\"n\"\u003etoml\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\\\u003cspan class=\"n\"\u003en\u003c/span\u003e\\\u003cspan class=\"n\"\u003en\u003c/span\u003e\u003cspan class=\"c1\"\u003e## Install\\n\\nIt\u0026#39;s   │\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e│\u003c/span\u003e            \u003cspan class=\"n\"\u003eon\u003c/span\u003e \u003cspan class=\"n\"\u003epypi\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eso\u003c/span\u003e \u003cspan class=\"n\"\u003eyou\u003c/span\u003e \u003cspan class=\"n\"\u003ecan\u003c/span\u003e \u003cspan class=\"n\"\u003einstall\u003c/span\u003e \u003cspan class=\"n\"\u003eit\u003c/span\u003e \u003cspan class=\"n\"\u003einto\u003c/span\u003e \u003cspan class=\"n\"\u003eyour\u003c/span\u003e \u003cspan class=\"n\"\u003evirtual\u003c/span\u003e \u003cspan class=\"n\"\u003eenvironment\u003c/span\u003e \u003cspan class=\"k\"\u003ewith\u003c/span\u003e \u003cspan class=\"n\"\u003epip\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\\\u003cspan class=\"n\"\u003en\u003c/span\u003e\\\u003cspan class=\"n\"\u003en\u003c/span\u003e\u003cspan class=\"err\"\u003e```\u003c/span\u003e\u003cspan class=\"n\"\u003ebash\u003c/span\u003e\\\u003cspan class=\"n\"\u003enpython\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003em\u003c/span\u003e \u003cspan class=\"n\"\u003epip\u003c/span\u003e \u003cspan class=\"n\"\u003einstall\u003c/span\u003e                             \u003cspan class=\"err\"\u003e│\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e│\u003c/span\u003e            \u003cspan class=\"n\"\u003epython\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003efrontmatter\u003c/span\u003e\\\u003cspan class=\"n\"\u003en\u003c/span\u003e\u003cspan class=\"err\"\u003e```\u003c/span\u003e\\\u003cspan class=\"n\"\u003en\u003c/span\u003e\\\u003cspan class=\"n\"\u003en\u003c/span\u003e\u003cspan class=\"c1\"\u003e## 🙋 What\u0026#39;s Frontmatter\\n\\nFrontmatter is a handy way to add metadata to your plain text files.          │\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e│\u003c/span\u003e            \u003cspan class=\"n\"\u003eIt\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;s\u003c/span\u003e\u003cspan class=\"se\"\u003e\\n\u003c/span\u003e\u003cspan class=\"s1\"\u003equite common to have yaml frontmatter in markdown.  All of my blog posts have\u003c/span\u003e\u003cspan class=\"se\"\u003e\\n\u003c/span\u003e\u003cspan class=\"s1\"\u003eyaml frontmatter to give the post metadata such │\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e│\u003c/span\u003e            \u003cspan class=\"k\"\u003eas\u003c/span\u003e \u003cspan class=\"n\"\u003epost\u003c/span\u003e \u003cspan class=\"n\"\u003edate\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003etags\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003etitle\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"ow\"\u003eand\u003c/span\u003e\\\u003cspan class=\"n\"\u003entemplate\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e  \u003cspan class=\"n\"\u003edev\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eto\u003c/span\u003e \u003cspan class=\"ow\"\u003eis\u003c/span\u003e \u003cspan class=\"n\"\u003ea\u003c/span\u003e \u003cspan class=\"n\"\u003epopular\u003c/span\u003e \u003cspan class=\"n\"\u003edeveloper\u003c/span\u003e \u003cspan class=\"n\"\u003eblogging\u003c/span\u003e \u003cspan class=\"n\"\u003eplatform\u003c/span\u003e \u003cspan class=\"n\"\u003ethat\u003c/span\u003e \u003cspan class=\"n\"\u003ealso\u003c/span\u003e \u003cspan class=\"n\"\u003ebuilds\u003c/span\u003e \u003cspan class=\"nb\"\u003eall\u003c/span\u003e\\\u003cspan class=\"n\"\u003enof\u003c/span\u003e \u003cspan class=\"n\"\u003eits\u003c/span\u003e \u003cspan class=\"n\"\u003eposts\u003c/span\u003e \u003cspan class=\"k\"\u003ewith\u003c/span\u003e   \u003cspan class=\"err\"\u003e│\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e│\u003c/span\u003e            \u003cspan class=\"n\"\u003emarkdown\u003c/span\u003e \u003cspan class=\"ow\"\u003eand\u003c/span\u003e \u003cspan class=\"n\"\u003eyaml\u003c/span\u003e \u003cspan class=\"n\"\u003efrontmatter\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\\\u003cspan class=\"n\"\u003en\u003c/span\u003e\\\u003cspan class=\"n\"\u003en\u003c/span\u003e\u003cspan class=\"c1\"\u003e## Let\u0026#39;s see an example\\n\\nHere is the exact frontmatter for this post you are reading on my       │\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e│\u003c/span\u003e            \u003cspan class=\"n\"\u003esite\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\\\u003cspan class=\"n\"\u003en\u003c/span\u003e\\\u003cspan class=\"n\"\u003en\u003c/span\u003e\u003cspan class=\"err\"\u003e```\u003c/span\u003e\u003cspan class=\"n\"\u003emarkdown\u003c/span\u003e\\\u003cspan class=\"n\"\u003en\u003c/span\u003e\u003cspan class=\"o\"\u003e---\u003c/span\u003e\\\u003cspan class=\"n\"\u003endate\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e2022\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"mi\"\u003e03\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"mi\"\u003e24\u003c/span\u003e \u003cspan class=\"mi\"\u003e03\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"mi\"\u003e18\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"mf\"\u003e48.631729\u003c/span\u003e\\\u003cspan class=\"n\"\u003entemplateKey\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003etil\u003c/span\u003e\\\u003cspan class=\"n\"\u003entitle\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003eHow\u003c/span\u003e \u003cspan class=\"n\"\u003eI\u003c/span\u003e \u003cspan class=\"n\"\u003eload\u003c/span\u003e \u003cspan class=\"n\"\u003eMarkdown\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003ePython\u003c/span\u003e\\\u003cspan class=\"n\"\u003entags\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\\\u003cspan class=\"n\"\u003en\u003c/span\u003e  \u003cspan class=\"o\"\u003e-\u003c/span\u003e      \u003cspan class=\"err\"\u003e│\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e│\u003c/span\u003e            \u003cspan class=\"n\"\u003elinux\u003c/span\u003e\\\u003cspan class=\"n\"\u003en\u003c/span\u003e  \u003cspan class=\"o\"\u003e-\u003c/span\u003e \u003cspan class=\"n\"\u003epython\u003c/span\u003e\\\u003cspan class=\"n\"\u003en\u003c/span\u003e\\\u003cspan class=\"n\"\u003en\u003c/span\u003e\u003cspan class=\"o\"\u003e---\u003c/span\u003e\\\u003cspan class=\"n\"\u003en\u003c/span\u003e\\\u003cspan class=\"n\"\u003enThis\u003c/span\u003e \u003cspan class=\"ow\"\u003eis\u003c/span\u003e \u003cspan class=\"n\"\u003ewhere\u003c/span\u003e \u003cspan class=\"n\"\u003ethe\u003c/span\u003e \u003cspan class=\"n\"\u003emarkdown\u003c/span\u003e \u003cspan class=\"n\"\u003econtent\u003c/span\u003e \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003ethe\u003c/span\u003e \u003cspan class=\"n\"\u003epost\u003c/span\u003e \u003cspan class=\"n\"\u003egoes\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\\\u003cspan class=\"n\"\u003en\u003c/span\u003e\u003cspan class=\"err\"\u003e```\u003c/span\u003e\\\u003cspan class=\"n\"\u003en\u003c/span\u003e\\\u003cspan class=\"n\"\u003en\u003c/span\u003e\u003cspan class=\"c1\"\u003e## So it\u0026#39;s yaml\\n\\nyaml is the most        │\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e│\u003c/span\u003e            \u003cspan class=\"n\"\u003ecommmon\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ebut\u003c/span\u003e\\\u003cspan class=\"n\"\u003en\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"n\"\u003eeyeseast\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003epython\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003efrontmatter\u003c/span\u003e\u003cspan class=\"p\"\u003e](\u003c/span\u003e\u003cspan class=\"n\"\u003ehttps\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"o\"\u003e//\u003c/span\u003e\u003cspan class=\"n\"\u003egithub\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ecom\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003eeyeseast\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003epython\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003efrontmatter\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\\\u003cspan class=\"n\"\u003enalso\u003c/span\u003e                                    \u003cspan class=\"err\"\u003e│\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e│\u003c/span\u003e            \u003cspan class=\"n\"\u003esupports\u003c/span\u003e\\\u003cspan class=\"n\"\u003en\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"n\"\u003eHandlers\u003c/span\u003e\u003cspan class=\"p\"\u003e](\u003c/span\u003e\u003cspan class=\"n\"\u003ehttps\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"o\"\u003e//\u003c/span\u003e\u003cspan class=\"n\"\u003epython\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003efrontmatter\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ereadthedocs\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eio\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003een\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003elatest\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003ehandlers\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ehtml\u003c/span\u003e\u003cspan class=\"err\"\u003e?\u003c/span\u003e\u003cspan class=\"n\"\u003ehighlight\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003etoml\u003c/span\u003e\u003cspan class=\"c1\"\u003e#module-frontmatter.default_ha… │\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e│\u003c/span\u003e            \u003cspan class=\"n\"\u003etoml\u003c/span\u003e \u003cspan class=\"ow\"\u003eand\u003c/span\u003e \u003cspan class=\"n\"\u003ejson\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\\\u003cspan class=\"n\"\u003en\u003c/span\u003e\\\u003cspan class=\"n\"\u003enIf\u003c/span\u003e \u003cspan class=\"n\"\u003eyou\u003c/span\u003e \u003cspan class=\"n\"\u003ewant\u003c/span\u003e \u003cspan class=\"n\"\u003ea\u003c/span\u003e \u003cspan class=\"n\"\u003egood\u003c/span\u003e \u003cspan class=\"nb\"\u003eset\u003c/span\u003e \u003cspan class=\"n\"\u003eof\u003c/span\u003e \u003cspan class=\"n\"\u003eexamples\u003c/span\u003e \u003cspan class=\"n\"\u003eof\u003c/span\u003e \u003cspan class=\"n\"\u003eyaml\u003c/span\u003e\\\u003cspan class=\"n\"\u003en\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"n\"\u003elearnxinyminutes\u003c/span\u003e\u003cspan class=\"p\"\u003e](\u003c/span\u003e\u003cspan class=\"n\"\u003ehttps\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"o\"\u003e//\u003c/span\u003e\u003cspan class=\"n\"\u003elearnxinyminutes\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ecom\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003edocs\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003eyaml\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"n\"\u003ehas\u003c/span\u003e \u003cspan class=\"n\"\u003ea\u003c/span\u003e      \u003cspan class=\"err\"\u003e│\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e│\u003c/span\u003e            \u003cspan class=\"n\"\u003efantastic\u003c/span\u003e \u003cspan class=\"nb\"\u003eset\u003c/span\u003e\\\u003cspan class=\"n\"\u003enof\u003c/span\u003e \u003cspan class=\"n\"\u003eexamples\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003eone\u003c/span\u003e \u003cspan class=\"n\"\u003epage\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\\\u003cspan class=\"n\"\u003en\u003c/span\u003e\\\u003cspan class=\"n\"\u003en\u003c/span\u003e\u003cspan class=\"c1\"\u003e## How to load yaml frontmatter in python\u0026#34;                                                │\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e│\u003c/span\u003e  \u003cspan class=\"n\"\u003ehandler\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003efrontmatter\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003edefault_handlers\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eYAMLHandler\u003c/span\u003e \u003cspan class=\"nb\"\u003eobject\u003c/span\u003e \u003cspan class=\"n\"\u003eat\u003c/span\u003e \u003cspan class=\"mh\"\u003e0x7f03bffbd910\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e                                                                  \u003cspan class=\"err\"\u003e│\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e│\u003c/span\u003e \u003cspan class=\"n\"\u003emetadata\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e                                                                                                                                    \u003cspan class=\"err\"\u003e│\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e│\u003c/span\u003e                \u003cspan class=\"s1\"\u003e\u0026#39;date\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003edatetime\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003edatetime\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e2022\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mi\"\u003e3\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mi\"\u003e24\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mi\"\u003e3\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mi\"\u003e18\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mi\"\u003e48\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mi\"\u003e631729\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e                                                                       \u003cspan class=\"err\"\u003e│\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e│\u003c/span\u003e                \u003cspan class=\"s1\"\u003e\u0026#39;templateKey\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;til\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e                                                                                                            \u003cspan class=\"err\"\u003e│\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e│\u003c/span\u003e                \u003cspan class=\"s1\"\u003e\u0026#39;title\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;How I load Markdown in Python\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e                                                                                        \u003cspan class=\"err\"\u003e│\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e│\u003c/span\u003e                \u003cspan class=\"s1\"\u003e\u0026#39;tags\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;linux\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;python\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;python\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e                                                                                            \u003cspan class=\"err\"\u003e│\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e│\u003c/span\u003e            \u003cspan class=\"p\"\u003e}\u003c/span\u003e                                                                                                                                    \u003cspan class=\"err\"\u003e│\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"getting-metadata\"\u003eGetting Metadata \u003ca href=\"#getting-metadata\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eYou can get items from the posts metadata just as you would from a dict.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epost\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003efrontmatter\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eload\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;pages/til/python-frontmatter.md\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epost\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;date\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# datetime.datetime(2022, 3, 24, 3, 18, 48, 631729)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epost\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eget\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;date\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# datetime.datetime(2022, 3, 24, 3, 18, 48, 631729)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003ca href=\"/python-dict-get/\" class=\"wikilink\" data-title=\"python dict get\" data-description=\"For an embarassingly long time, til today, I have been wrapping my dict gets with key errors in python. I\u0026#39;m sure I\u0026#39;ve read it in code a bunch of times, but...\" data-date=\"2022-02-03\" data-preview=\"For an embarassingly long time, til today, I have been wrapping my dict gets with key errors in python. I\u0026#39;m sure I\u0026#39;ve read it in code a bunch of times, but...\"\u003epython dict get\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eI have recently become fond of the \u003ccode\u003e.get\u003c/code\u003e method to give it an easy default value.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"content-is-content\"\u003eContent is content \u003ca href=\"#content-is-content\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe content of the document is stored under \u003ccode\u003e.content\u003c/code\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epost\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003econtent\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"links\"\u003eLinks \u003ca href=\"#links\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://waylonwalker.com/til/python-dict-get/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003epython dict get\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eyeseast/python-frontmatter\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eeyeseast/python-frontmatter\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://pypi.org/project/python-frontmatter/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/pypi.org.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/pypi.org.ico\" class=\"has-avatar  has-avatar-before\"\u003epython-frontmatter\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://python-frontmatter.readthedocs.io/en/latest/handlers.html?highlight=toml#module-frontmatter.default_handlers\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/python-frontmatter.readthedocs.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/python-frontmatter.readthedocs.io.ico\" class=\"has-avatar  has-avatar-before\"\u003epython-frontmatter Handlers\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://learnxinyminutes.com/docs/yaml/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/learnxinyminutes.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/learnxinyminutes.com.ico\" class=\"has-avatar  has-avatar-before\"\u003elearnxinyminutes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://pypi.org/project/python-frontmatter/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/pypi.org.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/pypi.org.ico\" class=\"has-avatar  has-avatar-before\"\u003epython-frontmatter\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003erich\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\nI use a package\n[eyeseast/python-frontmatter](https://github.com/eyeseast/python-frontmatter){.hoverlink}\nto load files with frontmatter in them.  Its a handy package that allows you to\nload files with structured frontmatter (yaml, json, or toml).\n\n## Install\n\nIt's on pypi, so you can install it into your virtual environment with pip.\n\n```bash\npython -m pip install python-frontmatter\n```\n\n## 🙋 What's Frontmatter\n\nFrontmatter is a handy way to add metadata to your plain text files.  It's\nquite common to have yaml frontmatter in markdown.  All of my blog posts have\nyaml frontmatter to give the post metadata such as post date, tags, title, and\ntemplate.  dev.to is a popular developer blogging platform that also builds all\nof its posts with markdown and yaml frontmatter.\n\n## Let's see an example\n\nHere is the exact frontmatter for this post you are reading on my site.\n\n```markdown\n---\ndate: 2022-03-24 03:18:48.631729\ntemplateKey: til\ntitle: How I load Markdown in Python\ntags:\n  - linux\n  - python\n\n---\n\nThis is where the markdown content for the post goes.\n```\n\n## So it's yaml\n\nyaml is the most commmon, but\n[python-frontmatter](https://pypi.org/project/python-frontmatter/){.hoverlink}\nalso supports\n[Handlers](https://python-frontmatter.readthedocs.io/en/latest/handlers.html?highlight=toml#module-frontmatter.default_handlers){.hoverlink}\nfor toml and json.\n\nIf you want a good set of examples of yaml\n[learnxinyminutes](https://learnxinyminutes.com/docs/yaml/){.hoverlink} has a fantastic set\nof examples in one page.\n\n## How to load yaml frontmatter in python\n\nHere is how I would load this post into python using\n[python-frontmatter](https://pypi.org/project/python-frontmatter/){.hoverlink}.\n\n```python\nimport frontmatter\ninspect(frontmatter.load(\"pages/til/python-frontmatter.md\"))\n```\n\nWe can use [rich](https://github.com/Textualize/rich){.hoverlink} to inspect the Post\nobject to see what all it contains.\n\n```python\n❯ inspect(frontmatter.load(\"pages/til/python-frontmatter.md\"))\n╭────────────────────────────────────────────────────────── \u003cclass 'frontmatter.Post'\u003e ───────────────────────────────────────────────────────────╮\n│ A post contains content and metadata from Front Matter. This is what gets                                                                       │\n│ returned by :py:func:`load \u003cfrontmatter.load\u003e` and :py:func:`loads \u003cfrontmatter.loads\u003e`.                                                        │\n│ Passing this to :py:func:`dump \u003cfrontmatter.dump\u003e` or :py:func:`dumps \u003cfrontmatter.dumps\u003e`                                                      │\n│ will turn it back into text.                                                                                                                    │\n│                                                                                                                                                 │\n│ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │\n│ │ \u003cfrontmatter.Post object at 0x7f03c4c23ca0\u003e                                                                                                 │ │\n│ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │\n│                                                                                                                                                 │\n│  content = \"I use a package\\n[eyeseast/python-frontmatter](https://github.com/eyeseast/python-frontmatter)\\nto load files with frontmatter in   │\n│            them.  Its a handy package that allows you to\\nload files with structured frontmatter (yaml, json, or toml).\\n\\n## Install\\n\\nIt's   │\n│            on pypi, so you can install it into your virtual environment with pip.\\n\\n```bash\\npython -m pip install                             │\n│            python-frontmatter\\n```\\n\\n## 🙋 What's Frontmatter\\n\\nFrontmatter is a handy way to add metadata to your plain text files.          │\n│            It's\\nquite common to have yaml frontmatter in markdown.  All of my blog posts have\\nyaml frontmatter to give the post metadata such │\n│            as post date, tags, title, and\\ntemplate.  dev.to is a popular developer blogging platform that also builds all\\nof its posts with   │\n│            markdown and yaml frontmatter.\\n\\n## Let's see an example\\n\\nHere is the exact frontmatter for this post you are reading on my       │\n│            site.\\n\\n```markdown\\n---\\ndate: 2022-03-24 03:18:48.631729\\ntemplateKey: til\\ntitle: How I load Markdown in Python\\ntags:\\n  -      │\n│            linux\\n  - python\\n\\n---\\n\\nThis is where the markdown content for the post goes.\\n```\\n\\n## So it's yaml\\n\\nyaml is the most        │\n│            commmon, but\\n[eyeseast/python-frontmatter](https://github.com/eyeseast/python-frontmatter)\\nalso                                    │\n│            supports\\n[Handlers](https://python-frontmatter.readthedocs.io/en/latest/handlers.html?highlight=toml#module-frontmatter.default_ha… │\n│            toml and json.\\n\\nIf you want a good set of examples of yaml\\n[learnxinyminutes](https://learnxinyminutes.com/docs/yaml/) has a      │\n│            fantastic set\\nof examples in one page.\\n\\n## How to load yaml frontmatter in python\"                                                │\n│  handler = \u003cfrontmatter.default_handlers.YAMLHandler object at 0x7f03bffbd910\u003e                                                                  │\n│ metadata = {                                                                                                                                    │\n│                'date': datetime.datetime(2022, 3, 24, 3, 18, 48, 631729),                                                                       │\n│                'templateKey': 'til',                                                                                                            │\n│                'title': 'How I load Markdown in Python',                                                                                        │\n│                'tags': ['linux', 'python', 'python']                                                                                            │\n│            }                                                                                                                                    │\n╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n```\n\n## Getting Metadata\n\nYou can get items from the posts metadata just as you would from a dict.\n\n```python\npost = frontmatter.load(\"pages/til/python-frontmatter.md\")\npost['date']\n# datetime.datetime(2022, 3, 24, 3, 18, 48, 631729)\n\npost.get('date')\n# datetime.datetime(2022, 3, 24, 3, 18, 48, 631729)\n```\n\n\u003ca href=\"/python-dict-get/\" class=\"wikilink\" data-title=\"python dict get\" data-description=\"For an embarassingly long time, til today, I have been wrapping my dict gets with key errors in python. I\u0026#39;m sure I\u0026#39;ve read it in code a bunch of times, but...\" data-date=\"2022-02-03\"\u003epython dict get\u003c/a\u003e\n\n\u003e I have recently become fond of the `.get` method to give it an easy default value.\n\n## Content is content\n\nThe content of the document is stored under `.content`\n\n```python\npost.content\n```\n\n## Links\n\n* [python dict get](https://waylonwalker.com/til/python-dict-get/)\n* [eyeseast/python-frontmatter](https://github.com/eyeseast/python-frontmatter)\n* [python-frontmatter](https://pypi.org/project/python-frontmatter/)\n* [python-frontmatter Handlers](https://python-frontmatter.readthedocs.io/en/latest/handlers.html?highlight=toml#module-frontmatter.default_handlers)\n* [learnxinyminutes](https://learnxinyminutes.com/docs/yaml/)\n* [python-frontmatter](https://pypi.org/project/python-frontmatter/)\n* [rich](https://github.com/Textualize/rich)\n",
      "summary": "I use a package eyeseast/python-frontmatter to load files with frontmatter in them. Its a handy package that allows you to load files with structured...",
      "date_published": "2022-03-23T03:18:48Z",
      "date_modified": "2022-03-23T03:18:48Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/python-pep-584/",
      "url": "https://go.waylonwalker.com/python-pep-584/",
      "title": "Python's Dict Union Operator | Pep 584",
      "content_html": "\u003cp\u003eToday I was watching the python web conf 2022 and saw\n\u003ca href=\"https://twitter.com/davidvujic\"\u003e@davidbujic\u003c/a\u003e use the new Dict Union Operator\nLive on stage during his \u003ca href=\"https://2022.pythonwebconf.com/presentations/functional-python\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/2022.pythonwebconf.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/2022.pythonwebconf.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eFunctional\nProgramming\u003c/a\u003e\ntalk.  This operator was first introduced into python 3.9 with \u003ca href=\"https://peps.python.org/pep-0584/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/peps.python.org.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/peps.python.org.png\" class=\"has-avatar  has-avatar-before\"\u003epep584\u003c/a\u003e.\u003c/p\u003e\n\u003ch2 id=\"merge-dicts\"\u003eMerge Dicts \u003ca href=\"#merge-dicts\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI’ve long updated dicts through the use of unpacking.  Note that the last item\nalways wins.  It makes it pretty easy to make user overrides to default\nconfigurations.  With pep584 landing in python 3.9 we can now leverage the \u003ccode\u003e|\u003c/code\u003e\noperator to achieve the same result.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003edefault_config\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;url\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;https://example.com\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;assets_dir\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;static\u0026#39;\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003euser_config\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;url\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;https://waylonwalker.com\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# **unpacking goes back much further than 3.9\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003econfig\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"o\"\u003e**\u003c/span\u003e\u003cspan class=\"n\"\u003edefault_config\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"o\"\u003e**\u003c/span\u003e\u003cspan class=\"n\"\u003euser_config\u003c/span\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003econfig\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# {\u0026#39;url\u0026#39;: \u0026#39;https://waylonwalker.com\u0026#39;, \u0026#39;assets_dir\u0026#39;: \u0026#39;static\u0026#39;}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# the same can be achieved through the new to python 3.9 | operator\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003econfig\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003edefault_config\u003c/span\u003e \u003cspan class=\"o\"\u003e|\u003c/span\u003e \u003cspan class=\"n\"\u003euser_config\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003econfig\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# {\u0026#39;url\u0026#39;: \u0026#39;https://waylonwalker.com\u0026#39;, \u0026#39;assets_dir\u0026#39;: \u0026#39;static\u0026#39;}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003ca href=\"/python-args-kwargs/\" class=\"wikilink\" data-title=\"understanding python \\\\*args and \\\\*\\\\*kwargs\" data-description=\"Python and are super useful tools, that when used properly can make you code much simpler and easier to maintain. Large manual conversions from a dataset to...\" data-date=\"2020-06-10\" data-preview=\"Python and are super useful tools, that when used properly can make you code much simpler and easier to maintain. Large manual conversions from a dataset to...\"\u003eunderstanding python *args and **kwargs\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eMore on unpacking in this post.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"update-dicts\"\u003eUpdate Dicts \u003ca href=\"#update-dicts\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWith the release there is also a new update syntax \u003ccode\u003e|=\u003c/code\u003e that you can use to\nupdate.  I dont often mutate variables for some reason, so I cant think of a\nbetter example for this from my personal use cases. So I will give a similar\nexample to above, except creating a config, then updating it.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# old python \u0026lt;3.9 way\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003econfig\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;url\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;https://example.com\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;assets_dir\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;static\u0026#39;\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003econfig\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eupdate\u003c/span\u003e\u003cspan class=\"p\"\u003e({\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;url\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;https://waylonwalker.com\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# new python 3.9+ way\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003econfig\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;url\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;https://example.com\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;assets_dir\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;static\u0026#39;\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003econfig\u003c/span\u003e \u003cspan class=\"o\"\u003e|=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;url\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;https://waylonwalker.com\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003econfig\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# {\u0026#39;url\u0026#39;: \u0026#39;https://waylonwalker.com\u0026#39;, \u0026#39;assets_dir\u0026#39;: \u0026#39;static\u0026#39;}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"should-you-use-it\"\u003eShould you use it? \u003ca href=\"#should-you-use-it\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAre you writing libraries/applications that are only going to be ran on 3.9?\nThen ya go for it there is nothing to loose.  If there is any chance someone is\ngoing to run your code on 3.8 or older then just use \u003ccode\u003e**\u003c/code\u003e, or \u003ccode\u003e.update\u003c/code\u003e.\u003c/p\u003e\n\u003ch2 id=\"rtfm\"\u003eRTFM \u003ca href=\"#rtfm\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis is what comes first to my mind on how to use this new syntax, read\n\u003ca href=\"https://peps.python.org/pep-0584/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/peps.python.org.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/peps.python.org.png\" class=\"has-avatar  has-avatar-before\"\u003epep584\u003c/a\u003e for all the gritty details on it.\u003c/p\u003e\n\u003ch2 id=\"links\"\u003eLinks \u003ca href=\"#links\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://twitter.com/davidvujic\"\u003e@davidbujic\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://peps.python.org/pep-0584/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/peps.python.org.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/peps.python.org.png\" class=\"has-avatar  has-avatar-before\"\u003epep584\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\nToday I was watching the python web conf 2022 and saw\n[@davidbujic](https://twitter.com/davidvujic) use the new Dict Union Operator\nLive on stage during his [Functional\nProgramming](https://2022.pythonwebconf.com/presentations/functional-python)\ntalk.  This operator was first introduced into python 3.9 with [pep584](https://peps.python.org/pep-0584/).\n\n## Merge Dicts\n\nI've long updated dicts through the use of unpacking.  Note that the last item\nalways wins.  It makes it pretty easy to make user overrides to default\nconfigurations.  With pep584 landing in python 3.9 we can now leverage the `|`\noperator to achieve the same result.\n\n``` python\ndefault_config = {'url': 'https://example.com', 'assets_dir': 'static' }\nuser_config = {'url': 'https://waylonwalker.com'}\n\n# **unpacking goes back much further than 3.9\n\nconfig = {**default_config, **user_config}\nprint(config)\n# {'url': 'https://waylonwalker.com', 'assets_dir': 'static'}\n\n\n# the same can be achieved through the new to python 3.9 | operator\n\nconfig = default_config | user_config\nprint(config)\n# {'url': 'https://waylonwalker.com', 'assets_dir': 'static'}\n```\n\n\u003ca href=\"/python-args-kwargs/\" class=\"wikilink\" data-title=\"understanding python \\\\*args and \\\\*\\\\*kwargs\" data-description=\"Python and are super useful tools, that when used properly can make you code much simpler and easier to maintain. Large manual conversions from a dataset to...\" data-date=\"2020-06-10\"\u003eunderstanding python \\*args and \\*\\*kwargs\u003c/a\u003e\n\n\u003e More on unpacking in this post.\n\n## Update Dicts\n\nWith the release there is also a new update syntax `|=` that you can use to\nupdate.  I dont often mutate variables for some reason, so I cant think of a\nbetter example for this from my personal use cases. So I will give a similar\nexample to above, except creating a config, then updating it.\n\n``` python\n# old python \u003c3.9 way\nconfig = {'url': 'https://example.com', 'assets_dir': 'static' }\nconfig.update({'url': 'https://waylonwalker.com'})\n\n# new python 3.9+ way\nconfig = {'url': 'https://example.com', 'assets_dir': 'static' }\nconfig |= {'url': 'https://waylonwalker.com'}\n\nprint(config)\n# {'url': 'https://waylonwalker.com', 'assets_dir': 'static'}\n```\n\n## Should you use it?\n\nAre you writing libraries/applications that are only going to be ran on 3.9?\nThen ya go for it there is nothing to loose.  If there is any chance someone is\ngoing to run your code on 3.8 or older then just use `**`, or `.update`.\n\n## RTFM\n\nThis is what comes first to my mind on how to use this new syntax, read\n[pep584](https://peps.python.org/pep-0584/) for all the gritty details on it.\n\n## Links\n\n* [@davidbujic](https://twitter.com/davidvujic)\n* [pep584](https://peps.python.org/pep-0584/)\n",
      "summary": "Today I was watching the python web conf 2022 and saw @davidbujic use the new Dict Union Operator Live on stage during his Functional Programming talk. This...",
      "date_published": "2022-03-22T02:39:53Z",
      "date_modified": "2022-03-22T02:39:53Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/lookatme-slides/",
      "url": "https://go.waylonwalker.com/lookatme-slides/",
      "title": "How I Present Markdown Slides from the Terminal",
      "content_html": "\u003cp\u003eI love the freedom of writing in markdown.  It allows me to write content from\nthe comfort of my editor with very little focus on page style.  It turns out\nthat markdown is also a fantastic tool for creating slides.\u003c/p\u003e\n\u003ch2 id=\"present-from-the-terminal\"\u003ePresent from the terminal \u003ca href=\"#present-from-the-terminal\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI will most often just present right from the terminal using\n\u003ca href=\"https://lookatme.readthedocs.io/en/latest/index.html\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/lookatme.readthedocs.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/lookatme.readthedocs.io.ico\" class=\"has-avatar  has-avatar-before\"\u003elookatme\u003c/a\u003e.  Presenting\nfrom the terminal lets me see the results quick right from where I am editing.\nIt also allows me to pop into other terminal applications quickly.\u003c/p\u003e\n\u003ch2 id=\"revealjs\"\u003ereveal.js \u003ca href=\"#revealjs\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI sometimes also use reveal.js, but that’s for another post.  It is handy that\nit lives in the browser and is easier to share.\u003c/p\u003e\n\u003ch2 id=\"new-slides\"\u003eNew Slides \u003ca href=\"#new-slides\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI leverage auto slides when I write my slides in markdown.  The largest\nheading, usually an h2 for me, becomes the new slide marker.  Otherwise my\nprocess is not much different, It just becomes a shorter writing style.\u003c/p\u003e\n\u003ch2 id=\"installation\"\u003eInstallation \u003ca href=\"#installation\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003elookatme is a python library that is available on pypi, you can install it with\nthe pip command.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install lookatme\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eSince it’s a command line application it works great with pipx.  This prevents\nthe need to manage virtual environments yourself or ending up with packages\nclashing in your system python environment.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epipx install lookatme\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2 id=\"from-my-terminal\"\u003eFrom my terminal \u003ca href=\"#from-my-terminal\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003elookatme \u003cspan class=\"o\"\u003e{\u003c/span\u003efilepath\u003cspan class=\"o\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eI just run it with pipx.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epipx run \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"se\"\u003e\u003c/span\u003e --spec git+https://github.com/waylonwalker/lookatme \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"se\"\u003e\u003c/span\u003e lookatme \u003cspan class=\"o\"\u003e{\u003c/span\u003efilepath\u003cspan class=\"o\"\u003e}\u003c/span\u003e \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"se\"\u003e\u003c/span\u003e --live-reload \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"se\"\u003e\u003c/span\u003e --style gruvbox-dark\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003eNote, I use a custom fork of lookatme.  It’s schema validation did not like\nthe date format of my blog posts, so I have a one line fix built into my\nfork that is pretty specific to me.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"from-neovim\"\u003eFrom Neovim \u003ca href=\"#from-neovim\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003emost often what I do\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eFrom Neovim I use a plugin I created for sending out commands to tmux called\n\u003ca href=\"https://github.com/WaylonWalker/Telegraph.nvim\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003etelegraph\u003c/a\u003e.  This sends the\nabove command to a new session that I can bounce between quickly.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003ennoremap\u003c/span\u003e \u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nx\"\u003eleader\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u0026lt;\u003c/span\u003e\u003cspan class=\"nx\"\u003eleader\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"nx\"\u003es\u003c/span\u003e \u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nx\"\u003ecmd\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"nx\"\u003elua\u003c/span\u003e \u003cspan class=\"nx\"\u003erequire\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;telegraph\u0026#39;\u003c/span\u003e.\u003cspan class=\"nx\"\u003etelegraph\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e{\u003cspan class=\"nx\"\u003ecmd\u003c/span\u003e\u003cspan class=\"p\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;pipx run --spec git+https://github.com/waylonwalker/lookatme lookatme {filepath} --live-reload --style gruvbox-dark\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"nx\"\u003ehow\u003c/span\u003e\u003cspan class=\"p\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;tmux\u0026#39;\u003c/span\u003e}\u003cspan class=\"p\"\u003e)\u0026lt;\u003c/span\u003e\u003cspan class=\"nx\"\u003eCR\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nI love the freedom of writing in markdown.  It allows me to write content from\nthe comfort of my editor with very little focus on page style.  It turns out\nthat markdown is also a fantastic tool for creating slides.\n\n## Present from the terminal\n\nI will most often just present right from the terminal using\n[lookatme](https://lookatme.readthedocs.io/en/latest/index.html).  Presenting\nfrom the terminal lets me see the results quick right from where I am editing.\nIt also allows me to pop into other terminal applications quickly.\n\n## reveal.js\n\nI sometimes also use reveal.js, but that's for another post.  It is handy that\nit lives in the browser and is easier to share.\n\n## New Slides\n\nI leverage auto slides when I write my slides in markdown.  The largest\nheading, usually an h2 for me, becomes the new slide marker.  Otherwise my\nprocess is not much different, It just becomes a shorter writing style.\n\n## Installation\n\nlookatme is a python library that is available on pypi, you can install it with\nthe pip command.\n\n```\npython -m pip install lookatme\n```\n\nSince it's a command line application it works great with pipx.  This prevents\nthe need to manage virtual environments yourself or ending up with packages\nclashing in your system python environment.\n\n```\npipx install lookatme\n```\n\n## From my terminal\n\n``` bash\nlookatme {filepath}\n```\n\nI just run it with pipx.\n\n``` bash\npipx run \\\n --spec git+https://github.com/waylonwalker/lookatme \\\n lookatme {filepath} \\\n --live-reload \\\n --style gruvbox-dark\n```\n\n\u003e Note, I use a custom fork of lookatme.  It's schema validation did not like\n\u003e the date format of my blog posts, so I have a one line fix built into my\n\u003e fork that is pretty specific to me.\n\n## From Neovim\n_most often what I do_\n\nFrom Neovim I use a plugin I created for sending out commands to tmux called\n[telegraph](https://github.com/WaylonWalker/Telegraph.nvim).  This sends the\nabove command to a new session that I can bounce between quickly.\n\n``` vim\nnnoremap \u003cleader\u003e\u003cleader\u003es \u003ccmd\u003elua require'telegraph'.telegraph({cmd='pipx run --spec git+https://github.com/waylonwalker/lookatme lookatme {filepath} --live-reload --style gruvbox-dark', how='tmux'})\u003cCR\u003e\n```\n",
      "summary": "I love the freedom of writing in markdown. It allows me to write content from the comfort of my editor with very little focus on page style. It turns out...",
      "date_published": "2022-03-21T16:13:39Z",
      "date_modified": "2022-03-21T16:13:39Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "cli",
        "tmux"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/pathlib-read-text/",
      "url": "https://go.waylonwalker.com/pathlib-read-text/",
      "title": "How I read Files in Python",
      "content_html": "\u003cp\u003eWhen I need to read contents from a plain text file in python I find the\neasiest way is to just use \u003ccode\u003ePathlib\u003c/code\u003e.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003epathlib\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003ePath\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ePath\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;path_to_file\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eread_text\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nWhen I need to read contents from a plain text file in python I find the\neasiest way is to just use `Pathlib`.\n\n``` python\nfrom pathlib import Path\n\nPath('path_to_file').read_text()\n```\n",
      "summary": "When I need to read contents from a plain text file in python I find the easiest way is to just use .",
      "date_published": "2022-03-20T17:19:00Z",
      "date_modified": "2022-03-20T17:19:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/vim-markdown-links/",
      "url": "https://go.waylonwalker.com/vim-markdown-links/",
      "title": "Automatically Generate a list of Markdown Links in Vim",
      "content_html": "\u003cp\u003eLet’s make a vim command to automatically collect all the links in these\nposts at the end of each article.  Regex confuses the heck out of me…\nI don’t have my regex liscense, but\nregex can be so darn powerful especially in an editor.\u003c/p\u003e\n\u003ch2 id=\"step-one\"\u003eStep one \u003ca href=\"#step-one\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eBefore you run someone’s regex from the internet that you don’t fully\nunderstand, check your \u003ccode\u003egit status\u003c/code\u003e and make sure you are all clear with\n\u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e before you wreck something\u003c/p\u003e\n\u003ch2 id=\"inspiration\"\u003eInspiration \u003ca href=\"#inspiration\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eSomething that I have always appreciated form\n\u003ca href=\"https://nickjanetakis.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/nickjanetakis.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/nickjanetakis.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eNick Janetakis\u003c/a\u003e is his links section.  I\noften try to gather up the links at the end of my posts, but often end\nup not doing it or forgetting.\u003c/p\u003e\n\u003ch2 id=\"making-a-links-section\"\u003eMaking a Links section \u003ca href=\"#making-a-links-section\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eSearchng through the internet I was able to find an article from\nVitaly Parnas called\n\u003ca href=\"https://vitalyparnas.com/guides/vim-ref-links/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/vitalyparnas.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/vitalyparnas.com.ico\" class=\"has-avatar  has-avatar-before\"\u003evim ref links\u003c/a\u003e that did\nalmost exactly what I needed, except it was more complicated and made\nthem into ref liks.\u003c/p\u003e\n\u003cp\u003eHere is my interpretation of the code I took from Vitaly’s post.  It\nmakes a Links section like the one at the bottom of this post.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003efunction\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"nx\"\u003eMdLinks\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    $\u003cspan class=\"nx\"\u003enorm\u003c/span\u003e \u003cspan class=\"nx\"\u003eo\u003c/span\u003e## \u003cspan class=\"nx\"\u003eLinks\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    $\u003cspan class=\"nx\"\u003enorm\u003c/span\u003e \u003cspan class=\"nx\"\u003eo\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nx\"\u003eg\u003c/span\u003e\u003cspan class=\"sr\"\u003e/\\[[^\\]]\\+\\]([^)]\\+)/\u003c/span\u003e\u003cspan class=\"nx\"\u003et\u003c/span\u003e$\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nx\"\u003esilent\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u0026#39;^\u003cspan class=\"p\"\u003e,\u003c/span\u003e$\u003cspan class=\"nx\"\u003es\u003c/span\u003e\u003cspan class=\"sr\"\u003e/\\v[^\\[]*(\\[[^\\]]+\\])\\(([^)]+)\\)[^\\[]*/\u003c/span\u003e* \\\u003cspan class=\"m\"\u003e1\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\\\u003cspan class=\"m\"\u003e2\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e/\u003cspan class=\"nx\"\u003eg\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nx\"\u003enohl\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eendfunction\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003ecommand\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"nx\"\u003eMdLinks\u003c/span\u003e \u003cspan class=\"nx\"\u003ecall\u003c/span\u003e \u003cspan class=\"nx\"\u003eMdLinks\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eSo far it is working for me and saving me a few seconds off each post I\nmake.\u003c/p\u003e\n\u003ch2 id=\"links\"\u003eLinks \u003ca href=\"#links\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://nickjanetakis.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/nickjanetakis.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/nickjanetakis.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eNick Janetakis\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://vitalyparnas.com/guides/vim-ref-links/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/vitalyparnas.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/vitalyparnas.com.ico\" class=\"has-avatar  has-avatar-before\"\u003evim ref links\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\nLet's make a vim command to automatically collect all the links in these\nposts at the end of each article.  Regex confuses the heck out of me...\nI don't have my regex liscense, but\nregex can be so darn powerful especially in an editor.\n\n## Step one\n\nBefore you run someone's regex from the internet that you don't fully\nunderstand, check your `git status` and make sure you are all clear with\ngit before you wreck something\n\n## Inspiration\n\nSomething that I have always appreciated form\n[Nick Janetakis](https://nickjanetakis.com/) is his links section.  I\noften try to gather up the links at the end of my posts, but often end\nup not doing it or forgetting.\n\n## Making a Links section\n\nSearchng through the internet I was able to find an article from\nVitaly Parnas called\n[vim ref links](https://vitalyparnas.com/guides/vim-ref-links/) that did\nalmost exactly what I needed, except it was more complicated and made\nthem into ref liks.\n\nHere is my interpretation of the code I took from Vitaly's post.  It\nmakes a Links section like the one at the bottom of this post.\n\n``` vim\nfunction! MdLinks()\n    $norm o## Links\n    $norm o\n    g/\\[[^\\]]\\+\\]([^)]\\+)/t$\n    silent! '^,$s/\\v[^\\[]*(\\[[^\\]]+\\])\\(([^)]+)\\)[^\\[]*/* \\1(\\2)/g\n    nohl\nendfunction\ncommand! MdLinks call MdLinks()\n```\n\nSo far it is working for me and saving me a few seconds off each post I\nmake.\n\n## Links\n\n* [Nick Janetakis](https://nickjanetakis.com/)\n* [vim ref links](https://vitalyparnas.com/guides/vim-ref-links/)\n",
      "summary": "Let's make a vim command to automatically collect all the links in these posts at the end of each article. Regex confuses the heck out of me... I don't have...",
      "date_published": "2022-03-19T19:11:27Z",
      "date_modified": "2022-03-19T19:11:27Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "vim",
        "webdev",
        "meta"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/linux-swap/",
      "url": "https://go.waylonwalker.com/linux-swap/",
      "title": "Create a Swapfile on Your Linux Machine",
      "content_html": "\u003cp\u003eIf you ever end up on a linux machine that just does not have enough ram to\nsuffice what you are doing and you just need to get the job done you can give\nit some more swap.  You can look up reccomendations for how much swap you\nshould have this is more about just trying to get your job done when you are\nalmost there, but running out of memory on the hardware you have.\u003c/p\u003e\n\u003ch2 id=\"make-the-swap-file\"\u003emake the /swap file \u003ca href=\"#make-the-swap-file\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eYou can put this where you wish, for this example I am going to pop it into\n\u003ccode\u003e/swap\u003c/code\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo fallocate -l 4G /swap\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo chmod \u003cspan class=\"m\"\u003e600\u003c/span\u003e /swap\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo mkswap /swap\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo swapon /swap\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"make-sure-that-your-swap-is-on\"\u003emake sure that your swap is on \u003ca href=\"#make-sure-that-your-swap-is-on\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eYou can make sure that your swap is working by using the \u003ccode\u003efree\u003c/code\u003e command, I like\nusing the \u003ccode\u003e-h\u003c/code\u003e flag to get human readable numbers.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ free -h\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e               total        used        free      shared  buff/cache   available\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eMem:            15Gi       5.5Gi       4.9Gi       458Mi       5.2Gi       9.3Gi\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSwap:          4.0Gi          0B       4.0Gi\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003ca href=\"/reset-ipython/\" class=\"wikilink\" data-title=\"Reclaim memory usage in Jupyter\" data-description=\"Today I ran into an issue where we had a one-off script that just needed to work, but it was just chewing threw memory like nothing.\" data-date=\"2020-10-01\" data-preview=\"Today I ran into an issue where we had a one-off script that just needed to work, but it was just chewing threw memory like nothing.\"\u003eReclaim memory usage in Jupyter\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eI also used this trick in this article to give my python process a bit more oompf and get it on home.\u003c/p\u003e\n\u003c/blockquote\u003e\n",
      "content_text": "\n\nIf you ever end up on a linux machine that just does not have enough ram to\nsuffice what you are doing and you just need to get the job done you can give\nit some more swap.  You can look up reccomendations for how much swap you\nshould have this is more about just trying to get your job done when you are\nalmost there, but running out of memory on the hardware you have.\n\n## make the /swap file\n\nYou can put this where you wish, for this example I am going to pop it into\n`/swap`\n\n```bash\nsudo fallocate -l 4G /swap\nsudo chmod 600 /swap\nsudo mkswap /swap\nsudo swapon /swap\n```\n\n## make sure that your swap is on\n\nYou can make sure that your swap is working by using the `free` command, I like\nusing the `-h` flag to get human readable numbers.\n\n```bash\n❯ free -h\n               total        used        free      shared  buff/cache   available\nMem:            15Gi       5.5Gi       4.9Gi       458Mi       5.2Gi       9.3Gi\nSwap:          4.0Gi          0B       4.0Gi\n```\n\n\u003ca href=\"/reset-ipython/\" class=\"wikilink\" data-title=\"Reclaim memory usage in Jupyter\" data-description=\"Today I ran into an issue where we had a one-off script that just needed to work, but it was just chewing threw memory like nothing.\" data-date=\"2020-10-01\"\u003eReclaim memory usage in Jupyter\u003c/a\u003e\n\n\u003e I also used this trick in this article to give my python process a bit more oompf and get it on home.\n",
      "summary": "If you ever end up on a linux machine that just does not have enough ram to suffice what you are doing and you just need to get the job done you can give it...",
      "date_published": "2022-03-18T13:29:49Z",
      "date_modified": "2022-03-18T13:29:49Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/python-pathlib-glob/",
      "url": "https://go.waylonwalker.com/python-pathlib-glob/",
      "title": "How I glob for Files in Python",
      "content_html": "\u003cp\u003eA very common task for any script is to look for files on the system.  My go to\nmethod when globbing for files in python is to use pathlib.\u003c/p\u003e\n\u003ch2 id=\"setup\"\u003eSetup \u003ca href=\"#setup\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI setup a directory to make some examples about globbing.  Here is what the\ndirectory looks like.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ tree .\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e├── content\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│   ├── hello.md\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│   ├── hello.py\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│   ├── me.md\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│   └── you.md\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e├── readme.md\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e├── README.md\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e├── READMES.md\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e└── setup.py\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e1 directory, 8 files\u003c/p\u003e\n\u003ch2 id=\"pathlib\"\u003ePathlib \u003ca href=\"#pathlib\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003ePathlib is a standard library module available in all LTS versions of python at\nthis point.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e❯\u003c/span\u003e \u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003epathlib\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003ePath\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eCreating a Path instance.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# current working directory\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ePath\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ePath\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ecwd\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# The users home directory\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ePath\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ehome\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Path to a directory by string\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ePath\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;/path/to/directory\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# The users ~/.config directory\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ePath\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ehome\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e \u003cspan class=\"o\"\u003e/\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;.config\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"globbing-examples\"\u003eGlobbing Examples \u003ca href=\"#globbing-examples\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe path object has a glob method that allows you to glob for files with a unix\nstyle glob pattern to search for files.  Note that it gives you a generator.\nThis is great for many use cases, but for examples its easier to turn them to a\nlist to print them out.\u003c/p\u003e\n\u003cp\u003eIf you need some more detail on what globbing is there is a\n\u003ca href=\"https://en.wikipedia.org/wiki/Glob_(programming)\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/en.wikipedia.org.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/en.wikipedia.org.ico\" class=\"has-avatar  has-avatar-before\"\u003ewikipedia\u003c/a\u003e article\ndiscussing it.  I am just showing how to glob with pathlib.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e❯\u003c/span\u003e \u003cspan class=\"n\"\u003ePath\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eglob\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;**/*.md\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003egenerator\u003c/span\u003e \u003cspan class=\"nb\"\u003eobject\u003c/span\u003e \u003cspan class=\"n\"\u003ePath\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eglob\u003c/span\u003e \u003cspan class=\"n\"\u003eat\u003c/span\u003e \u003cspan class=\"mh\"\u003e0x7fa35adc4f90\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e❯\u003c/span\u003e \u003cspan class=\"nb\"\u003elist\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ePath\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eglob\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;**/*.md\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003ePosixPath\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;readme.md\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003ePosixPath\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;READMES.md\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003ePosixPath\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;README.md\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003ePosixPath\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;content/you.md\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003ePosixPath\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;content/me.md\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003ePosixPath\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;content/hello.md\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e❯\u003c/span\u003e \u003cspan class=\"nb\"\u003elist\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ePath\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eglob\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;**/*.py\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"n\"\u003ePosixPath\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;setup.py\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e \u003cspan class=\"n\"\u003ePosixPath\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;content/hello.py\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e❯\u003c/span\u003e \u003cspan class=\"nb\"\u003elist\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ePath\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eglob\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;*.md\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"n\"\u003ePosixPath\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;readme.md\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e \u003cspan class=\"n\"\u003ePosixPath\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;READMES.md\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e \u003cspan class=\"n\"\u003ePosixPath\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;README.md\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e❯\u003c/span\u003e \u003cspan class=\"nb\"\u003elist\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ePath\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eglob\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;*.py\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"n\"\u003ePosixPath\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;setup.py\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e❯\u003c/span\u003e \u003cspan class=\"nb\"\u003elist\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ePath\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eglob\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;**/*hello*\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"n\"\u003ePosixPath\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;content/hello.py\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e \u003cspan class=\"n\"\u003ePosixPath\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;content/hello.md\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e❯\u003c/span\u003e \u003cspan class=\"nb\"\u003elist\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ePath\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eglob\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;**/REA?ME.md\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"n\"\u003ePosixPath\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;README.md\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nA very common task for any script is to look for files on the system.  My go to\nmethod when globbing for files in python is to use pathlib.\n\n## Setup\n\nI setup a directory to make some examples about globbing.  Here is what the\ndirectory looks like.\n\n``` bash\n❯ tree .\n.\n├── content\n│   ├── hello.md\n│   ├── hello.py\n│   ├── me.md\n│   └── you.md\n├── readme.md\n├── README.md\n├── READMES.md\n└── setup.py\n```\n\n1 directory, 8 files\n## Pathlib\n\nPathlib is a standard library module available in all LTS versions of python at\nthis point.\n\n``` python\n❯ from pathlib import Path\n```\n\nCreating a Path instance.\n\n``` python\n# current working directory\nPath()\nPath.cwd()\n\n# The users home directory\nPath.home()\n\n# Path to a directory by string\nPath('/path/to/directory')\n\n# The users ~/.config directory\nPath.home() / '.config'\n```\n\n## Globbing Examples\n\nThe path object has a glob method that allows you to glob for files with a unix\nstyle glob pattern to search for files.  Note that it gives you a generator.\nThis is great for many use cases, but for examples its easier to turn them to a\nlist to print them out.\n\nIf you need some more detail on what globbing is there is a\n[wikipedia](https://en.wikipedia.org/wiki/Glob_(programming)) article\ndiscussing it.  I am just showing how to glob with pathlib.\n\n``` python\n\n❯ Path().glob(\"**/*.md\")\n\u003cgenerator object Path.glob at 0x7fa35adc4f90\u003e\n\n❯ list(Path().glob(\"**/*.md\"))\n\n[\n    PosixPath('readme.md'),\n    PosixPath('READMES.md'),\n    PosixPath('README.md'),\n    PosixPath('content/you.md'),\n    PosixPath('content/me.md'),\n    PosixPath('content/hello.md')\n]\n\n❯ list(Path().glob(\"**/*.py\"))\n[PosixPath('setup.py'), PosixPath('content/hello.py')]\n\n❯ list(Path().glob(\"*.md\"))\n[PosixPath('readme.md'), PosixPath('READMES.md'), PosixPath('README.md')]\n\n❯ list(Path().glob(\"*.py\"))\n[PosixPath('setup.py')]\n\n❯ list(Path().glob(\"**/*hello*\"))\n[PosixPath('content/hello.py'), PosixPath('content/hello.md')]\n\n❯ list(Path().glob(\"**/REA?ME.md\"))\n[PosixPath('README.md')]\n```\n",
      "summary": "A very common task for any script is to look for files on the system. My go to method when globbing for files in python is to use pathlib.",
      "date_published": "2022-03-17T23:01:53Z",
      "date_modified": "2022-03-17T23:01:53Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/git-pager/",
      "url": "https://go.waylonwalker.com/git-pager/",
      "title": "Set Your Git Pager Config",
      "content_html": "\u003cp\u003eSetting up your \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e pager to your liking can help you navigate diffs and logs\nmuch more efficiently.  You can set it to whatever pager you like so that your\nkeys feel nice and smooth and your fingers know exactly what to do.  You might\neven gain a few extra features.\u003c/p\u003e\n\u003ch2 id=\"setting-the-pager\"\u003eSetting the pager \u003ca href=\"#setting-the-pager\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eYou can set the pager right from your command line with the following command.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit config --global core.pager \u003cspan class=\"s1\"\u003e\u0026#39;more\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eYou can also set your pager by editing your global \u003ccode\u003e.gitconfig\u003c/code\u003e file which by\ndefault is set to \u003ccode\u003e~/.gitconfig\u003c/code\u003e.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e[\u003c/span\u003ecore\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nv\"\u003epager\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e more\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"color\"\u003eColor \u003ca href=\"#color\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIn my experience you need to turn colors off with nvim.  bat handles them and\nlooks good either way, but nvim will be plain white and display the color\ncodes as plain text if color is on.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit config --global color.pager no\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"pagers-i-have-tried\"\u003ePagers I have tried \u003ca href=\"#pagers-i-have-tried\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eHere are some various configs that I tried.  For some reason line numbers in\nbat really bothered me, but when in nvim they felt ok.  I am going to try\nrunning both of them for a few days and see which I like better.  I think\nhaving some of my nvim config could be really handy for things like yanking a\ncommit hash to the system clipboard without touching the mouse.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# bat\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit config --global core.pager \u003cspan class=\"s1\"\u003e\u0026#39;bat\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# nvim in read only mode\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit config --global core.pager \u003cspan class=\"s1\"\u003e\u0026#39;nvim -R\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# turn colors off\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit config --global color.pager no\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# bat with no line numbers\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit config --global core.pager \u003cspan class=\"s1\"\u003e\u0026#39;bat --style=plain\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# nvim with no line numbers and a specific rc file\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit config --global core.pager \u003cspan class=\"s2\"\u003e\u0026#34;nvim -R +\u0026#39;set nonumber norelativenumber\u0026#39; -u ~/.config/nvim/init-git.vim\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"reset-back-to-the-default\"\u003ereset back to the default \u003ca href=\"#reset-back-to-the-default\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIf you are afraid to try one of these settings, don’t be you can always change\nit back.  If you tried one and dont like it just \u003ccode\u003e--unset\u003c/code\u003e the config that you\njust tried.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit config --global --unset core.pager\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit config --global --unset color.pager\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eThe other option you have is to open your \u003ccode\u003e.gitconfig\u003c/code\u003e file and delete the\nlines of config that set your pager.\u003c/p\u003e\n",
      "content_text": "\nSetting up your git pager to your liking can help you navigate diffs and logs\nmuch more efficiently.  You can set it to whatever pager you like so that your\nkeys feel nice and smooth and your fingers know exactly what to do.  You might\neven gain a few extra features.\n\n## Setting the pager\n\nYou can set the pager right from your command line with the following command.\n\n``` bash\ngit config --global core.pager 'more'\n```\n\nYou can also set your pager by editing your global `.gitconfig` file which by\ndefault is set to `~/.gitconfig`.\n\n``` bash\n[core]\n    pager = more\n```\n\n## Color\n\nIn my experience you need to turn colors off with nvim.  bat handles them and\nlooks good either way, but nvim will be plain white and display the color\ncodes as plain text if color is on.\n\n``` bash\ngit config --global color.pager no\n```\n\n## Pagers I have tried\n\nHere are some various configs that I tried.  For some reason line numbers in\nbat really bothered me, but when in nvim they felt ok.  I am going to try\nrunning both of them for a few days and see which I like better.  I think\nhaving some of my nvim config could be really handy for things like yanking a\ncommit hash to the system clipboard without touching the mouse.\n\n``` bash\n# bat\ngit config --global core.pager 'bat'\n\n# nvim in read only mode\ngit config --global core.pager 'nvim -R'\n\n# turn colors off\ngit config --global color.pager no\n\n# bat with no line numbers\ngit config --global core.pager 'bat --style=plain'\n\n# nvim with no line numbers and a specific rc file\ngit config --global core.pager \"nvim -R +'set nonumber norelativenumber' -u ~/.config/nvim/init-git.vim\"\n```\n\n## reset back to the default\n\nIf you are afraid to try one of these settings, don't be you can always change\nit back.  If you tried one and dont like it just `--unset` the config that you\njust tried.\n\n``` bash\ngit config --global --unset core.pager\ngit config --global --unset color.pager\n```\n\nThe other option you have is to open your `.gitconfig` file and delete the\nlines of config that set your pager.\n",
      "summary": "Setting up your git pager to your liking can help you navigate diffs and logs much more efficiently. You can set it to whatever pager you like so that your...",
      "date_published": "2022-03-16T14:03:18Z",
      "date_modified": "2022-03-16T14:03:18Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "git",
        "cli"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/git-config-help-autocorrect/",
      "url": "https://go.waylonwalker.com/git-config-help-autocorrect/",
      "title": "Configure Git to Autocorrect Your Fat Fingers",
      "content_html": "\u003cp\u003eIf you have ever mistyped a \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e command very close to an existing one\nyou have likely seen this message.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ git chekout dev\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit: \u003cspan class=\"s1\"\u003e\u0026#39;chekout\u0026#39;\u003c/span\u003e is not a git command. See \u003cspan class=\"s1\"\u003e\u0026#39;git --help\u0026#39;\u003c/span\u003e.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eThe most similar \u003cspan class=\"nb\"\u003ecommand\u003c/span\u003e is\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        checkout\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"automatically-run-the-right-one\"\u003eAutomatically run the right one \u003ca href=\"#automatically-run-the-right-one\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWhat you might not have known is that you can configure git to just run\nthis command for you.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Gives you 0.1 seconds to respond\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit config --global help.autocorrect \u003cspan class=\"m\"\u003e1\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Gives you 1 seconds to respond\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit config --global help.autocorrect \u003cspan class=\"m\"\u003e10\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Gives you 5 seconds to respond\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit config --global help.autocorrect \u003cspan class=\"m\"\u003e50\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"fat-fingers-gone\"\u003eFat Fingers Gone \u003ca href=\"#fat-fingers-gone\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNow when you typo a git command it will autmatically run after the\nconfigured number of tenths of a second.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ git chkout get-error\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eWARNING: You called a Git \u003cspan class=\"nb\"\u003ecommand\u003c/span\u003e named \u003cspan class=\"s1\"\u003e\u0026#39;chkout\u0026#39;\u003c/span\u003e, which does not exist.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eContinuing in 1.0 seconds, assuming that you meant \u003cspan class=\"s1\"\u003e\u0026#39;checkout\u0026#39;\u003c/span\u003e.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eM       pages/blog/how-i-deploy-2021.md\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eM       pages/hot_tips/001.md\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eM       pages/templates/gratitude_card.html\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eM       plugins/index.py\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eM       plugins/publish_amp.py\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eM       plugins/render_template_variables.py\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eM       plugins/youtube.py\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eM       requirements.txt\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eM       static/index.html\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSwitched to branch \u003cspan class=\"s1\"\u003e\u0026#39;get-error\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"my-config\"\u003eMy config \u003ca href=\"#my-config\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI’m rocking 10 for now just to see how I feel about it, but honestly I\ncannot think of a time that I have seen the original warning that was\nnot what I wanted.  This at least gives me some time to respond if I am\nunsure.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit config --global help.autocorrect \u003cspan class=\"m\"\u003e10\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nIf you have ever mistyped a git command very close to an existing one\nyou have likely seen this message.\n\n``` bash\n❯ git chekout dev\ngit: 'chekout' is not a git command. See 'git --help'.\n\nThe most similar command is\n        checkout\n```\n\n## Automatically run the right one\n\nWhat you might not have known is that you can configure git to just run\nthis command for you.\n\n``` bash\n# Gives you 0.1 seconds to respond\ngit config --global help.autocorrect 1\n\n# Gives you 1 seconds to respond\ngit config --global help.autocorrect 10\n\n# Gives you 5 seconds to respond\ngit config --global help.autocorrect 50\n```\n\n## Fat Fingers Gone\n\nNow when you typo a git command it will autmatically run after the\nconfigured number of tenths of a second.\n\n``` bash\n❯ git chkout get-error\nWARNING: You called a Git command named 'chkout', which does not exist.\nContinuing in 1.0 seconds, assuming that you meant 'checkout'.\nM       pages/blog/how-i-deploy-2021.md\nM       pages/hot_tips/001.md\nM       pages/templates/gratitude_card.html\nM       plugins/index.py\nM       plugins/publish_amp.py\nM       plugins/render_template_variables.py\nM       plugins/youtube.py\nM       requirements.txt\nM       static/index.html\nSwitched to branch 'get-error'\n```\n\n## My config\n\nI'm rocking 10 for now just to see how I feel about it, but honestly I\ncannot think of a time that I have seen the original warning that was\nnot what I wanted.  This at least gives me some time to respond if I am\nunsure.\n\n``` bash\ngit config --global help.autocorrect 10\n```\n",
      "summary": "If you have ever mistyped a git command very close to an existing one you have likely seen this message.",
      "date_published": "2022-03-15T00:43:25Z",
      "date_modified": "2022-03-15T00:43:25Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "git",
        "cli"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/install-yq/",
      "url": "https://go.waylonwalker.com/install-yq/",
      "title": "Install yq | A light weight yaml parser cli",
      "content_html": "\u003cp\u003e\u003ccode\u003eyq\u003c/code\u003e is a command line utility for parsing and querying yaml, like \u003ccode\u003ejq\u003c/code\u003e does for json.\u003c/p\u003e\n\u003ch2 id=\"this-is-for-me\"\u003eThis is for me \u003ca href=\"#this-is-for-me\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI love that all of these modern tools built in go and rust, just give you a\nzipped up executable right from GitHub releases, but it’s not necessarily\nstraight forward how to install them.  \u003ccode\u003eyq\u003c/code\u003e does one of the best jobs I have\nseen, giving you instructions on how to get a specific version and install it.\u003c/p\u003e\n\u003cp\u003eI use a bunch of these tools, and for what its worth I trust the devs behind\nthem to make sure they don’t break.  This so far has worked out well for me,\nbut if it ever doesn’t I can always pick an older version.\u003c/p\u003e\n\u003ch2 id=\"just-give-me-the-latest\"\u003eJust give me the latest \u003ca href=\"#just-give-me-the-latest\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eSince I am all trusting of them I just want the latest version.  I do not want\nto update a shell script with new versions, or even care about what then next\nversion is, I just want it. Luckily you can script the release page for the\nlatest version on all that I have came accross.\u003c/p\u003e\n\u003ch2 id=\"what-is-the-latest\"\u003eWhat is the latest \u003ca href=\"#what-is-the-latest\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI wrote or stole, I think I wrote it, this line of bash quite awhile ago, and\nit has served me well for finding the latest release for any GitHub project\nusing releases.  Just update it with the name of the tool, org, and repo and it\nworks.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003eYQ_VERSION\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"k\"\u003e$(\u003c/span\u003ecurl --silent https://github.com/mikefarah/yq/releases/latest \u003cspan class=\"p\"\u003e|\u003c/span\u003e tr -d \u003cspan class=\"s1\"\u003e\u0026#39;\u0026#34;\u0026#39;\u003c/span\u003e \u003cspan class=\"p\"\u003e|\u003c/span\u003e sed \u003cspan class=\"s1\"\u003e\u0026#39;s/^.*tag\\///g\u0026#39;\u003c/span\u003e \u003cspan class=\"p\"\u003e|\u003c/span\u003e sed \u003cspan class=\"s1\"\u003e\u0026#39;s/\u0026gt;.*$//g\u0026#39;\u003c/span\u003e \u003cspan class=\"p\"\u003e|\u003c/span\u003e sed \u003cspan class=\"s1\"\u003e\u0026#39;s/^v//\u0026#39;\u003c/span\u003e\u003cspan class=\"k\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"install-with-your-shell\"\u003eInstall with your shell \u003ca href=\"#install-with-your-shell\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNow that we know how to consistently get the right version, I generally right\nclick the release in the releases page, replace the version with\n\u003ccode\u003e${TOOL_VERSION}\u003c/code\u003e and put it in this wget call, then move the binary over to \u003ccode\u003e~/.local/bin\u003c/code\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003elocal\u003c/span\u003e \u003cspan class=\"nv\"\u003etmp\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"sb\"\u003e`\u003c/span\u003emktemp -dt install-XXXXXX\u003cspan class=\"sb\"\u003e`\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003epushd\u003c/span\u003e \u003cspan class=\"nv\"\u003e$tmp\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003eYQ_VERSION\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"k\"\u003e$(\u003c/span\u003ecurl --silent https://github.com/mikefarah/yq/releases/latest \u003cspan class=\"p\"\u003e|\u003c/span\u003e tr -d \u003cspan class=\"s1\"\u003e\u0026#39;\u0026#34;\u0026#39;\u003c/span\u003e \u003cspan class=\"p\"\u003e|\u003c/span\u003e sed \u003cspan class=\"s1\"\u003e\u0026#39;s/^.*tag\\///g\u0026#39;\u003c/span\u003e \u003cspan class=\"p\"\u003e|\u003c/span\u003e sed \u003cspan class=\"s1\"\u003e\u0026#39;s/\u0026gt;.*$//g\u0026#39;\u003c/span\u003e \u003cspan class=\"p\"\u003e|\u003c/span\u003e sed \u003cspan class=\"s1\"\u003e\u0026#39;s/^v//\u0026#39;\u003c/span\u003e\u003cspan class=\"k\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ewget https://github.com/mikefarah/yq/releases/download/v\u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"nv\"\u003eYQ_VERSION\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e/yq_linux_amd64.tar.gz -O- -q \u003cspan class=\"p\"\u003e|\u003c/span\u003e tar -zxf - -C /tmp\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecp yq_linux_amd64 ~/.local/bin/yq\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003epopd\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"install-with-ansible\"\u003eInstall with ansible \u003ca href=\"#install-with-ansible\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNow I don’t want to worry about missing \u003ccode\u003eyq\u003c/code\u003e again, so I am added it to my\nansible install script.  This way it’s installed everyt time I setup a new\nsystem with all of my favorite cli’s.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e- \u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003echeck is yq installed\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003eshell\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ecommand -v yq\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003eregister\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eyq_exists\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003eignore_errors\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"kc\"\u003eyes\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003etags\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e- \u003cspan class=\"l\"\u003eyq\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e- \u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eInstall yq\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003ewhen\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eyq_exists is failed\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003eshell\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"p\"\u003e|\u003c/span\u003e\u003cspan class=\"sd\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sd\"\u003e    local tmp=`mktemp -dt install-XXXXXX`\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sd\"\u003e    pushd $tmp\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sd\"\u003e    YQ_VERSION=$(curl --silent https://github.com/mikefarah/yq/releases/latest | tr -d \u0026#39;\u0026#34;\u0026#39; | sed \u0026#39;s/^.*tag\\///g\u0026#39; | sed \u0026#39;s/\u0026gt;.*$//g\u0026#39; | sed \u0026#39;s/^v//\u0026#39;)\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sd\"\u003e    wget https://github.com/mikefarah/yq/releases/download/v${YQ_VERSION}/yq_linux_amd64.tar.gz -O- -q | tar -zxf - -C /tmp\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sd\"\u003e    cp yq_linux_amd64 {{ lookup(\u0026#39;env\u0026#39;, \u0026#39;HOME\u0026#39;) }}/.local/bin/yq\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sd\"\u003e    popd\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003etags\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e- \u003cspan class=\"l\"\u003eyq\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"links\"\u003eLinks \u003ca href=\"#links\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis is how I installed it, of course you can always follow Mike’s instructions\nfrom the repo.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mikefarah/yq\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eyq repo\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://mikefarah.gitbook.io/yq/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/mikefarah.gitbook.io.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/mikefarah.gitbook.io.png\" class=\"has-avatar  has-avatar-before\"\u003eyq docs\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\n`yq` is a command line utility for parsing and querying yaml, like `jq` does for json.\n\n## This is for me\n\nI love that all of these modern tools built in go and rust, just give you a\nzipped up executable right from GitHub releases, but it's not necessarily\nstraight forward how to install them.  `yq` does one of the best jobs I have\nseen, giving you instructions on how to get a specific version and install it.\n\n\nI use a bunch of these tools, and for what its worth I trust the devs behind\nthem to make sure they don't break.  This so far has worked out well for me,\nbut if it ever doesn't I can always pick an older version.\n\n## Just give me the latest\n\nSince I am all trusting of them I just want the latest version.  I do not want\nto update a shell script with new versions, or even care about what then next\nversion is, I just want it. Luckily you can script the release page for the\nlatest version on all that I have came accross.\n\n## What is the latest\n\nI wrote or stole, I think I wrote it, this line of bash quite awhile ago, and\nit has served me well for finding the latest release for any GitHub project\nusing releases.  Just update it with the name of the tool, org, and repo and it\nworks.\n\n``` bash\nYQ_VERSION=$(curl --silent https://github.com/mikefarah/yq/releases/latest | tr -d '\"' | sed 's/^.*tag\\///g' | sed 's/\u003e.*$//g' | sed 's/^v//')\n```\n\n## Install with your shell\n\nNow that we know how to consistently get the right version, I generally right\nclick the release in the releases page, replace the version with\n`${TOOL_VERSION}` and put it in this wget call, then move the binary over to `~/.local/bin`\n\n``` bash\nlocal tmp=`mktemp -dt install-XXXXXX`\npushd $tmp\nYQ_VERSION=$(curl --silent https://github.com/mikefarah/yq/releases/latest | tr -d '\"' | sed 's/^.*tag\\///g' | sed 's/\u003e.*$//g' | sed 's/^v//')\nwget https://github.com/mikefarah/yq/releases/download/v${YQ_VERSION}/yq_linux_amd64.tar.gz -O- -q | tar -zxf - -C /tmp\ncp yq_linux_amd64 ~/.local/bin/yq\npopd\n```\n\n## Install with ansible\n\nNow I don't want to worry about missing `yq` again, so I am added it to my\nansible install script.  This way it's installed everyt time I setup a new\nsystem with all of my favorite cli's.\n\n``` yaml\n- name: check is yq installed\n  shell: command -v yq\n  register: yq_exists\n  ignore_errors: yes\n  tags:\n    - yq\n\n- name: Install yq\n  when: yq_exists is failed\n  shell: |\n    local tmp=`mktemp -dt install-XXXXXX`\n    pushd $tmp\n    YQ_VERSION=$(curl --silent https://github.com/mikefarah/yq/releases/latest | tr -d '\"' | sed 's/^.*tag\\///g' | sed 's/\u003e.*$//g' | sed 's/^v//')\n    wget https://github.com/mikefarah/yq/releases/download/v${YQ_VERSION}/yq_linux_amd64.tar.gz -O- -q | tar -zxf - -C /tmp\n    cp yq_linux_amd64 {{ lookup('env', 'HOME') }}/.local/bin/yq\n    popd\n  tags:\n    - yq\n```\n\n## Links\n\nThis is how I installed it, of course you can always follow Mike's instructions\nfrom the repo.\n\n* [yq repo](https://github.com/mikefarah/yq)\n* [yq docs](https://mikefarah.gitbook.io/yq/)\n",
      "summary": "is a command line utility for parsing and querying yaml, like does for json.",
      "date_published": "2022-03-14T18:30:12Z",
      "date_modified": "2022-03-14T18:30:12Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux",
        "cli"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/pytest-mock-basics/",
      "url": "https://go.waylonwalker.com/pytest-mock-basics/",
      "title": "pytest-mock Basics",
      "content_html": "\u003cp\u003eLast Thursday I learned about \u003ccode\u003epytest-mock\u003c/code\u003e at a local python meetup.  The\npresenter showed how he uses \u003ccode\u003epytest-mock\u003c/code\u003e for his work, and it was kinda eye\nopening.  I knew what mocking was, but I had not seen it in this context.\u003c/p\u003e\n\u003ch2 id=\"discovery\"\u003eDiscovery \u003ca href=\"#discovery\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWatching him use \u003ccode\u003epytest-mock\u003c/code\u003e I realized that mocking was not as hard as I had\nmade it out to be.  You can install \u003ccode\u003epytest-mock\u003c/code\u003e, use the mocker fixture, and\npatch objects methods with what you want them to be.\u003c/p\u003e\n\u003ch2 id=\"install\"\u003einstall \u003ca href=\"#install\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003epytest-mock is out on pypi and can be installed with pip.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install pytest-mock\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2 id=\"what-i-actually-did\"\u003eWhat I actually did \u003ca href=\"#what-i-actually-did\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eSometimes I fall victim to making these posts nice and easy to follow.  It\ntakes more steps than just pip install, you need a place to practice in a nice\nsandbox.  Here is how I make my sandboxes.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003emkdir\u003c/span\u003e \u003cspan class=\"o\"\u003e~/\u003c/span\u003e\u003cspan class=\"n\"\u003egit\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003elearn\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003epytest\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003emock\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ecd\u003c/span\u003e \u003cspan class=\"o\"\u003e~/\u003c/span\u003e\u003cspan class=\"n\"\u003egit\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003elearn\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003epytest\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003emock\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# well actually open a new tmux session there\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eecho\u003c/span\u003e \u003cspan class=\"n\"\u003epytest\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003emock\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003erequirements\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003etxt\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# I copied in my .envrc, and ran direnv allow, which actually just made me a virtual env as follows\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epython3\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003em\u003c/span\u003e \u003cspan class=\"n\"\u003evenv\u003c/span\u003e \u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003evenv\u003c/span\u003e \u003cspan class=\"o\"\u003e--\u003c/span\u003e\u003cspan class=\"n\"\u003eprompt\u003c/span\u003e \u003cspan class=\"err\"\u003e$\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ebasename\u003c/span\u003e \u003cspan class=\"err\"\u003e$\u003c/span\u003e\u003cspan class=\"n\"\u003ePWD\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003esource\u003c/span\u003e \u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003evenv\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"nb\"\u003ebin\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003eactivate\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# now install pytest-mock\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epip\u003c/span\u003e \u003cspan class=\"n\"\u003einstall\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003er\u003c/span\u003e \u003cspan class=\"n\"\u003erequirements\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003etxt\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# make some tests to mock\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003emkdir\u003c/span\u003e \u003cspan class=\"n\"\u003etests\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003envim\u003c/span\u003e \u003cspan class=\"n\"\u003etests\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003etest_me\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003epy\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"create-a-teststest-mepy\"\u003ecreate a tests/test_me.py \u003ca href=\"#create-a-teststest-mepy\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI just wanted to do something that was worth mocking, the first thing that came\nto mind was to do something that made a network call.  Here I made a method\nthat uses requests to go get the content on my homepage, but changes it’s\nreturn behavior based on the \u003ccode\u003estatus_code\u003c/code\u003e of the request.\u003c/p\u003e\n\u003cp\u003eI want to mock out \u003ccode\u003erequests\u003c/code\u003e to ensure that GoGetter can handle both \u003ccode\u003e200\u003c/code\u003e\n(http success) and \u003ccode\u003e404\u003c/code\u003e (http not found) status codes.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# tests/test_me.py\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003erequests\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eclass\u003c/span\u003e \u003cspan class=\"nc\"\u003eGoGetter\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e    The thing I am testing, this is usually imported into the test file, but\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e    defined here for simplicity.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e    \u0026#34;\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003eget\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e        Get the content of `https://waylonwalker.com` and return it as a string\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e        if successfull, or False if it\u0026#39;s not found.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e        \u0026#34;\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003er\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003erequests\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eget\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;https://waylonwalker.com\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"n\"\u003er\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003estatus_code\u003c/span\u003e \u003cspan class=\"o\"\u003e==\u003c/span\u003e \u003cspan class=\"mi\"\u003e200\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"n\"\u003er\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003econtent\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"n\"\u003er\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003estatus_code\u003c/span\u003e \u003cspan class=\"o\"\u003e==\u003c/span\u003e \u003cspan class=\"mi\"\u003e404\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"kc\"\u003eFalse\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eclass\u003c/span\u003e \u003cspan class=\"nc\"\u003eDummyRequester\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"fm\"\u003e__init__\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003econtent\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003estatus_code\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e        mock out content and status_code\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e        \u0026#34;\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003econtent\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003econtent\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003estatus_code\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003estatus_code\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"fm\"\u003e__call__\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eurl\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e        The way I set this up GoGetter is going to call an instance of this\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e        class, so the easiest way to make it work was to implement __call__.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e        \u0026#34;\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eurl\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eurl\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003etest_success_get\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003emocker\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e    Show that the GoGetter can handle successful calls.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e    \u0026#34;\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003ego_getter\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eGoGetter\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"c1\"\u003e# Use the mocker fixture to change how requests.get works while inside of test_success_get\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003emocker\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003epatch\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eobject\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003erequests\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;get\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eDummyRequester\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;waylonwalker\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mi\"\u003e200\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003eassert\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;waylon\u0026#34;\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003ego_getter\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eget\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003etest_failed_get\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003emocker\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e    Show that the GoGetter can handle failed calls.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e    \u0026#34;\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003ego_getter\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eGoGetter\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"c1\"\u003e# Use the mocker fixture to change how requests.get works while inside of test_failed_get\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003emocker\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003epatch\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eobject\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003erequests\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;get\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eDummyRequester\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;waylonwalker\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mi\"\u003e404\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003eassert\u003c/span\u003e \u003cspan class=\"n\"\u003ego_getter\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eget\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e \u003cspan class=\"ow\"\u003eis\u003c/span\u003e \u003cspan class=\"kc\"\u003eFalse\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nLast Thursday I learned about `pytest-mock` at a local python meetup.  The\npresenter showed how he uses `pytest-mock` for his work, and it was kinda eye\nopening.  I knew what mocking was, but I had not seen it in this context.\n\n## Discovery\n\nWatching him use `pytest-mock` I realized that mocking was not as hard as I had\nmade it out to be.  You can install `pytest-mock`, use the mocker fixture, and\npatch objects methods with what you want them to be.\n\n## install\n\npytest-mock is out on pypi and can be installed with pip.\n\n```\npython -m pip install pytest-mock\n```\n\n## What I actually did\n\nSometimes I fall victim to making these posts nice and easy to follow.  It\ntakes more steps than just pip install, you need a place to practice in a nice\nsandbox.  Here is how I make my sandboxes.\n\n``` python\nmkdir ~/git/learn-pytest-mock\ncd ~/git/learn-pytest-mock\n# well actually open a new tmux session there\necho pytest-mock \u003e requirements.txt\n\n# I copied in my .envrc, and ran direnv allow, which actually just made me a virtual env as follows\npython3 -m venv .venv --prompt $(basename $PWD)\nsource .venv/bin/activate\n\n# now install pytest-mock\npip install -r requirements.txt\n\n# make some tests to mock\nmkdir tests\nnvim tests/test_me.py\n```\n\n## create a tests/test_me.py\n\nI just wanted to do something that was worth mocking, the first thing that came\nto mind was to do something that made a network call.  Here I made a method\nthat uses requests to go get the content on my homepage, but changes it's\nreturn behavior based on the `status_code` of the request.\n\nI want to mock out `requests` to ensure that GoGetter can handle both `200`\n(http success) and `404` (http not found) status codes.\n\n``` python\n# tests/test_me.py\nimport requests\n\n\nclass GoGetter:\n    \"\"\"\n    The thing I am testing, this is usually imported into the test file, but\n    defined here for simplicity.\n    \"\"\"\n    def get(self):\n        \"\"\"\n        Get the content of `https://waylonwalker.com` and return it as a string\n        if successfull, or False if it's not found.\n        \"\"\"\n        r = requests.get(\"https://waylonwalker.com\")\n        if r.status_code == 200:\n            return r.content\n        if r.status_code == 404:\n            return False\n\n\nclass DummyRequester:\n    def __init__(self, content, status_code):\n        \"\"\"\n        mock out content and status_code\n        \"\"\"\n\n        self.content = content\n        self.status_code = status_code\n\n    def __call__(self, url):\n        \"\"\"\n        The way I set this up GoGetter is going to call an instance of this\n        class, so the easiest way to make it work was to implement __call__.\n        \"\"\"\n        self.url = url\n        return self\n\n\ndef test_success_get(mocker):\n    \"\"\"\n    Show that the GoGetter can handle successful calls.\n    \"\"\"\n    go_getter = GoGetter()\n\n    # Use the mocker fixture to change how requests.get works while inside of test_success_get\n    mocker.patch.object(requests, \"get\", DummyRequester(\"waylonwalker\", 200))\n    assert \"waylon\" in go_getter.get()\n\n\ndef test_failed_get(mocker):\n    \"\"\"\n    Show that the GoGetter can handle failed calls.\n    \"\"\"\n    go_getter = GoGetter()\n\n    # Use the mocker fixture to change how requests.get works while inside of test_failed_get\n    mocker.patch.object(requests, \"get\", DummyRequester(\"waylonwalker\", 404))\n    assert go_getter.get() is False\n```\n",
      "summary": "Last Thursday I learned about at a local python meetup. The presenter showed how he uses for his work, and it was kinda eye opening. I knew what mocking was,...",
      "date_published": "2022-03-14T00:19:02Z",
      "date_modified": "2022-03-14T00:19:02Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/walrus-comprehension/",
      "url": "https://go.waylonwalker.com/walrus-comprehension/",
      "title": "Python Walrus Inside List Comprehension",
      "content_html": "\u003cp\u003ePython 3.8 came out two and a half years ago and I have yet to really lean in\non the walrus operator.  Partly because it always seemed like something kinda\nsilly (my use cases) to require a python version bump for, and partly because I\nreally didn’t understand it the best.  Primarily I have wanted to use it in\ncomprehensions, but I did not really understand how.\u003c/p\u003e\n\u003cp\u003eNow that Python 3.6 is end of life, and most folks are using at least \u003ccode\u003e3.8\u003c/code\u003e it\nseems time to learn and use it.\u003c/p\u003e\n\u003ch2 id=\"whats-a-walrus\"\u003eWhat’s a Walrus \u003ca href=\"#whats-a-walrus\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e:=\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eThe assignment operator in python is more commonly referred to as the walrus\noperator due to how \u003ccode\u003e:=\u003c/code\u003e looks like a walrus.  It allows you to assign and use\na variable in a single expression.\u003c/p\u003e\n\u003cp\u003eThis example from the docs avoids a second call to the \u003ccode\u003elen\u003c/code\u003e function.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003en\u003c/span\u003e \u003cspan class=\"o\"\u003e:=\u003c/span\u003e \u003cspan class=\"nb\"\u003elen\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ea\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e \u003cspan class=\"mi\"\u003e10\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;List is too long (\u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003en\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e elements, expected \u0026lt;= 10)\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"lets-get-some-data\"\u003eLet’s get some data \u003ca href=\"#lets-get-some-data\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003ewithout a walrus\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eIn this example we are going to do a dict comp to generate a map of content\nfrom urls, only if their status code is 200.  When doing this in a dictionary\ncomprehension we end up needing to hit the url twice for successful urls. Once\nfor the filter and once for the data going into the dictionary.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003eurl\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003erequests\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eget\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eurl\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003econtent\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003eurl\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;https://waylonwalker.com/\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;https://waylonwalker.com/broken\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"n\"\u003erequests\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eget\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eurl\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003estatus_code\u003c/span\u003e \u003cspan class=\"o\"\u003e==\u003c/span\u003e \u003cspan class=\"mi\"\u003e200\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"gimme-some-walrus\"\u003eGimme some walrus \u003ca href=\"#gimme-some-walrus\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eusing walrus in a dict comp\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eUsing the walrus operator \u003ccode\u003e:=\u003c/code\u003e list comp allows us to only put things into the\ndictionary that we want to keep, and not hit the url twice.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003eurl\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003er\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003econtent\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003eurl\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;https://waylonwalker.com/\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;https://waylonwalker.com/broken\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003er\u003c/span\u003e \u003cspan class=\"o\"\u003e:=\u003c/span\u003e \u003cspan class=\"n\"\u003erequests\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eget\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eurl\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003estatus_code\u003c/span\u003e \u003cspan class=\"o\"\u003e==\u003c/span\u003e \u003cspan class=\"mi\"\u003e200\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"fin\"\u003eFIN \u003ca href=\"#fin\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe walrus is a nice to have option to save on extra function/network calls, and\nmicro optimize your code without adding much extra.\u003c/p\u003e\n",
      "content_text": "\nPython 3.8 came out two and a half years ago and I have yet to really lean in\non the walrus operator.  Partly because it always seemed like something kinda\nsilly (my use cases) to require a python version bump for, and partly because I\nreally didn't understand it the best.  Primarily I have wanted to use it in\ncomprehensions, but I did not really understand how.\n\nNow that Python 3.6 is end of life, and most folks are using at least `3.8` it\nseems time to learn and use it.\n\n## What's a Walrus\n_:=_\n\nThe assignment operator in python is more commonly referred to as the walrus\noperator due to how `:=` looks like a walrus.  It allows you to assign and use\na variable in a single expression.\n\nThis example from the docs avoids a second call to the `len` function.\n\n``` python\nif (n := len(a)) \u003e 10:\n    print(f\"List is too long ({n} elements, expected \u003c= 10)\")\n```\n\n## Let's get some data\n_without a walrus_\n\nIn this example we are going to do a dict comp to generate a map of content\nfrom urls, only if their status code is 200.  When doing this in a dictionary\ncomprehension we end up needing to hit the url twice for successful urls. Once\nfor the filter and once for the data going into the dictionary.\n\n``` python\n{\n    url: requests.get(url).content\n    for url in [\"https://waylonwalker.com/\", \"https://waylonwalker.com/broken\"]\n    if requests.get(url).status_code == 200\n}\n```\n\n## Gimme some walrus\n_using walrus in a dict comp_\n\nUsing the walrus operator `:=` list comp allows us to only put things into the\ndictionary that we want to keep, and not hit the url twice.\n\n``` python\n{\n    url: r.content\n    for url in [\"https://waylonwalker.com/\", \"https://waylonwalker.com/broken\"]\n    if (r := requests.get(url)).status_code == 200\n}\n```\n\n## FIN\n\nThe walrus is a nice to have option to save on extra function/network calls, and\nmicro optimize your code without adding much extra.\n",
      "summary": "Python 3.8 came out two and a half years ago and I have yet to really lean in on the walrus operator. Partly because it always seemed like something kinda...",
      "date_published": "2022-03-12T15:01:59Z",
      "date_modified": "2022-03-12T15:01:59Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/kedro-rich/",
      "url": "https://go.waylonwalker.com/kedro-rich/",
      "title": "Make Kedro Runs Beautiful",
      "content_html": "\u003cp\u003eKedro rich is a very new and unstable (it’s good, just not ready) plugin for\nkedro to make the command line prettier.\u003c/p\u003e\n\u003ch2 id=\"install-kedro-rich\"\u003eInstall kedro rich \u003ca href=\"#install-kedro-rich\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThere is no pypi package yet, but it’s on github.  You can pip install it with\nthe \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e url.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epip install git+https://github.com/datajoely/kedro-rich\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"kedro-run\"\u003eKedro run \u003ca href=\"#kedro-run\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eYou can run your pipeline just as you normally would, except you get progress\nbars and pretty prints.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ekedro run\n\u003c/code\u003e\u003c/pre\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://images.waylonwalker.com/kedro-rich-run.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://images.waylonwalker.com/kedro-rich-run.png\" alt=\"kedro rich pretty run\"/ data-glightbox=\"description: kedro rich pretty run\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"kedro-catalog\"\u003eKedro catalog \u003ca href=\"#kedro-catalog\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eListing out catalog entries from the command line now print out a nice pretty\ntable.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ekedro catalog list\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cfigure\u003e\n\u003ca href=\"https://images.waylonwalker.com/kedro-rich-catalog-list.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://images.waylonwalker.com/kedro-rich-catalog-list.png\" alt=\"kedro rich catalog list table output\"/ data-glightbox=\"description: kedro rich catalog list table output\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"give-it-a-star\"\u003eGive it a star \u003ca href=\"#give-it-a-star\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eGo to the \u003ca href=\"https://github.com/datajoely/kedro-rich\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eGitHub repo\u003c/a\u003e and give it a\nstar, Joel deserves it.\u003c/p\u003e\n",
      "content_text": "\nKedro rich is a very new and unstable (it's good, just not ready) plugin for\nkedro to make the command line prettier.\n\n## Install kedro rich\n\nThere is no pypi package yet, but it's on github.  You can pip install it with\nthe git url.\n\n``` bash\npip install git+https://github.com/datajoely/kedro-rich\n```\n\n## Kedro run\n\nYou can run your pipeline just as you normally would, except you get progress\nbars and pretty prints.\n\n```\nkedro run\n```\n\n![kedro rich pretty run](https://images.waylonwalker.com/kedro-rich-run.png)\n\n\n## Kedro catalog\n\nListing out catalog entries from the command line now print out a nice pretty\ntable.\n\n``` bash\nkedro catalog list\n```\n\n![kedro rich catalog list table output](https://images.waylonwalker.com/kedro-rich-catalog-list.png)\n\n## Give it a star\n\nGo to the [GitHub repo](https://github.com/datajoely/kedro-rich) and give it a\nstar, Joel deserves it.\n",
      "summary": "Kedro rich is a very new and unstable (it's good, just not ready) plugin for kedro to make the command line prettier.",
      "date_published": "2022-03-11T13:14:51Z",
      "date_modified": "2022-03-11T13:14:51Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "kedro",
        "cli"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/git-checkout-worktree/",
      "url": "https://go.waylonwalker.com/git-checkout-worktree/",
      "title": "Git Worktrees are not so Scary",
      "content_html": "\u003cp\u003eSo worktrees, I always thought they were a big scary things.  Turns out they\nare much simpler than I thought.\u003c/p\u003e\n\u003ch2 id=\"myth-1\"\u003eMyth #1 \u003ca href=\"#myth-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eno special setup\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eI thought you had to be all in or worktrees or normal \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e, but not both.  When\nI see folks go all in on worktrees they start with a bare repo, while its true\nthis is the way you go all in, its not true that this is required.\u003c/p\u003e\n\u003ch2 id=\"lets-make-a-worktree\"\u003eLets make a worktree \u003ca href=\"#lets-make-a-worktree\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eMaking a worktree is as easy as making a branch.  It’s actually just a branch\nthat lives in another place in your filesystem.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# checkout a new worktree called compare based on main in /tmp/project\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit worktree add -b compare /tmp/project main\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# checkout a new worktree called compare based on HEAD in /tmp/project\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit worktree add -b compare /tmp/project\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# checkout a worktree from an existing feature branch in /tmp/project\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit worktree add /tmp/project my-existing-feature-branch\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003eThe worktree that you create is considered a \u003cem\u003elinked worktree\u003c/em\u003e, while the\noriginal worktree is called the \u003cem\u003emain worktree\u003c/em\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eNote that I put this in my tmp directory because I don’t expect it to live very\nlong, my recent use case was to compare two files after a big formatting\nchange.  You put these where you want, but dont come at me when your /tmp gets\nwiped and you loose work.\u003c/p\u003e\n\u003ch2 id=\"myth-2\"\u003eMyth #2 \u003ca href=\"#myth-2\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003ethey are hidden mysterious creatures\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eJust like branches git has some nice commands to help us understand what\nworktrees we have on our system.  Firstly we have something very specific to\nworktrees to list them out.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit worktree list\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003egives the output\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e/home/u_walkews/git/git-work-play  b202442 \u003cspan class=\"o\"\u003e[\u003c/span\u003emain\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e/tmp/another                       d9b2cf1 \u003cspan class=\"o\"\u003e[\u003c/span\u003eanother\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eEven the branch command gives a bit different output for a worktree.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit branch\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003egives this output, notice the + denotes an actively linked worktree, and the *\ngives the active branch.  If you cd over to the worktree directory, these will\nswitch roles.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e+ another\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  just-a-branch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e* main\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"you-can-only-checkout-a-branch-in-one-place\"\u003eYou can only checkout a branch in one place \u003ca href=\"#you-can-only-checkout-a-branch-in-one-place\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIf you try to checkout a branch that is checked out in a linked worktree, you\nwill be presented with an error, and it will not let you check out a second\ncopy of that branch.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e❯ git checkout another\nfatal: \u0026#39;another\u0026#39; is already checked out at \u0026#39;/tmp/another\u0026#39;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2 id=\"myth-3\"\u003eMyth #3 \u003ca href=\"#myth-3\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eonce you go worktree, you worktree\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eOnce you have worktrees on your system, you have a few ways to get rid of them.\nUsing git’s way feels much superior, but if your a doof like me and didn’t read\nthe manual before you \u003ccode\u003erm /tmp/another -rf\u003c/code\u003e you will notice that the worktree\nis still active.  If you run \u003ccode\u003egit worktree prune\u003c/code\u003e it will clean that right up.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit worktree remove another\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003erm /tmp/another\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit worktree prune\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"it-wont-let-you-remove-if-you-have-changes\"\u003eIt won’t let you remove if you have changes \u003ca href=\"#it-wont-let-you-remove-if-you-have-changes\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis makes me think that \u003ccode\u003eremove\u003c/code\u003e is a much safer option.  If you have\nuncommitted changes, \u003ccode\u003egit worktree remove\u003c/code\u003e will throw an error, and make you\ncommit or use \u003ccode\u003e--force\u003c/code\u003e to remove the worktree.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ git worktree remove another\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003efatal: \u003cspan class=\"s1\"\u003e\u0026#39;another\u0026#39;\u003c/span\u003e contains modified or untracked files, use --force to delete it\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"rtfm\"\u003eRTFM \u003ca href=\"#rtfm\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eread the friendly manual\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eThere is a ton more information in the man page for worktrees, these are just\nthe parts that seemed really useful to me out of the gate.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eman git worktree\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nSo worktrees, I always thought they were a big scary things.  Turns out they\nare much simpler than I thought.\n\n## Myth #1\n_no special setup_\n\nI thought you had to be all in or worktrees or normal git, but not both.  When\nI see folks go all in on worktrees they start with a bare repo, while its true\nthis is the way you go all in, its not true that this is required.\n\n## Lets make a worktree\n\nMaking a worktree is as easy as making a branch.  It's actually just a branch\nthat lives in another place in your filesystem.\n\n``` bash\n# checkout a new worktree called compare based on main in /tmp/project\ngit worktree add -b compare /tmp/project main\n\n# checkout a new worktree called compare based on HEAD in /tmp/project\ngit worktree add -b compare /tmp/project\n\n# checkout a worktree from an existing feature branch in /tmp/project\ngit worktree add /tmp/project my-existing-feature-branch\n```\n\n\u003e The worktree that you create is considered a _linked worktree_, while the\n\u003e original worktree is called the _main worktree_\n\nNote that I put this in my tmp directory because I don't expect it to live very\nlong, my recent use case was to compare two files after a big formatting\nchange.  You put these where you want, but dont come at me when your /tmp gets\nwiped and you loose work.\n\n ## Myth #2\n _they are hidden mysterious creatures_\n\nJust like branches git has some nice commands to help us understand what\nworktrees we have on our system.  Firstly we have something very specific to\nworktrees to list them out.\n\n``` bash\ngit worktree list\n```\n\ngives the output\n\n``` bash\n/home/u_walkews/git/git-work-play  b202442 [main]\n/tmp/another                       d9b2cf1 [another]\n```\n\nEven the branch command gives a bit different output for a worktree.\n\n``` bash\ngit branch\n```\n\ngives this output, notice the + denotes an actively linked worktree, and the *\ngives the active branch.  If you cd over to the worktree directory, these will\nswitch roles.\n\n``` bash\n+ another\n  just-a-branch\n* main\n```\n\n## You can only checkout a branch in one place\n\nIf you try to checkout a branch that is checked out in a linked worktree, you\nwill be presented with an error, and it will not let you check out a second\ncopy of that branch.\n\n```\n❯ git checkout another\nfatal: 'another' is already checked out at '/tmp/another'\n```\n\n## Myth #3\n_once you go worktree, you worktree_\n\nOnce you have worktrees on your system, you have a few ways to get rid of them.\nUsing git's way feels much superior, but if your a doof like me and didn't read\nthe manual before you `rm /tmp/another -rf` you will notice that the worktree\nis still active.  If you run `git worktree prune` it will clean that right up.\n\n``` bash\ngit worktree remove another\n\nrm /tmp/another\ngit worktree prune\n```\n\n## It won't let you remove if you have changes\n\nThis makes me think that `remove` is a much safer option.  If you have\nuncommitted changes, `git worktree remove` will throw an error, and make you\ncommit or use `--force` to remove the worktree.\n\n``` bash\n❯ git worktree remove another\nfatal: 'another' contains modified or untracked files, use --force to delete it\n```\n\n## RTFM\n_read the friendly manual_\n\nThere is a ton more information in the man page for worktrees, these are just\nthe parts that seemed really useful to me out of the gate.\n\n``` bash\nman git worktree\n```\n",
      "summary": "So worktrees, I always thought they were a big scary things. Turns out they are much simpler than I thought.",
      "date_published": "2022-03-10T19:19:34Z",
      "date_modified": "2022-03-10T19:19:34Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "git",
        "cli",
        "linux"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/git-push-default-current/",
      "url": "https://go.waylonwalker.com/git-push-default-current/",
      "title": "Configure Git to Always Push to the Current Branch",
      "content_html": "\u003cp\u003eHas no upstream branch errors in \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e can be such a damn productivity killer.\nYou gotta stop your flow and swap over the branch, there is a config so that\nyou don’t have to do this.\u003c/p\u003e\n\u003ch2 id=\"fatal-has-no-upstream-branch\"\u003e\u003cstrong\u003efatal\u003c/strong\u003e has no upstream branch \u003ca href=\"#fatal-has-no-upstream-branch\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIf you have not yet configured git to always push to the current branch, you\nwill get a \u003ccode\u003ehas no upstream branch\u003c/code\u003e error if you don’t explicitly set it.\u003c/p\u003e\n\u003cp\u003eLet’s show an example\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit checkout -b feat/ingest-inventory-data\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit add conf/base/catalog.yml\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit commit -m \u003cspan class=\"s2\"\u003e\u0026#34;feat: ingest inventory data from abc-db\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit push\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eYou will be presented with the following error.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003efatal: The current branch feat/ingest-inventory-data has no upstream branch.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eTo push the current branch and \u003cspan class=\"nb\"\u003eset\u003c/span\u003e the remote as upstream, use\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    git push --set-upstream origin feat/ingest-inventory-data\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"option-1-follow-the-instructions\"\u003eOption 1: follow the instructions \u003ca href=\"#option-1-follow-the-instructions\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eTo resolve this fatal error your first option is simply to follow the\ninstructions given.  Just copy and paste it in.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit push --set-upstream origin feat/ingest-inventory-data\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"option-2-push-to-the-current-branch-without-setting-upstream\"\u003eOption 2: push to the current branch without setting upstream \u003ca href=\"#option-2-push-to-the-current-branch-without-setting-upstream\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eHonestly, I am pretty aware of the branch I am on, and Very few times have I\never accidentally pushed to the wrong branch.  The one that you might have a\nbigger chance with a more detrimental effect is \u003ccode\u003emain\u003c/code\u003e, which I will argue you\nshould have blocked to require a passing \u003ccode\u003eci\u003c/code\u003e, and potential reviewers to\nmerge in.  Therefore you can’t even push to \u003ccode\u003emain\u003c/code\u003e anyway.\u003c/p\u003e\n\u003cp\u003eTo just push to the branch you are currently on each and every time and never\nsee this error again, you can run this to configure git to always push to your\ncurrent branch.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit config --global push.default current\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nHas no upstream branch errors in git can be such a damn productivity killer.\nYou gotta stop your flow and swap over the branch, there is a config so that\nyou don't have to do this.\n\n## **fatal** has no upstream branch\n\nIf you have not yet configured git to always push to the current branch, you\nwill get a `has no upstream branch` error if you don't explicitly set it.\n\nLet's show an example\n\n``` bash\ngit checkout -b feat/ingest-inventory-data\ngit add conf/base/catalog.yml\ngit commit -m \"feat: ingest inventory data from abc-db\"\ngit push\n```\n\nYou will be presented with the following error.\n\n``` bash\nfatal: The current branch feat/ingest-inventory-data has no upstream branch.\nTo push the current branch and set the remote as upstream, use\n\n    git push --set-upstream origin feat/ingest-inventory-data\n```\n## Option 1: follow the instructions\n\nTo resolve this fatal error your first option is simply to follow the\ninstructions given.  Just copy and paste it in.\n\n``` bash\ngit push --set-upstream origin feat/ingest-inventory-data\n```\n\n## Option 2: push to the current branch without setting upstream\n\nHonestly, I am pretty aware of the branch I am on, and Very few times have I\never accidentally pushed to the wrong branch.  The one that you might have a\nbigger chance with a more detrimental effect is `main`, which I will argue you\nshould have blocked to require a passing `ci`, and potential reviewers to\nmerge in.  Therefore you can't even push to `main` anyway.\n\nTo just push to the branch you are currently on each and every time and never\nsee this error again, you can run this to configure git to always push to your\ncurrent branch.\n\n``` bash\ngit config --global push.default current\n```\n",
      "summary": "Has no upstream branch errors in git can be such a damn productivity killer. You gotta stop your flow and swap over the branch, there is a config so that you...",
      "date_published": "2022-03-09T13:45:18Z",
      "date_modified": "2022-03-09T13:45:18Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "git"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/open-ssh-setup/",
      "url": "https://go.waylonwalker.com/open-ssh-setup/",
      "title": "Setup SSH from chromebook to home desktop",
      "content_html": "\u003cp\u003eI write many of these posts from a 10 year old desktop that sits in my\noffice these days.  It does a very fine job running all of the things I\nneed it to for my side work, but sometimes I want a mobile setup.  I\ndon’t really want to spend the $$ on a new laptop just for the few times\nI want to be somewhere else in the house.  What I do have though is a\nchromebook.\u003c/p\u003e\n\u003cp\u003eI’ve tried to get the chromebook into my workflow in the past, but have\nfailed.  Much because by the time I got all of my tools up and running\nin the linux vm it was taking up quite a bit of space on the device and\nmade it harder for others to use as a chromebook.\u003c/p\u003e\n\u003cp\u003eToday I am giving it a second try, but this time with ssh.\u003c/p\u003e\n\u003ch2 id=\"checking-for-existing-sshd\"\u003eChecking for existing sshd \u003ca href=\"#checking-for-existing-sshd\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eBefore doing anything I checked to see if sshd is already running. Using\nthe following command.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo service ssh status\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# or\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epgrep -l sshd\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eBoth returned nothing so I know that its not running.\u003c/p\u003e\n\u003ch2 id=\"setting-up-sshd\"\u003esetting up sshd \u003ca href=\"#setting-up-sshd\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003ejust apt install it\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eNext install the openssh-client and openssh-server\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo apt install openssh-client -y\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo apt install openssh-server -y\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eAfter this I can see that its now running by checking its status once\nagain.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo service ssh status\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eGives me the result.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e● ssh.service - OpenBSD Secure Shell server\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e     Loaded: loaded \u003cspan class=\"o\"\u003e(\u003c/span\u003e/lib/systemd/system/ssh.service\u003cspan class=\"p\"\u003e;\u003c/span\u003e enabled\u003cspan class=\"p\"\u003e;\u003c/span\u003e vendor preset: enabled\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e     Active: active \u003cspan class=\"o\"\u003e(\u003c/span\u003erunning\u003cspan class=\"o\"\u003e)\u003c/span\u003e since Tue 2022-03-08 08:17:05 CST\u003cspan class=\"p\"\u003e;\u003c/span\u003e 12min ago\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e       Docs: man:sshd\u003cspan class=\"o\"\u003e(\u003c/span\u003e8\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e             man:sshd_config\u003cspan class=\"o\"\u003e(\u003c/span\u003e5\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    Process: \u003cspan class=\"m\"\u003e181185\u003c/span\u003e \u003cspan class=\"nv\"\u003eExecStartPre\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e/usr/sbin/sshd -t \u003cspan class=\"o\"\u003e(\u003c/span\u003e\u003cspan class=\"nv\"\u003ecode\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003eexited, \u003cspan class=\"nv\"\u003estatus\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e0/SUCCESS\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   Main PID: \u003cspan class=\"m\"\u003e181189\u003c/span\u003e \u003cspan class=\"o\"\u003e(\u003c/span\u003esshd\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      Tasks: \u003cspan class=\"m\"\u003e1\u003c/span\u003e \u003cspan class=\"o\"\u003e(\u003c/span\u003elimit: 19119\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e     Memory: 2.8M\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        CPU: 96ms\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e     CGroup: /system.slice/ssh.service\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e             └─181189 sshd: /usr/sbin/sshd -D \u003cspan class=\"o\"\u003e[\u003c/span\u003elistener\u003cspan class=\"o\"\u003e]\u003c/span\u003e \u003cspan class=\"m\"\u003e0\u003c/span\u003e of 10-100 startups\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"accessing-the-desktop\"\u003eAccessing the desktop \u003ca href=\"#accessing-the-desktop\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI have already enabled the Linux terminal on my chromebook, so I just\nopened the terminal, and ran the following.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003essh \u0026lt;username\u0026gt;@\u0026lt;ip-address\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eIt prompted for my password and I was in.  I had all of my vim, tmux,\nand zsh comforts that I enjoy without installing anything.  It worked so\nwell that this whole post was written from my chromebook.\u003c/p\u003e\n\u003ch2 id=\"limitations\"\u003eLimitations \u003ca href=\"#limitations\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis does limit me to being on the same network as my desktop, which\nthese days is almost always true.\u003c/p\u003e\n\u003ch2 id=\"ssh-keys\"\u003essh keys \u003ca href=\"#ssh-keys\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eOut of the box I am just using passwords to get in, but if this were\npublic I would lock down to requiring an ssh key to enter.  I’ll likey\ndo this in a future post.\u003c/p\u003e\n",
      "content_text": "\nI write many of these posts from a 10 year old desktop that sits in my\noffice these days.  It does a very fine job running all of the things I\nneed it to for my side work, but sometimes I want a mobile setup.  I\ndon't really want to spend the $$ on a new laptop just for the few times\nI want to be somewhere else in the house.  What I do have though is a\nchromebook.\n\nI've tried to get the chromebook into my workflow in the past, but have\nfailed.  Much because by the time I got all of my tools up and running\nin the linux vm it was taking up quite a bit of space on the device and\nmade it harder for others to use as a chromebook.\n\nToday I am giving it a second try, but this time with ssh.\n\n## Checking for existing sshd\n\nBefore doing anything I checked to see if sshd is already running. Using\nthe following command.\n\n``` bash\nsudo service ssh status\n# or\npgrep -l sshd\n```\n\nBoth returned nothing so I know that its not running.\n\n## setting up sshd\n\n_just apt install it_\n\nNext install the openssh-client and openssh-server\n\n``` bash\nsudo apt install openssh-client -y\nsudo apt install openssh-server -y\n```\n\nAfter this I can see that its now running by checking its status once\nagain.\n\n\n``` bash\nsudo service ssh status\n```\n\nGives me the result.\n\n``` bash\n● ssh.service - OpenBSD Secure Shell server\n     Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)\n     Active: active (running) since Tue 2022-03-08 08:17:05 CST; 12min ago\n       Docs: man:sshd(8)\n             man:sshd_config(5)\n    Process: 181185 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)\n   Main PID: 181189 (sshd)\n      Tasks: 1 (limit: 19119)\n     Memory: 2.8M\n        CPU: 96ms\n     CGroup: /system.slice/ssh.service\n             └─181189 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups\n```\n\n## Accessing the desktop\n\nI have already enabled the Linux terminal on my chromebook, so I just\nopened the terminal, and ran the following.\n\n``` bash\nssh \u003cusername\u003e@\u003cip-address\u003e\n```\n\nIt prompted for my password and I was in.  I had all of my vim, tmux,\nand zsh comforts that I enjoy without installing anything.  It worked so\nwell that this whole post was written from my chromebook.\n\n## Limitations\n\nThis does limit me to being on the same network as my desktop, which\nthese days is almost always true.\n\n## ssh keys\n\nOut of the box I am just using passwords to get in, but if this were\npublic I would lock down to requiring an ssh key to enter.  I'll likey\ndo this in a future post.\n",
      "summary": "I write many of these posts from a 10 year old desktop that sits in my office these days. It does a very fine job running all of the things I need it to for...",
      "date_published": "2022-03-08T14:20:52Z",
      "date_modified": "2022-03-08T14:20:52Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/mermaid-highlight/",
      "url": "https://go.waylonwalker.com/mermaid-highlight/",
      "title": "Mermaid Highlight",
      "content_html": "\u003cp\u003eMermaid gives us a way to style nodes through the use of css, but rather than\nusing normal css selectors we need to use \u003ccode\u003estyle \u0026lt;nodeid\u0026gt;\u003c/code\u003e.  This also applies\nto subgraphs, and we can use the name of the subgraph in place of the nodeid.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003egraph\u003c/span\u003e \u003cspan class=\"no\"\u003eTD\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003ea\u003c/span\u003e \u003cspan class=\"o\"\u003e--\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003eA\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003eA\u003c/span\u003e \u003cspan class=\"o\"\u003e--\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003eB\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003eB\u003c/span\u003e \u003cspan class=\"o\"\u003e--\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003eC\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003estyle\u003c/span\u003e \u003cspan class=\"n\"\u003eA\u003c/span\u003e \u003cspan class=\"ss\"\u003efill\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"c1\"\u003e#f9f,stroke:#333,stroke-width:4px\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003estyle\u003c/span\u003e \u003cspan class=\"n\"\u003eB\u003c/span\u003e \u003cspan class=\"ss\"\u003efill\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"c1\"\u003e#f9f,stroke:#333,stroke-width:4px\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003esubgraph\u003c/span\u003e \u003cspan class=\"n\"\u003eone\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003ea\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003eend\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003estyle\u003c/span\u003e \u003cspan class=\"n\"\u003eone\u003c/span\u003e \u003cspan class=\"ss\"\u003efill\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"c1\"\u003e#BADA55\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eproduces the following graph\u003c/p\u003e\n\u003cscript src=\"https://unpkg.com/mermaid@8.1.0/dist/mermaid.min.js\"\u003e\u003c/script\u003e\n\u003cdiv class=\"mermaid\"\u003e\ngraph TD;\na --\u0026gt; A\nA --\u0026gt; B\nB --\u0026gt; C\nstyle A fill:#f9f,stroke:#333,stroke-width:4px\nstyle B fill:#f9f,stroke:#333,stroke-width:4px\nsubgraph one\n  a\nend\n\u003cp\u003estyle one fill:#BADA55\u003c/p\u003e\n\u003c/div\u003e\n\n\u003cscript type=\"module\"\u003e\n  import mermaid from '/assets/vendor/mermaid/mermaid.esm.min.mjs';\n  const rootStyle = getComputedStyle(document.documentElement);\n  const css = (name, fallback) =\u003e (rootStyle.getPropertyValue(name) || fallback).trim();\n  const isDark = window.matchMedia('(prefers-color-scheme: dark)').matches ||\n    document.documentElement.dataset.theme === 'dark';\n  const accent = css('--color-primary', '#ffcd11');\n  const flowchart = {\n    nodeSpacing: 60,\n    rankSpacing: 90,\n    padding: 12,\n  };\n  const themeCSS = `\n    .label foreignObject \u003e div { padding: 14px 14px 10px; line-height: 1.2; }\n    .nodeLabel { padding: 14px 14px 10px; line-height: 1.2; }\n    * { cursor: pointer; }\n  `;\n  const themeVariables = {\n    background: css('--color-background', '#ffffff'),\n    primaryColor: css('--color-code-bg', '#0a0a0a'),\n    primaryTextColor: css('--color-text', '#1f2937'),\n    primaryBorderColor: accent,\n    lineColor: accent,\n    textColor: css('--color-text', '#1f2937'),\n    nodeBkg: css('--color-code-bg', '#0a0a0a'),\n    nodeBorder: accent,\n    nodeTextColor: css('--color-text', '#1f2937'),\n    fontSize: '16px',\n    nodePadding: 20,\n    nodeTextMargin: 14,\n    clusterBkg: isDark ? css('--color-background', '#0f0f0f') : css('--color-surface', '#f9fafb'),\n    clusterBorder: accent,\n    clusterTextColor: css('--color-text', '#1f2937'),\n    titleColor: css('--color-text', '#1f2937'),\n    edgeLabelBackground: css('--color-code-bg', '#0a0a0a'),\n  };\n\n  const SVG_PAN_ZOOM_CDN = 'https://cdn.jsdelivr.net/npm/svg-pan-zoom@3.6.2/dist/svg-pan-zoom.min.js';\n  let mermaidLightbox = null;\n  let activePanZoom = null;\n\n  // Inject lightbox styles once\n  const injectLightboxStyles = () =\u003e {\n    if (document.getElementById('mermaid-lightbox-css')) return;\n    const style = document.createElement('style');\n    style.id = 'mermaid-lightbox-css';\n    style.textContent = `\n      /* Container fills the GLightbox slide */\n      .mermaid-lightbox-wrap {\n        width: 100%;\n        height: 100%;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        background: transparent;\n        position: relative;\n      }\n      .mermaid-lightbox-wrap svg {\n        width: 100% !important;\n        height: 100% !important;\n        max-width: 100%;\n        max-height: 100%;\n      }\n      /* Hide GLightbox prev/next arrows (single-slide lightbox) */\n      .glightbox-container .gprev,\n      .glightbox-container .gnext {\n        display: none !important;\n      }\n      /* Hide description area that renders as a white box */\n      .glightbox-container .gslide-description,\n      .glightbox-container .gslide-title,\n      .glightbox-container .gdesc-inner,\n      .glightbox-container .gslide-desc {\n        display: none !important;\n      }\n      /* Remove white background from inline slide content */\n      .glightbox-container .gslide-inline {\n        background: transparent !important;\n      }\n      /* Make the inline content area fill the slide */\n      .glightbox-container .ginlined-content {\n        max-width: none !important;\n        max-height: none !important;\n        width: 100%;\n        height: 100%;\n        padding: 0 !important;\n      }\n      /* Remove box-shadow from the media container */\n      .glightbox-container .gslide-media {\n        box-shadow: none !important;\n      }\n      /* Toolbar styling */\n      .mermaid-lightbox-toolbar {\n        position: absolute;\n        top: 8px;\n        right: 8px;\n        z-index: 10;\n        display: flex;\n        gap: 4px;\n      }\n      .mermaid-pz-btn {\n        background: rgba(0,0,0,0.6);\n        color: #fff;\n        border: 1px solid rgba(255,255,255,0.3);\n        border-radius: 4px;\n        padding: 4px 10px;\n        cursor: pointer;\n        font-size: 14px;\n        line-height: 1;\n      }\n      .mermaid-pz-btn:hover {\n        background: rgba(0,0,0,0.8);\n        border-color: rgba(255,255,255,0.6);\n      }\n    `;\n    document.head.appendChild(style);\n  };\n\n  // Lazy-load svg-pan-zoom from CDN, returns a promise\n  const loadSvgPanZoom = () =\u003e {\n    if (typeof svgPanZoom !== 'undefined') return Promise.resolve();\n    return new Promise((resolve, reject) =\u003e {\n      const s = document.createElement('script');\n      s.src = SVG_PAN_ZOOM_CDN;\n      s.onload = resolve;\n      s.onerror = reject;\n      document.head.appendChild(s);\n    });\n  };\n\n  // Initialize svg-pan-zoom on the SVG inside the lightbox.\n  // Retries until the lightbox container has settled dimensions.\n  let _pzRetries = 0;\n  const initPanZoom = () =\u003e {\n    if (activePanZoom) return;\n    const container = document.querySelector('.glightbox-container .gslide.current .mermaid-lightbox-wrap');\n    if (!container) return;\n    const svgEl = container.querySelector('svg');\n    if (!svgEl) return;\n\n    // Ensure the container has layout dimensions before initializing.\n    const cRect = container.getBoundingClientRect();\n    if (cRect.width \u003c 10 || cRect.height \u003c 10) {\n      if (_pzRetries \u003c 20) { _pzRetries++; setTimeout(initPanZoom, 50); }\n      return;\n    }\n\n    // svg-pan-zoom needs a viewBox. Pre-rendered SVGs from mermaid\n    // usually have one; browser-rendered ones may not.\n    if (!svgEl.getAttribute('viewBox')) {\n      let w = parseFloat(svgEl.getAttribute('width'));\n      let h = parseFloat(svgEl.getAttribute('height'));\n      if (!w \u0026\u0026 svgEl.style.maxWidth) w = parseFloat(svgEl.style.maxWidth);\n      if (!w || !h) {\n        const r = svgEl.getBoundingClientRect();\n        if (!w) w = r.width;\n        if (!h) h = r.height;\n      }\n      if (w \u003e 0 \u0026\u0026 h \u003e 0) {\n        svgEl.setAttribute('viewBox', '0 0 ' + w + ' ' + h);\n      } else if (_pzRetries \u003c 20) {\n        _pzRetries++; setTimeout(initPanZoom, 50); return;\n      }\n    }\n    _pzRetries = 0;\n\n    // Clear inline dimensions so SVG can be sized by the container\n    // and svg-pan-zoom can manage transforms.\n    svgEl.removeAttribute('width');\n    svgEl.removeAttribute('height');\n    svgEl.style.cssText = 'width:100%;height:100%;';\n\n    try {\n      activePanZoom = svgPanZoom(svgEl, {\n        zoomEnabled: true,\n        panEnabled: true,\n        controlIconsEnabled: false,\n        fit: true,\n        center: true,\n        contain: false,\n        minZoom: 0.3,\n        maxZoom: 10,\n        zoomScaleSensitivity: 0.3,\n        mouseWheelZoomEnabled: true,\n        preventMouseEventsDefault: true,\n      });\n      // Double-check fit after a frame in case dimensions shifted\n      requestAnimationFrame(() =\u003e {\n        if (!activePanZoom) return;\n        activePanZoom.resize();\n        activePanZoom.fit();\n        activePanZoom.center();\n      });\n    } catch (_) {\n      activePanZoom = null;\n    }\n\n    // Add reset/fit buttons\n    let toolbar = container.querySelector('.mermaid-lightbox-toolbar');\n    if (!toolbar) {\n      toolbar = document.createElement('div');\n      toolbar.className = 'mermaid-lightbox-toolbar';\n      toolbar.innerHTML =\n        '\u003cbutton class=\"mermaid-pz-btn\" data-action=\"fit\" title=\"Fit to view\"\u003eFit\u003c/button\u003e' +\n        '\u003cbutton class=\"mermaid-pz-btn\" data-action=\"zoomin\" title=\"Zoom in\"\u003e+\u003c/button\u003e' +\n        '\u003cbutton class=\"mermaid-pz-btn\" data-action=\"zoomout\" title=\"Zoom out\"\u003e\u0026minus;\u003c/button\u003e';\n      toolbar.addEventListener('click', (ev) =\u003e {\n        const btn = ev.target.closest('[data-action]');\n        if (!btn || !activePanZoom) return;\n        ev.preventDefault();\n        ev.stopPropagation();\n        const action = btn.dataset.action;\n        if (action === 'fit') { activePanZoom.resize(); activePanZoom.fit(); activePanZoom.center(); }\n        else if (action === 'zoomin') { activePanZoom.zoomIn(); }\n        else if (action === 'zoomout') { activePanZoom.zoomOut(); }\n      });\n      container.prepend(toolbar);\n    }\n  };\n\n  // Destroy pan-zoom on lightbox close\n  const destroyPanZoom = () =\u003e {\n    if (activePanZoom) {\n      try { activePanZoom.destroy(); } catch (_) { /* no-op */ }\n      activePanZoom = null;\n    }\n  };\n\n  let _lbRetries = 0;\n  const ensureMermaidLightbox = () =\u003e {\n    const diagrams = document.querySelectorAll('.mermaid svg');\n    if (!diagrams.length) {\n      // Mermaid ESM may still be rendering -- retry up to 2s\n      if (_lbRetries \u003c 20) { _lbRetries++; setTimeout(ensureMermaidLightbox, 100); }\n      return;\n    }\n    _lbRetries = 0;\n    injectLightboxStyles();\n    diagrams.forEach((svg) =\u003e {\n      if (svg.dataset.lightboxBound) return;\n      svg.dataset.lightboxBound = 'true';\n      svg.style.cursor = 'pointer';\n      svg.addEventListener('click', (e) =\u003e {\n        e.preventDefault();\n        e.stopPropagation();\n        const svgHtml = svg.outerHTML;\n        const openLightbox = () =\u003e {\n          if (!mermaidLightbox) {\n            mermaidLightbox = GLightbox({\n              selector: false,\n              openEffect: 'fade',\n              closeEffect: 'fade',\n              zoomable: false,\n              draggable: false,\n              skin: 'clean',\n            });\n            mermaidLightbox.on('slide_after_load', () =\u003e {\n              destroyPanZoom();\n              _pzRetries = 0;\n              loadSvgPanZoom().then(() =\u003e initPanZoom());\n            });\n            mermaidLightbox.on('close', destroyPanZoom);\n          }\n          mermaidLightbox.setElements([{\n            content: '\u003cdiv class=\"mermaid-lightbox-wrap\"\u003e' + svgHtml + '\u003c/div\u003e',\n            width: '90vw',\n            height: '90vh'\n          }]);\n          mermaidLightbox.open();\n          loadSvgPanZoom();\n        };\n        if (typeof GLightbox !== 'undefined') {\n          openLightbox();\n        } else if (window.initGLightbox) {\n          window.initGLightbox();\n          openLightbox();\n        } else {\n          window.addEventListener('glightbox-ready', () =\u003e { openLightbox(); }, { once: true });\n        }\n      });\n    });\n  };\n\n  mermaid.initialize({ startOnLoad: false, theme: 'base', themeVariables, flowchart, themeCSS });\n  window.initMermaid = async () =\u003e {\n    try {\n      await mermaid.run();\n    } catch (e) {\n      console.error('mermaid.run failed:', e);\n    }\n    ensureMermaidLightbox();\n  };\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', () =\u003e window.initMermaid());\n  } else {\n    window.initMermaid();\n  }\n\u003c/script\u003e",
      "content_text": "\nMermaid gives us a way to style nodes through the use of css, but rather than\nusing normal css selectors we need to use `style \u003cnodeid\u003e`.  This also applies\nto subgraphs, and we can use the name of the subgraph in place of the nodeid.\n\n``` ruby\ngraph TD;\n    a --\u003e A\n    A --\u003e B\n    B --\u003e C\n\n    style A fill:#f9f,stroke:#333,stroke-width:4px\n    style B fill:#f9f,stroke:#333,stroke-width:4px\n\n    subgraph one\n        a\n    end\n\n    style one fill:#BADA55\n```\n\nproduces the following graph\n\n\u003cscript src='https://unpkg.com/mermaid@8.1.0/dist/mermaid.min.js'\u003e\u003c/script\u003e\n\u003cdiv class='mermaid'\u003e\ngraph TD;\na --\u003e A\nA --\u003e B\nB --\u003e C\nstyle A fill:#f9f,stroke:#333,stroke-width:4px\nstyle B fill:#f9f,stroke:#333,stroke-width:4px\nsubgraph one\n  a\nend\n\nstyle one fill:#BADA55\n\u003c/div\u003e\n",
      "summary": "Mermaid gives us a way to style nodes through the use of css, but rather than using normal css selectors we need to use . This also applies to subgraphs, and...",
      "date_published": "2022-03-07T07:22:04Z",
      "date_modified": "2022-03-07T07:22:04Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "webdev"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/nvr-open-files/",
      "url": "https://go.waylonwalker.com/nvr-open-files/",
      "title": "Open Files with Nvim Remote",
      "content_html": "\u003cp\u003eI recently found a really great \u003ca href=\"https://github.com/mhinz/neovim-remote\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eplugin\u003c/a\u003e by\n\u003ca href=\"https://github.com/mhinz\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003emhinz\u003c/a\u003e to open files in neovim from a\ndifferent tmux split, without touching neovim at all.\u003c/p\u003e\n\u003ch2 id=\"installation\"\u003eInstallation \u003ca href=\"#installation\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/mhinz/neovim-remote\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eneovim-remote\u003c/a\u003e is not a neovim\nplugin at all, it’s a python cli that you can install with pip.  Unlike\nthe repo suggests, I use pipx to install \u003ccode\u003envr\u003c/code\u003e.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epipx install neovim-remote\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"how-i-use-it\"\u003eHow I use it \u003ca href=\"#how-i-use-it\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI have this added to my \u003ccode\u003e.envrc\u003c/code\u003e that is in every one of my projects.\nThis will tie a neovim session to that directory, and all directories\nunder it.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eexport\u003c/span\u003e \u003cspan class=\"nv\"\u003eNVIM_LISTEN_ADDRESS\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e/tmp/nvim-\u003cspan class=\"k\"\u003e$(\u003c/span\u003ebasename \u003cspan class=\"nv\"\u003e$PWD\u003c/span\u003e\u003cspan class=\"k\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003eIn my workflow I open a tmux session for each project, so this\nessentially ties a neovim session to a tmux session.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3 id=\"open-neovim\"\u003eOpen neovim \u003ca href=\"#open-neovim\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eFirst open neovim, but with the \u003ccode\u003envr\u003c/code\u003e command.  This will open neovim,\nand look pretty much the same as always.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003envr\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eIf you try to run \u003ccode\u003envr\u003c/code\u003e again in another shell nothing will happen as\nits already runnin under that address, but if you give it a filename it\nwill open the file in the first instance of neovim that you opened.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003envr readme.md\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"links\"\u003eLinks \u003ca href=\"#links\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mhinz/neovim-remote\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eGitHub\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\nI recently found a really great [plugin](https://github.com/mhinz/neovim-remote) by\n[mhinz](https://github.com/mhinz) to open files in neovim from a\ndifferent tmux split, without touching neovim at all.\n\n## Installation\n\n[neovim-remote](https://github.com/mhinz/neovim-remote) is not a neovim\nplugin at all, it's a python cli that you can install with pip.  Unlike\nthe repo suggests, I use pipx to install `nvr`.\n\n\n``` bash\npipx install neovim-remote\n```\n\n## How I use it\n\nI have this added to my `.envrc` that is in every one of my projects.\nThis will tie a neovim session to that directory, and all directories\nunder it.\n\n``` bash\nexport NVIM_LISTEN_ADDRESS=/tmp/nvim-$(basename $PWD)\n```\n\n\u003e In my workflow I open a tmux session for each project, so this\n\u003e essentially ties a neovim session to a tmux session.\n\n### Open neovim\n\nFirst open neovim, but with the `nvr` command.  This will open neovim,\nand look pretty much the same as always.\n\n``` bash\nnvr\n```\n\nIf you try to run `nvr` again in another shell nothing will happen as\nits already runnin under that address, but if you give it a filename it\nwill open the file in the first instance of neovim that you opened.\n\n``` bash\nnvr readme.md\n````\n\n## Links\n\n* [GitHub](https://github.com/mhinz/neovim-remote)\n",
      "summary": "I recently found a really great plugin by mhinz to open files in neovim from a different tmux split, without touching neovim at all.",
      "date_published": "2022-03-06T16:22:49Z",
      "date_modified": "2022-03-06T16:22:49Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "vim",
        "tmux"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/mermaid-subgraphs/",
      "url": "https://go.waylonwalker.com/mermaid-subgraphs/",
      "title": "Grouping Mermaid nodes in Subgraphs",
      "content_html": "\u003cp\u003eMermaid provides some really great ways to group or fence in parts of your\ngraphs through the use of subgraphs.\u003c/p\u003e\n\u003cp\u003eHere we can model some sort of data ingest with some raw iot device and our\nwarehouse in different groups.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003egraph TD;\n\n    subgraph raw_iot\n        a\n    end\n\n    subgraph warehouse\n        A --\u0026gt; B\n        B --\u0026gt; C\n    end\n\u003c/code\u003e\u003c/pre\u003e\n\u003cscript src=\"https://unpkg.com/mermaid@8.1.0/dist/mermaid.min.js\"\u003e\u003c/script\u003e\n\u003cdiv class=\"mermaid\"\u003e\ngraph TD;\n\u003cpre\u003e\u003ccode\u003esubgraph raw_iot\n    a\nend\n\nsubgraph warehouse\n    A --\u0026gt; B\n    B --\u0026gt; C\nend\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003ch2 id=\"connecting-subgroups\"\u003econnecting subgroups \u003ca href=\"#connecting-subgroups\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIf we want to connect them, we can make a connection between a and A outside of\nthe subgraphs.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003egraph TD;\n\n    subgraph raw_iot\n        a\n    end\n\n    a --\u0026gt; A\n\n    subgraph warehouse\n        A --\u0026gt; B\n        B --\u0026gt; C\n    end\n\u003c/code\u003e\u003c/pre\u003e\n\u003cscript src=\"https://unpkg.com/mermaid@8.1.0/dist/mermaid.min.js\"\u003e\u003c/script\u003e\n\u003cdiv class=\"mermaid\"\u003e\ngraph TD;\n\u003cpre\u003e\u003ccode\u003esubgraph raw_iot\n    a\nend\n\na --\u0026gt; A\n\nsubgraph warehouse\n    A --\u0026gt; B\n    B --\u0026gt; C\nend\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003ch2 id=\"separation-of-concerns\"\u003eseparation of concerns \u003ca href=\"#separation-of-concerns\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIt’s also possible to specify subgraphs separate from where you define your\nnodes. which allows for some different levels of grouping that would not be\npossible if you were to define all your nodes inside of a subgraph.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003egraph TD;\n    a --\u0026gt; A\n    A --\u0026gt; B\n    B --\u0026gt; C\n\n    subgraph one\n        A\n        C\n    end\n\u003c/code\u003e\u003c/pre\u003e\n\u003cdiv class=\"mermaid\"\u003e\ngraph TD;\n    a --\u0026gt; A\n    A --\u0026gt; B\n    B --\u0026gt; C\n\u003cpre\u003e\u003ccode\u003esubgraph warehouse\n    A\n    C\nend\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\n\u003cscript type=\"module\"\u003e\n  import mermaid from '/assets/vendor/mermaid/mermaid.esm.min.mjs';\n  const rootStyle = getComputedStyle(document.documentElement);\n  const css = (name, fallback) =\u003e (rootStyle.getPropertyValue(name) || fallback).trim();\n  const isDark = window.matchMedia('(prefers-color-scheme: dark)').matches ||\n    document.documentElement.dataset.theme === 'dark';\n  const accent = css('--color-primary', '#ffcd11');\n  const flowchart = {\n    nodeSpacing: 60,\n    rankSpacing: 90,\n    padding: 12,\n  };\n  const themeCSS = `\n    .label foreignObject \u003e div { padding: 14px 14px 10px; line-height: 1.2; }\n    .nodeLabel { padding: 14px 14px 10px; line-height: 1.2; }\n    * { cursor: pointer; }\n  `;\n  const themeVariables = {\n    background: css('--color-background', '#ffffff'),\n    primaryColor: css('--color-code-bg', '#0a0a0a'),\n    primaryTextColor: css('--color-text', '#1f2937'),\n    primaryBorderColor: accent,\n    lineColor: accent,\n    textColor: css('--color-text', '#1f2937'),\n    nodeBkg: css('--color-code-bg', '#0a0a0a'),\n    nodeBorder: accent,\n    nodeTextColor: css('--color-text', '#1f2937'),\n    fontSize: '16px',\n    nodePadding: 20,\n    nodeTextMargin: 14,\n    clusterBkg: isDark ? css('--color-background', '#0f0f0f') : css('--color-surface', '#f9fafb'),\n    clusterBorder: accent,\n    clusterTextColor: css('--color-text', '#1f2937'),\n    titleColor: css('--color-text', '#1f2937'),\n    edgeLabelBackground: css('--color-code-bg', '#0a0a0a'),\n  };\n\n  const SVG_PAN_ZOOM_CDN = 'https://cdn.jsdelivr.net/npm/svg-pan-zoom@3.6.2/dist/svg-pan-zoom.min.js';\n  let mermaidLightbox = null;\n  let activePanZoom = null;\n\n  // Inject lightbox styles once\n  const injectLightboxStyles = () =\u003e {\n    if (document.getElementById('mermaid-lightbox-css')) return;\n    const style = document.createElement('style');\n    style.id = 'mermaid-lightbox-css';\n    style.textContent = `\n      /* Container fills the GLightbox slide */\n      .mermaid-lightbox-wrap {\n        width: 100%;\n        height: 100%;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        background: transparent;\n        position: relative;\n      }\n      .mermaid-lightbox-wrap svg {\n        width: 100% !important;\n        height: 100% !important;\n        max-width: 100%;\n        max-height: 100%;\n      }\n      /* Hide GLightbox prev/next arrows (single-slide lightbox) */\n      .glightbox-container .gprev,\n      .glightbox-container .gnext {\n        display: none !important;\n      }\n      /* Hide description area that renders as a white box */\n      .glightbox-container .gslide-description,\n      .glightbox-container .gslide-title,\n      .glightbox-container .gdesc-inner,\n      .glightbox-container .gslide-desc {\n        display: none !important;\n      }\n      /* Remove white background from inline slide content */\n      .glightbox-container .gslide-inline {\n        background: transparent !important;\n      }\n      /* Make the inline content area fill the slide */\n      .glightbox-container .ginlined-content {\n        max-width: none !important;\n        max-height: none !important;\n        width: 100%;\n        height: 100%;\n        padding: 0 !important;\n      }\n      /* Remove box-shadow from the media container */\n      .glightbox-container .gslide-media {\n        box-shadow: none !important;\n      }\n      /* Toolbar styling */\n      .mermaid-lightbox-toolbar {\n        position: absolute;\n        top: 8px;\n        right: 8px;\n        z-index: 10;\n        display: flex;\n        gap: 4px;\n      }\n      .mermaid-pz-btn {\n        background: rgba(0,0,0,0.6);\n        color: #fff;\n        border: 1px solid rgba(255,255,255,0.3);\n        border-radius: 4px;\n        padding: 4px 10px;\n        cursor: pointer;\n        font-size: 14px;\n        line-height: 1;\n      }\n      .mermaid-pz-btn:hover {\n        background: rgba(0,0,0,0.8);\n        border-color: rgba(255,255,255,0.6);\n      }\n    `;\n    document.head.appendChild(style);\n  };\n\n  // Lazy-load svg-pan-zoom from CDN, returns a promise\n  const loadSvgPanZoom = () =\u003e {\n    if (typeof svgPanZoom !== 'undefined') return Promise.resolve();\n    return new Promise((resolve, reject) =\u003e {\n      const s = document.createElement('script');\n      s.src = SVG_PAN_ZOOM_CDN;\n      s.onload = resolve;\n      s.onerror = reject;\n      document.head.appendChild(s);\n    });\n  };\n\n  // Initialize svg-pan-zoom on the SVG inside the lightbox.\n  // Retries until the lightbox container has settled dimensions.\n  let _pzRetries = 0;\n  const initPanZoom = () =\u003e {\n    if (activePanZoom) return;\n    const container = document.querySelector('.glightbox-container .gslide.current .mermaid-lightbox-wrap');\n    if (!container) return;\n    const svgEl = container.querySelector('svg');\n    if (!svgEl) return;\n\n    // Ensure the container has layout dimensions before initializing.\n    const cRect = container.getBoundingClientRect();\n    if (cRect.width \u003c 10 || cRect.height \u003c 10) {\n      if (_pzRetries \u003c 20) { _pzRetries++; setTimeout(initPanZoom, 50); }\n      return;\n    }\n\n    // svg-pan-zoom needs a viewBox. Pre-rendered SVGs from mermaid\n    // usually have one; browser-rendered ones may not.\n    if (!svgEl.getAttribute('viewBox')) {\n      let w = parseFloat(svgEl.getAttribute('width'));\n      let h = parseFloat(svgEl.getAttribute('height'));\n      if (!w \u0026\u0026 svgEl.style.maxWidth) w = parseFloat(svgEl.style.maxWidth);\n      if (!w || !h) {\n        const r = svgEl.getBoundingClientRect();\n        if (!w) w = r.width;\n        if (!h) h = r.height;\n      }\n      if (w \u003e 0 \u0026\u0026 h \u003e 0) {\n        svgEl.setAttribute('viewBox', '0 0 ' + w + ' ' + h);\n      } else if (_pzRetries \u003c 20) {\n        _pzRetries++; setTimeout(initPanZoom, 50); return;\n      }\n    }\n    _pzRetries = 0;\n\n    // Clear inline dimensions so SVG can be sized by the container\n    // and svg-pan-zoom can manage transforms.\n    svgEl.removeAttribute('width');\n    svgEl.removeAttribute('height');\n    svgEl.style.cssText = 'width:100%;height:100%;';\n\n    try {\n      activePanZoom = svgPanZoom(svgEl, {\n        zoomEnabled: true,\n        panEnabled: true,\n        controlIconsEnabled: false,\n        fit: true,\n        center: true,\n        contain: false,\n        minZoom: 0.3,\n        maxZoom: 10,\n        zoomScaleSensitivity: 0.3,\n        mouseWheelZoomEnabled: true,\n        preventMouseEventsDefault: true,\n      });\n      // Double-check fit after a frame in case dimensions shifted\n      requestAnimationFrame(() =\u003e {\n        if (!activePanZoom) return;\n        activePanZoom.resize();\n        activePanZoom.fit();\n        activePanZoom.center();\n      });\n    } catch (_) {\n      activePanZoom = null;\n    }\n\n    // Add reset/fit buttons\n    let toolbar = container.querySelector('.mermaid-lightbox-toolbar');\n    if (!toolbar) {\n      toolbar = document.createElement('div');\n      toolbar.className = 'mermaid-lightbox-toolbar';\n      toolbar.innerHTML =\n        '\u003cbutton class=\"mermaid-pz-btn\" data-action=\"fit\" title=\"Fit to view\"\u003eFit\u003c/button\u003e' +\n        '\u003cbutton class=\"mermaid-pz-btn\" data-action=\"zoomin\" title=\"Zoom in\"\u003e+\u003c/button\u003e' +\n        '\u003cbutton class=\"mermaid-pz-btn\" data-action=\"zoomout\" title=\"Zoom out\"\u003e\u0026minus;\u003c/button\u003e';\n      toolbar.addEventListener('click', (ev) =\u003e {\n        const btn = ev.target.closest('[data-action]');\n        if (!btn || !activePanZoom) return;\n        ev.preventDefault();\n        ev.stopPropagation();\n        const action = btn.dataset.action;\n        if (action === 'fit') { activePanZoom.resize(); activePanZoom.fit(); activePanZoom.center(); }\n        else if (action === 'zoomin') { activePanZoom.zoomIn(); }\n        else if (action === 'zoomout') { activePanZoom.zoomOut(); }\n      });\n      container.prepend(toolbar);\n    }\n  };\n\n  // Destroy pan-zoom on lightbox close\n  const destroyPanZoom = () =\u003e {\n    if (activePanZoom) {\n      try { activePanZoom.destroy(); } catch (_) { /* no-op */ }\n      activePanZoom = null;\n    }\n  };\n\n  let _lbRetries = 0;\n  const ensureMermaidLightbox = () =\u003e {\n    const diagrams = document.querySelectorAll('.mermaid svg');\n    if (!diagrams.length) {\n      // Mermaid ESM may still be rendering -- retry up to 2s\n      if (_lbRetries \u003c 20) { _lbRetries++; setTimeout(ensureMermaidLightbox, 100); }\n      return;\n    }\n    _lbRetries = 0;\n    injectLightboxStyles();\n    diagrams.forEach((svg) =\u003e {\n      if (svg.dataset.lightboxBound) return;\n      svg.dataset.lightboxBound = 'true';\n      svg.style.cursor = 'pointer';\n      svg.addEventListener('click', (e) =\u003e {\n        e.preventDefault();\n        e.stopPropagation();\n        const svgHtml = svg.outerHTML;\n        const openLightbox = () =\u003e {\n          if (!mermaidLightbox) {\n            mermaidLightbox = GLightbox({\n              selector: false,\n              openEffect: 'fade',\n              closeEffect: 'fade',\n              zoomable: false,\n              draggable: false,\n              skin: 'clean',\n            });\n            mermaidLightbox.on('slide_after_load', () =\u003e {\n              destroyPanZoom();\n              _pzRetries = 0;\n              loadSvgPanZoom().then(() =\u003e initPanZoom());\n            });\n            mermaidLightbox.on('close', destroyPanZoom);\n          }\n          mermaidLightbox.setElements([{\n            content: '\u003cdiv class=\"mermaid-lightbox-wrap\"\u003e' + svgHtml + '\u003c/div\u003e',\n            width: '90vw',\n            height: '90vh'\n          }]);\n          mermaidLightbox.open();\n          loadSvgPanZoom();\n        };\n        if (typeof GLightbox !== 'undefined') {\n          openLightbox();\n        } else if (window.initGLightbox) {\n          window.initGLightbox();\n          openLightbox();\n        } else {\n          window.addEventListener('glightbox-ready', () =\u003e { openLightbox(); }, { once: true });\n        }\n      });\n    });\n  };\n\n  mermaid.initialize({ startOnLoad: false, theme: 'base', themeVariables, flowchart, themeCSS });\n  window.initMermaid = async () =\u003e {\n    try {\n      await mermaid.run();\n    } catch (e) {\n      console.error('mermaid.run failed:', e);\n    }\n    ensureMermaidLightbox();\n  };\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', () =\u003e window.initMermaid());\n  } else {\n    window.initMermaid();\n  }\n\u003c/script\u003e",
      "content_text": "\nMermaid provides some really great ways to group or fence in parts of your\ngraphs through the use of subgraphs.\n\nHere we can model some sort of data ingest with some raw iot device and our\nwarehouse in different groups.\n\n```\ngraph TD;\n\n    subgraph raw_iot\n        a\n    end\n\n    subgraph warehouse\n        A --\u003e B\n        B --\u003e C\n    end\n```\n\u003cscript src='https://unpkg.com/mermaid@8.1.0/dist/mermaid.min.js'\u003e\u003c/script\u003e\n\u003cdiv class='mermaid'\u003e\ngraph TD;\n\n    subgraph raw_iot\n        a\n    end\n\n    subgraph warehouse\n        A --\u003e B\n        B --\u003e C\n    end\n\u003c/div\u003e\n\n## connecting subgroups\n\nIf we want to connect them, we can make a connection between a and A outside of\nthe subgraphs.\n\n```\ngraph TD;\n\n    subgraph raw_iot\n        a\n    end\n\n    a --\u003e A\n\n    subgraph warehouse\n        A --\u003e B\n        B --\u003e C\n    end\n```\n\u003cscript src='https://unpkg.com/mermaid@8.1.0/dist/mermaid.min.js'\u003e\u003c/script\u003e\n\u003cdiv class='mermaid'\u003e\ngraph TD;\n\n    subgraph raw_iot\n        a\n    end\n\n    a --\u003e A\n\n    subgraph warehouse\n        A --\u003e B\n        B --\u003e C\n    end\n\u003c/div\u003e\n\n## separation of concerns\n\nIt's also possible to specify subgraphs separate from where you define your\nnodes. which allows for some different levels of grouping that would not be\npossible if you were to define all your nodes inside of a subgraph.\n\n```\ngraph TD;\n    a --\u003e A\n    A --\u003e B\n    B --\u003e C\n\n    subgraph one\n        A\n        C\n    end\n```\n\n\n\u003cdiv class='mermaid'\u003e\ngraph TD;\n    a --\u003e A\n    A --\u003e B\n    B --\u003e C\n\n    subgraph warehouse\n        A\n        C\n    end\n\u003c/div\u003e\n",
      "summary": "Mermaid provides some really great ways to group or fence in parts of your graphs through the use of subgraphs.",
      "date_published": "2022-03-05T16:23:42Z",
      "date_modified": "2022-03-05T16:23:42Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "webdev"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/dedupe-your-shell-paths/",
      "url": "https://go.waylonwalker.com/dedupe-your-shell-paths/",
      "title": "Dedupe your shell paths",
      "content_html": "\u003cp\u003eIf you have ever ran \u003ccode\u003ewhich \u0026lt;command\u0026gt;\u003c/code\u003e and see duplicate entries it’s likely\nthat you have duplicate entries in your $PATH.  You can clean this up with a\none liner at the end of your bashrc or zshrc.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eeval\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;typeset -U path\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nIf you have ever ran `which \u003ccommand\u003e` and see duplicate entries it's likely\nthat you have duplicate entries in your $PATH.  You can clean this up with a\none liner at the end of your bashrc or zshrc.\n\n``` bash\neval \"typeset -U path\"\n```\n",
      "summary": "If you have ever ran and see duplicate entries it's likely that you have duplicate entries in your $PATH. You can clean this up with a one liner at the end...",
      "date_published": "2022-03-04T19:08:49Z",
      "date_modified": "2022-03-04T19:08:49Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux",
        "cli"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/mermaid-html/",
      "url": "https://go.waylonwalker.com/mermaid-html/",
      "title": "Simple Plain Text Diagrams in HTML",
      "content_html": "\u003cp\u003eSince GitHub started supporting mermaid in their markdown I wanted to\ntake another look at how to implement it on my site, I think it has some\nvery nice opportunities in teaching, documenting, and explaining things.\u003c/p\u003e\n\u003cp\u003eThe docs kinda just jumped right into their mermaid language and really\nwent through that in a lot of depth, and skipped over how to implement\nit yourself, turns out its pretty simple. You  just write mermaid syntax\nin a div with a class of mermaid on it!\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nt\"\u003escript\u003c/span\u003e \u003cspan class=\"na\"\u003esrc\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s\"\u003e\u0026#39;https://unpkg.com/mermaid@8.1.0/dist/mermaid.min.js\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u0026lt;/\u003c/span\u003e\u003cspan class=\"nt\"\u003escript\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nt\"\u003ediv\u003c/span\u003e \u003cspan class=\"na\"\u003eclass\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s\"\u003e\u0026#39;mermaid\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egraph TD;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ea --\u0026gt; A\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eA --\u0026gt; B\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eB --\u0026gt; C\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e\u0026lt;/\u003c/span\u003e\u003cspan class=\"nt\"\u003ediv\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003eYou  just write mermaid syntax in a div with a class of mermaid on\nit!\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eThe above gets me this diagram.\u003c/p\u003e\n\u003cscript src=\"https://unpkg.com/mermaid@8.1.0/dist/mermaid.min.js\"\u003e\u003c/script\u003e\n\u003cdiv class=\"mermaid\"\u003e\ngraph TD;\na --\u0026gt; A\nA --\u0026gt; B\nB --\u0026gt; C\n\u003c/div\u003e\n\u003cp\u003eThis feels so quick and easy to start getting some graphs up and running, but\ndoes lead to layout shift and extra bytes down the pipe.  The best solution in\nmy opionion would be to forgo the js and ship svg.  That said, this is do dang\nconvenient I will be using it for some things.\u003c/p\u003e\n\n\u003cscript type=\"module\"\u003e\n  import mermaid from '/assets/vendor/mermaid/mermaid.esm.min.mjs';\n  const rootStyle = getComputedStyle(document.documentElement);\n  const css = (name, fallback) =\u003e (rootStyle.getPropertyValue(name) || fallback).trim();\n  const isDark = window.matchMedia('(prefers-color-scheme: dark)').matches ||\n    document.documentElement.dataset.theme === 'dark';\n  const accent = css('--color-primary', '#ffcd11');\n  const flowchart = {\n    nodeSpacing: 60,\n    rankSpacing: 90,\n    padding: 12,\n  };\n  const themeCSS = `\n    .label foreignObject \u003e div { padding: 14px 14px 10px; line-height: 1.2; }\n    .nodeLabel { padding: 14px 14px 10px; line-height: 1.2; }\n    * { cursor: pointer; }\n  `;\n  const themeVariables = {\n    background: css('--color-background', '#ffffff'),\n    primaryColor: css('--color-code-bg', '#0a0a0a'),\n    primaryTextColor: css('--color-text', '#1f2937'),\n    primaryBorderColor: accent,\n    lineColor: accent,\n    textColor: css('--color-text', '#1f2937'),\n    nodeBkg: css('--color-code-bg', '#0a0a0a'),\n    nodeBorder: accent,\n    nodeTextColor: css('--color-text', '#1f2937'),\n    fontSize: '16px',\n    nodePadding: 20,\n    nodeTextMargin: 14,\n    clusterBkg: isDark ? css('--color-background', '#0f0f0f') : css('--color-surface', '#f9fafb'),\n    clusterBorder: accent,\n    clusterTextColor: css('--color-text', '#1f2937'),\n    titleColor: css('--color-text', '#1f2937'),\n    edgeLabelBackground: css('--color-code-bg', '#0a0a0a'),\n  };\n\n  const SVG_PAN_ZOOM_CDN = 'https://cdn.jsdelivr.net/npm/svg-pan-zoom@3.6.2/dist/svg-pan-zoom.min.js';\n  let mermaidLightbox = null;\n  let activePanZoom = null;\n\n  // Inject lightbox styles once\n  const injectLightboxStyles = () =\u003e {\n    if (document.getElementById('mermaid-lightbox-css')) return;\n    const style = document.createElement('style');\n    style.id = 'mermaid-lightbox-css';\n    style.textContent = `\n      /* Container fills the GLightbox slide */\n      .mermaid-lightbox-wrap {\n        width: 100%;\n        height: 100%;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        background: transparent;\n        position: relative;\n      }\n      .mermaid-lightbox-wrap svg {\n        width: 100% !important;\n        height: 100% !important;\n        max-width: 100%;\n        max-height: 100%;\n      }\n      /* Hide GLightbox prev/next arrows (single-slide lightbox) */\n      .glightbox-container .gprev,\n      .glightbox-container .gnext {\n        display: none !important;\n      }\n      /* Hide description area that renders as a white box */\n      .glightbox-container .gslide-description,\n      .glightbox-container .gslide-title,\n      .glightbox-container .gdesc-inner,\n      .glightbox-container .gslide-desc {\n        display: none !important;\n      }\n      /* Remove white background from inline slide content */\n      .glightbox-container .gslide-inline {\n        background: transparent !important;\n      }\n      /* Make the inline content area fill the slide */\n      .glightbox-container .ginlined-content {\n        max-width: none !important;\n        max-height: none !important;\n        width: 100%;\n        height: 100%;\n        padding: 0 !important;\n      }\n      /* Remove box-shadow from the media container */\n      .glightbox-container .gslide-media {\n        box-shadow: none !important;\n      }\n      /* Toolbar styling */\n      .mermaid-lightbox-toolbar {\n        position: absolute;\n        top: 8px;\n        right: 8px;\n        z-index: 10;\n        display: flex;\n        gap: 4px;\n      }\n      .mermaid-pz-btn {\n        background: rgba(0,0,0,0.6);\n        color: #fff;\n        border: 1px solid rgba(255,255,255,0.3);\n        border-radius: 4px;\n        padding: 4px 10px;\n        cursor: pointer;\n        font-size: 14px;\n        line-height: 1;\n      }\n      .mermaid-pz-btn:hover {\n        background: rgba(0,0,0,0.8);\n        border-color: rgba(255,255,255,0.6);\n      }\n    `;\n    document.head.appendChild(style);\n  };\n\n  // Lazy-load svg-pan-zoom from CDN, returns a promise\n  const loadSvgPanZoom = () =\u003e {\n    if (typeof svgPanZoom !== 'undefined') return Promise.resolve();\n    return new Promise((resolve, reject) =\u003e {\n      const s = document.createElement('script');\n      s.src = SVG_PAN_ZOOM_CDN;\n      s.onload = resolve;\n      s.onerror = reject;\n      document.head.appendChild(s);\n    });\n  };\n\n  // Initialize svg-pan-zoom on the SVG inside the lightbox.\n  // Retries until the lightbox container has settled dimensions.\n  let _pzRetries = 0;\n  const initPanZoom = () =\u003e {\n    if (activePanZoom) return;\n    const container = document.querySelector('.glightbox-container .gslide.current .mermaid-lightbox-wrap');\n    if (!container) return;\n    const svgEl = container.querySelector('svg');\n    if (!svgEl) return;\n\n    // Ensure the container has layout dimensions before initializing.\n    const cRect = container.getBoundingClientRect();\n    if (cRect.width \u003c 10 || cRect.height \u003c 10) {\n      if (_pzRetries \u003c 20) { _pzRetries++; setTimeout(initPanZoom, 50); }\n      return;\n    }\n\n    // svg-pan-zoom needs a viewBox. Pre-rendered SVGs from mermaid\n    // usually have one; browser-rendered ones may not.\n    if (!svgEl.getAttribute('viewBox')) {\n      let w = parseFloat(svgEl.getAttribute('width'));\n      let h = parseFloat(svgEl.getAttribute('height'));\n      if (!w \u0026\u0026 svgEl.style.maxWidth) w = parseFloat(svgEl.style.maxWidth);\n      if (!w || !h) {\n        const r = svgEl.getBoundingClientRect();\n        if (!w) w = r.width;\n        if (!h) h = r.height;\n      }\n      if (w \u003e 0 \u0026\u0026 h \u003e 0) {\n        svgEl.setAttribute('viewBox', '0 0 ' + w + ' ' + h);\n      } else if (_pzRetries \u003c 20) {\n        _pzRetries++; setTimeout(initPanZoom, 50); return;\n      }\n    }\n    _pzRetries = 0;\n\n    // Clear inline dimensions so SVG can be sized by the container\n    // and svg-pan-zoom can manage transforms.\n    svgEl.removeAttribute('width');\n    svgEl.removeAttribute('height');\n    svgEl.style.cssText = 'width:100%;height:100%;';\n\n    try {\n      activePanZoom = svgPanZoom(svgEl, {\n        zoomEnabled: true,\n        panEnabled: true,\n        controlIconsEnabled: false,\n        fit: true,\n        center: true,\n        contain: false,\n        minZoom: 0.3,\n        maxZoom: 10,\n        zoomScaleSensitivity: 0.3,\n        mouseWheelZoomEnabled: true,\n        preventMouseEventsDefault: true,\n      });\n      // Double-check fit after a frame in case dimensions shifted\n      requestAnimationFrame(() =\u003e {\n        if (!activePanZoom) return;\n        activePanZoom.resize();\n        activePanZoom.fit();\n        activePanZoom.center();\n      });\n    } catch (_) {\n      activePanZoom = null;\n    }\n\n    // Add reset/fit buttons\n    let toolbar = container.querySelector('.mermaid-lightbox-toolbar');\n    if (!toolbar) {\n      toolbar = document.createElement('div');\n      toolbar.className = 'mermaid-lightbox-toolbar';\n      toolbar.innerHTML =\n        '\u003cbutton class=\"mermaid-pz-btn\" data-action=\"fit\" title=\"Fit to view\"\u003eFit\u003c/button\u003e' +\n        '\u003cbutton class=\"mermaid-pz-btn\" data-action=\"zoomin\" title=\"Zoom in\"\u003e+\u003c/button\u003e' +\n        '\u003cbutton class=\"mermaid-pz-btn\" data-action=\"zoomout\" title=\"Zoom out\"\u003e\u0026minus;\u003c/button\u003e';\n      toolbar.addEventListener('click', (ev) =\u003e {\n        const btn = ev.target.closest('[data-action]');\n        if (!btn || !activePanZoom) return;\n        ev.preventDefault();\n        ev.stopPropagation();\n        const action = btn.dataset.action;\n        if (action === 'fit') { activePanZoom.resize(); activePanZoom.fit(); activePanZoom.center(); }\n        else if (action === 'zoomin') { activePanZoom.zoomIn(); }\n        else if (action === 'zoomout') { activePanZoom.zoomOut(); }\n      });\n      container.prepend(toolbar);\n    }\n  };\n\n  // Destroy pan-zoom on lightbox close\n  const destroyPanZoom = () =\u003e {\n    if (activePanZoom) {\n      try { activePanZoom.destroy(); } catch (_) { /* no-op */ }\n      activePanZoom = null;\n    }\n  };\n\n  let _lbRetries = 0;\n  const ensureMermaidLightbox = () =\u003e {\n    const diagrams = document.querySelectorAll('.mermaid svg');\n    if (!diagrams.length) {\n      // Mermaid ESM may still be rendering -- retry up to 2s\n      if (_lbRetries \u003c 20) { _lbRetries++; setTimeout(ensureMermaidLightbox, 100); }\n      return;\n    }\n    _lbRetries = 0;\n    injectLightboxStyles();\n    diagrams.forEach((svg) =\u003e {\n      if (svg.dataset.lightboxBound) return;\n      svg.dataset.lightboxBound = 'true';\n      svg.style.cursor = 'pointer';\n      svg.addEventListener('click', (e) =\u003e {\n        e.preventDefault();\n        e.stopPropagation();\n        const svgHtml = svg.outerHTML;\n        const openLightbox = () =\u003e {\n          if (!mermaidLightbox) {\n            mermaidLightbox = GLightbox({\n              selector: false,\n              openEffect: 'fade',\n              closeEffect: 'fade',\n              zoomable: false,\n              draggable: false,\n              skin: 'clean',\n            });\n            mermaidLightbox.on('slide_after_load', () =\u003e {\n              destroyPanZoom();\n              _pzRetries = 0;\n              loadSvgPanZoom().then(() =\u003e initPanZoom());\n            });\n            mermaidLightbox.on('close', destroyPanZoom);\n          }\n          mermaidLightbox.setElements([{\n            content: '\u003cdiv class=\"mermaid-lightbox-wrap\"\u003e' + svgHtml + '\u003c/div\u003e',\n            width: '90vw',\n            height: '90vh'\n          }]);\n          mermaidLightbox.open();\n          loadSvgPanZoom();\n        };\n        if (typeof GLightbox !== 'undefined') {\n          openLightbox();\n        } else if (window.initGLightbox) {\n          window.initGLightbox();\n          openLightbox();\n        } else {\n          window.addEventListener('glightbox-ready', () =\u003e { openLightbox(); }, { once: true });\n        }\n      });\n    });\n  };\n\n  mermaid.initialize({ startOnLoad: false, theme: 'base', themeVariables, flowchart, themeCSS });\n  window.initMermaid = async () =\u003e {\n    try {\n      await mermaid.run();\n    } catch (e) {\n      console.error('mermaid.run failed:', e);\n    }\n    ensureMermaidLightbox();\n  };\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', () =\u003e window.initMermaid());\n  } else {\n    window.initMermaid();\n  }\n\u003c/script\u003e",
      "content_text": "\nSince GitHub started supporting mermaid in their markdown I wanted to\ntake another look at how to implement it on my site, I think it has some\nvery nice opportunities in teaching, documenting, and explaining things.\n\nThe docs kinda just jumped right into their mermaid language and really\nwent through that in a lot of depth, and skipped over how to implement\nit yourself, turns out its pretty simple. You  just write mermaid syntax\nin a div with a class of mermaid on it!\n\n``` html\n\u003cscript src='https://unpkg.com/mermaid@8.1.0/dist/mermaid.min.js'\u003e\u003c/script\u003e\n\u003cdiv class='mermaid'\u003e\ngraph TD;\na --\u003e A\nA --\u003e B\nB --\u003e C\n\u003c/div\u003e\n```\n\n\u003e  You  just write mermaid syntax in a div with a class of mermaid on\n\u003e  it!\n\nThe above gets me this diagram.\n\n\u003cscript src='https://unpkg.com/mermaid@8.1.0/dist/mermaid.min.js'\u003e\u003c/script\u003e\n\u003cdiv class='mermaid'\u003e\ngraph TD;\na --\u003e A\nA --\u003e B\nB --\u003e C\n\u003c/div\u003e\n\nThis feels so quick and easy to start getting some graphs up and running, but\ndoes lead to layout shift and extra bytes down the pipe.  The best solution in\nmy opionion would be to forgo the js and ship svg.  That said, this is do dang\nconvenient I will be using it for some things.\n",
      "summary": "Since GitHub started supporting mermaid in their markdown I wanted to take another look at how to implement it on my site, I think it has some very nice...",
      "date_published": "2022-03-03T14:40:01Z",
      "date_modified": "2022-03-03T14:40:01Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "webdev",
        "webdev",
        "webdev"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/bash-mktemp/",
      "url": "https://go.waylonwalker.com/bash-mktemp/",
      "title": "Bash mktemp",
      "content_html": "\u003cp\u003eThere is GNU coreutils command called \u003ccode\u003emktemp\u003c/code\u003e that is super handy in shell\nscripts to make temporary landing spots for files so that they never clash with\nanother instance, and will automatically get cleaned up when you restart, or\nwhenever \u003ccode\u003e/tmp\u003c/code\u003e gets wiped.  I’m not sure when that is, but I don’t expect it\nto be long.\u003c/p\u003e\n\u003ch2 id=\"making-temp-directories\"\u003eMaking temp directories \u003ca href=\"#making-temp-directories\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eHere are some examples of making temp directories in different places, my\nfavorite is \u003ccode\u003emktemp -dt mytemp-XXXXXX\u003c/code\u003e.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# makes a temporary directory in /tmp/ with the defaul template tmp.XXXXXXXXXX\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emktemp\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# makes a temporary directory in your current directory\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emktemp --directory mytemp-XXXXXX\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# shorter version\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emktemp -d mytemp-XXXXXX\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# same thing, but makes a file\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emktemp mytemp-XXXXXX\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# makes a temporary directory in your /tmp/ directory (or what ever you have configured as your TMPDIR)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emktemp --directory --tmpdir mytemp-XXXXXX\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# shorter version\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emktemp -dt mytemp-XXXXXX\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# same thing, but makes a file\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emktemp --tmpdir mytemp-XXXXXX\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# shorter version\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emktemp -t mytemp-XXXXXX\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"use-case\"\u003eUse Case \u003ca href=\"#use-case\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eHere is a sample script that shows how to capture the tempdir as a variable and\nreuse it.  Here is an example of curling my bootstrap file into a temp\ndirectory and running it from that directory.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003elocal\u003c/span\u003e \u003cspan class=\"nv\"\u003etmp\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"sb\"\u003e`\u003c/span\u003emktemp -dt bootstrap-XXXXXX\u003cspan class=\"sb\"\u003e`\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003epushd\u003c/span\u003e \u003cspan class=\"nv\"\u003e$tmp\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecurl https://raw.githubusercontent.com/WaylonWalker/devtainer/main/bootstrap \u0026gt; bootstrap\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ebash bootstrap\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003epopd\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"templates\"\u003eTemplates \u003ca href=\"#templates\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eYou must have at least 3 trailing X’s that mktemp will replace with random\ncharacters.  I played with it for a bit, it kinda allows for some trailing\ncharacters, and will not fill groups of X’s earlier in your template, only the\nlast consecutive string.\u003c/p\u003e\n\u003cp\u003eMy randomm samples I played with.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ewaylonwalker.com on  main \u003cspan class=\"o\"\u003e[\u003c/span\u003e!?\u003cspan class=\"o\"\u003e]\u003c/span\u003e  v3.9.7 \u003cspan class=\"o\"\u003e(\u003c/span\u003ewaylonwalker.com\u003cspan class=\"o\"\u003e)\u003c/span\u003e took 2m24s\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ mktemp myXtemp-XaXbXXXX -dt\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e/tmp/myXtemp-XaXbx9hn\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ewaylonwalker.com on  main \u003cspan class=\"o\"\u003e[\u003c/span\u003e!?\u003cspan class=\"o\"\u003e]\u003c/span\u003e  v3.9.7 \u003cspan class=\"o\"\u003e(\u003c/span\u003ewaylonwalker.com\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ mktemp myXtemp-XaXbXXXXs -dt\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e/tmp/myXtemp-XaXb2tpGs\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ewaylonwalker.com on  main \u003cspan class=\"o\"\u003e[\u003c/span\u003e!?\u003cspan class=\"o\"\u003e]\u003c/span\u003e  v3.9.7 \u003cspan class=\"o\"\u003e(\u003c/span\u003ewaylonwalker.com\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ mktemp myXtemp-XaXbXXcXXs -dt\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emktemp: too few X\u003cspan class=\"s1\"\u003e\u0026#39;s in template ‘myXtemp-XaXbXXcXXs’\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003ewaylonwalker.com on  main [!?]  v3.9.7 (waylonwalker.com)\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e❯ mktemp myXtemp-XaXbXXcXXs -dt\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003ewaylonwalker.com on  main [!?]  v3.9.7 (waylonwalker.com)\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e❯ mktemp myXtemp-XaXbXXXXt -dt\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e/tmp/myXtemp-XaXbe8PWt\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003ewaylonwalker.com on  main [!?]  v3.9.7 (waylonwalker.com)\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e❯ mktemp myXtemp-XXX-you-XXX -dt\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e/tmp/myXtemp-XXX-you-48l\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003ewaylonwalker.com on  main [!?]  v3.9.7 (waylonwalker.com)\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e❯ mktemp myXtemp-XXX-you-XX -dt\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003emktemp: too few X\u0026#39;\u003c/span\u003es in template ‘myXtemp-XXX-you-XX’\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"rtfm\"\u003eRTFM \u003ca href=\"#rtfm\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe man page has good stuff on all the flags that you might need.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eman mktemp\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "There is GNU coreutils command called `mktemp` that is super handy in shell\nscripts to make temporary landing spots for files so that they never clash with\nanother instance, and will automatically get cleaned up when you restart, or\nwhenever `/tmp` gets wiped.  I'm not sure when that is, but I don't expect it\nto be long.\n\n## Making temp directories\n\nHere are some examples of making temp directories in different places, my\nfavorite is `mktemp -dt mytemp-XXXXXX`.\n\n``` bash\n# makes a temporary directory in /tmp/ with the defaul template tmp.XXXXXXXXXX\nmktemp\n\n# makes a temporary directory in your current directory\nmktemp --directory mytemp-XXXXXX\n# shorter version\nmktemp -d mytemp-XXXXXX\n\n# same thing, but makes a file\nmktemp mytemp-XXXXXX\n\n# makes a temporary directory in your /tmp/ directory (or what ever you have configured as your TMPDIR)\nmktemp --directory --tmpdir mytemp-XXXXXX\n# shorter version\nmktemp -dt mytemp-XXXXXX\n\n# same thing, but makes a file\nmktemp --tmpdir mytemp-XXXXXX\n# shorter version\nmktemp -t mytemp-XXXXXX\n```\n\n## Use Case\n\nHere is a sample script that shows how to capture the tempdir as a variable and\nreuse it.  Here is an example of curling my bootstrap file into a temp\ndirectory and running it from that directory.\n\n``` bash\nlocal tmp=`mktemp -dt bootstrap-XXXXXX`\npushd $tmp\ncurl https://raw.githubusercontent.com/WaylonWalker/devtainer/main/bootstrap \u003e bootstrap\nbash bootstrap\npopd\n```\n\n## Templates\n\nYou must have at least 3 trailing X's that mktemp will replace with random\ncharacters.  I played with it for a bit, it kinda allows for some trailing\ncharacters, and will not fill groups of X's earlier in your template, only the\nlast consecutive string.\n\nMy randomm samples I played with.\n\n``` bash\nwaylonwalker.com on  main [!?]  v3.9.7 (waylonwalker.com) took 2m24s\n❯ mktemp myXtemp-XaXbXXXX -dt\n/tmp/myXtemp-XaXbx9hn\n\nwaylonwalker.com on  main [!?]  v3.9.7 (waylonwalker.com)\n❯ mktemp myXtemp-XaXbXXXXs -dt\n/tmp/myXtemp-XaXb2tpGs\n\nwaylonwalker.com on  main [!?]  v3.9.7 (waylonwalker.com)\n❯ mktemp myXtemp-XaXbXXcXXs -dt\nmktemp: too few X's in template ‘myXtemp-XaXbXXcXXs’\n\nwaylonwalker.com on  main [!?]  v3.9.7 (waylonwalker.com)\n❯ mktemp myXtemp-XaXbXXcXXs -dt\n\nwaylonwalker.com on  main [!?]  v3.9.7 (waylonwalker.com)\n❯ mktemp myXtemp-XaXbXXXXt -dt\n/tmp/myXtemp-XaXbe8PWt\n\nwaylonwalker.com on  main [!?]  v3.9.7 (waylonwalker.com)\n❯ mktemp myXtemp-XXX-you-XXX -dt\n/tmp/myXtemp-XXX-you-48l\n\nwaylonwalker.com on  main [!?]  v3.9.7 (waylonwalker.com)\n❯ mktemp myXtemp-XXX-you-XX -dt\nmktemp: too few X's in template ‘myXtemp-XXX-you-XX’\n```\n\n## RTFM\n\nThe man page has good stuff on all the flags that you might need.\n``` bash\nman mktemp\n```\n",
      "summary": "There is GNU coreutils command called that is super handy in shell scripts to make temporary landing spots for files so that they never clash with another...",
      "date_published": "2022-03-02T14:52:08Z",
      "date_modified": "2022-03-02T14:52:08Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "bash",
        "cli",
        "linux"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/git-recover-checkout/",
      "url": "https://go.waylonwalker.com/git-recover-checkout/",
      "title": "Recover a lost git branch with checkout",
      "content_html": "\u003cp\u003eOnce you give a branch the big D (\u003ccode\u003egit branch -D mybranch\u003c/code\u003e) its gone,\nits lost from your history.  It’s completely removed from your log.\nThere will be no reference to these commits, or will there?\u003c/p\u003e\n\u003ch2 id=\"tldr\"\u003eTLDR \u003ca href=\"#tldr\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eCheckout is your savior, all you need is the commit hash.\u003c/p\u003e\n\u003ch2 id=\"immediate-regret\"\u003eImmediate Regret \u003ca href=\"#immediate-regret\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eyour terminal is still open\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eWe have all done this, you give  branch the big D only to realize it was\nthe wrong one.  Don’t worry, not all is lost, this is the easiest to\nrecover from.  When you run the delete command you will see something\nlike this.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ git branch -D new\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eDeleted branch new \u003cspan class=\"o\"\u003e(\u003c/span\u003ewas bc02a64\u003cspan class=\"o\"\u003e)\u003c/span\u003e.\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eNotice the hash is right there is the hash of your commit.  You can use\nthat to get your content back.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit checkout -b bc02a64\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit branch new\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# or in one swoop checkout your new branch at the `start-point` you want\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit checkout -b new bc02a64\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"delayed-reaction\"\u003eDelayed reaction \u003ca href=\"#delayed-reaction\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eyou have closed your terminal\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eIf you have closed your terminal, or have deleted with a gui or\nsomething that does not tell you the hash as you run it, don’t fret, all\nyour work is still there (as long as you have commited).  You just have\nto dig it out.  The reflog contains a list of all \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e operations that\nhave occurred on your git repo, and can be incredibly helpful with this.\u003c/p\u003e\n\u003ch3 id=\"kinda-recent\"\u003eKinda Recent \u003ca href=\"#kinda-recent\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eIf your botched delete operation was recent just diving right into the\nreflog will show it.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ git reflog\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e03a3338 \u003cspan class=\"o\"\u003e(\u003c/span\u003emain\u003cspan class=\"o\"\u003e)\u003c/span\u003e HEAD@\u003cspan class=\"o\"\u003e{\u003c/span\u003e0\u003cspan class=\"o\"\u003e}\u003c/span\u003e: checkout: moving from new to main\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ebc02a64 \u003cspan class=\"o\"\u003e(\u003c/span\u003eHEAD -\u0026gt; another, new\u003cspan class=\"o\"\u003e)\u003c/span\u003e HEAD@\u003cspan class=\"o\"\u003e{\u003c/span\u003e4\u003cspan class=\"o\"\u003e}\u003c/span\u003e: commit: newfile\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e03a3338 \u003cspan class=\"o\"\u003e(\u003c/span\u003emain\u003cspan class=\"o\"\u003e)\u003c/span\u003e HEAD@\u003cspan class=\"o\"\u003e{\u003c/span\u003e2\u003cspan class=\"o\"\u003e}\u003c/span\u003e: checkout: moving from main to new\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003eIn this example, I checked out a branch called new, commited a new\nfile, then switched back to main and deleted new.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eNow That I have the commit hash I can use the same solution to get my\nbranch back.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit checkout -b bc02a64\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit branch new\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# or in one swoop checkout your new branch at the `start-point` you want\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit checkout -b new bc02a64\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"a-lot-has-happened-since-then\"\u003eA lot has happened since then \u003ca href=\"#a-lot-has-happened-since-then\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eIf a lot has happened since then, you are going to need to pull out some\nmore tool to sift through that \u003ccode\u003ereflog\u003c/code\u003e, especially if its a big one.\nThe first suggestion that I have is to pipe into grep and look for\ncommit messages, or the name of the branch.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ git reflog \u003cspan class=\"p\"\u003e|\u003c/span\u003e grep \u003cspan class=\"s2\"\u003e\u0026#34;moving from\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e03a3338 HEAD@\u003cspan class=\"o\"\u003e{\u003c/span\u003e1\u003cspan class=\"o\"\u003e}\u003c/span\u003e: checkout: moving from main to branch/oops\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e03a3338 HEAD@\u003cspan class=\"o\"\u003e{\u003c/span\u003e2\u003cspan class=\"o\"\u003e}\u003c/span\u003e: checkout: moving from oops to main\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e03a3338 HEAD@\u003cspan class=\"o\"\u003e{\u003c/span\u003e4\u003cspan class=\"o\"\u003e}\u003c/span\u003e: checkout: moving from main to oops\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e03a3338 HEAD@\u003cspan class=\"o\"\u003e{\u003c/span\u003e5\u003cspan class=\"o\"\u003e}\u003c/span\u003e: checkout: moving from another to main\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ebc02a64 HEAD@\u003cspan class=\"o\"\u003e{\u003c/span\u003e6\u003cspan class=\"o\"\u003e}\u003c/span\u003e: checkout: moving from main to another\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e03a3338 HEAD@\u003cspan class=\"o\"\u003e{\u003c/span\u003e7\u003cspan class=\"o\"\u003e}\u003c/span\u003e: checkout: moving from another to main\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ebc02a64 HEAD@\u003cspan class=\"o\"\u003e{\u003c/span\u003e8\u003cspan class=\"o\"\u003e}\u003c/span\u003e: checkout: moving from new to another\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ebc02a64 HEAD@\u003cspan class=\"o\"\u003e{\u003c/span\u003e9\u003cspan class=\"o\"\u003e}\u003c/span\u003e: checkout: moving from bc02a64bbe5683d905e333e8dfcbbb91a5e77549 to new\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ebc02a64 HEAD@\u003cspan class=\"o\"\u003e{\u003c/span\u003e10\u003cspan class=\"o\"\u003e}\u003c/span\u003e: checkout: moving from main to bc02a64bbe56\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e03a3338 HEAD@\u003cspan class=\"o\"\u003e{\u003c/span\u003e11\u003cspan class=\"o\"\u003e}\u003c/span\u003e: checkout: moving from new to main\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e03a3338 HEAD@\u003cspan class=\"o\"\u003e{\u003c/span\u003e13\u003cspan class=\"o\"\u003e}\u003c/span\u003e: checkout: moving from main to new\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e03a3338 HEAD@\u003cspan class=\"o\"\u003e{\u003c/span\u003e14\u003cspan class=\"o\"\u003e}\u003c/span\u003e: checkout: moving from other to main\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e03a3338 HEAD@\u003cspan class=\"o\"\u003e{\u003c/span\u003e18\u003cspan class=\"o\"\u003e}\u003c/span\u003e: checkout: moving from main to other\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003egit has a built in \u003ccode\u003e--grep\u003c/code\u003e flag, but I don’t think there is a way to\nfilter by branch name, regardless it still is helpful.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ git reflog --grep new\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ebc02a64 \u003cspan class=\"o\"\u003e(\u003c/span\u003eHEAD -\u0026gt; another, new\u003cspan class=\"o\"\u003e)\u003c/span\u003e HEAD@\u003cspan class=\"o\"\u003e{\u003c/span\u003e4\u003cspan class=\"o\"\u003e}\u003c/span\u003e: commit: newfile\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eMaybe if you can remember a filename you can pass in \u003ccode\u003e-- \u0026lt;filename\u0026gt;\u003c/code\u003e.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit reflog -- readme.md\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"rtfm\"\u003eRTFM \u003ca href=\"#rtfm\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThere are many other ways to slice up a git log, and reflog alike. check\nout \u003ccode\u003eman git log\u003c/code\u003e for some more flags.\u003c/p\u003e\n",
      "content_text": "\nOnce you give a branch the big D (`git branch -D mybranch`) its gone,\nits lost from your history.  It's completely removed from your log.\nThere will be no reference to these commits, or will there?\n\n## TLDR\n\nCheckout is your savior, all you need is the commit hash.\n\n## Immediate Regret\n_your terminal is still open_\n\nWe have all done this, you give  branch the big D only to realize it was\nthe wrong one.  Don't worry, not all is lost, this is the easiest to\nrecover from.  When you run the delete command you will see something\nlike this.\n\n\n``` bash\n❯ git branch -D new\nDeleted branch new (was bc02a64).\n```\n\nNotice the hash is right there is the hash of your commit.  You can use\nthat to get your content back.\n\n``` bash\ngit checkout -b bc02a64\ngit branch new\n\n# or in one swoop checkout your new branch at the `start-point` you want\ngit checkout -b new bc02a64\n```\n\n## Delayed reaction\n_you have closed your terminal_\n\nIf you have closed your terminal, or have deleted with a gui or\nsomething that does not tell you the hash as you run it, don't fret, all\nyour work is still there (as long as you have commited).  You just have\nto dig it out.  The reflog contains a list of all git operations that\nhave occurred on your git repo, and can be incredibly helpful with this.\n\n### Kinda Recent\n\nIf your botched delete operation was recent just diving right into the\nreflog will show it.\n\n``` bash\n❯ git reflog\n03a3338 (main) HEAD@{0}: checkout: moving from new to main\nbc02a64 (HEAD -\u003e another, new) HEAD@{4}: commit: newfile\n03a3338 (main) HEAD@{2}: checkout: moving from main to new\n```\n\n\u003e In this example, I checked out a branch called new, commited a new\n\u003e file, then switched back to main and deleted new.\n\nNow That I have the commit hash I can use the same solution to get my\nbranch back.\n\n``` bash\ngit checkout -b bc02a64\ngit branch new\n\n# or in one swoop checkout your new branch at the `start-point` you want\ngit checkout -b new bc02a64\n```\n\n### A lot has happened since then\n\nIf a lot has happened since then, you are going to need to pull out some\nmore tool to sift through that `reflog`, especially if its a big one.\nThe first suggestion that I have is to pipe into grep and look for\ncommit messages, or the name of the branch.\n\n\n``` bash\n❯ git reflog | grep \"moving from\"\n03a3338 HEAD@{1}: checkout: moving from main to branch/oops\n03a3338 HEAD@{2}: checkout: moving from oops to main\n03a3338 HEAD@{4}: checkout: moving from main to oops\n03a3338 HEAD@{5}: checkout: moving from another to main\nbc02a64 HEAD@{6}: checkout: moving from main to another\n03a3338 HEAD@{7}: checkout: moving from another to main\nbc02a64 HEAD@{8}: checkout: moving from new to another\nbc02a64 HEAD@{9}: checkout: moving from bc02a64bbe5683d905e333e8dfcbbb91a5e77549 to new\nbc02a64 HEAD@{10}: checkout: moving from main to bc02a64bbe56\n03a3338 HEAD@{11}: checkout: moving from new to main\n03a3338 HEAD@{13}: checkout: moving from main to new\n03a3338 HEAD@{14}: checkout: moving from other to main\n03a3338 HEAD@{18}: checkout: moving from main to other\n```\n\ngit has a built in `--grep` flag, but I don't think there is a way to\nfilter by branch name, regardless it still is helpful.\n\n``` bash\n❯ git reflog --grep new\nbc02a64 (HEAD -\u003e another, new) HEAD@{4}: commit: newfile\n```\n\nMaybe if you can remember a filename you can pass in `-- \u003cfilename\u003e`.\n\n``` bash\ngit reflog -- readme.md\n```\n\n## RTFM\n\nThere are many other ways to slice up a git log, and reflog alike. check\nout `man git log` for some more flags.\n",
      "summary": "Once you give a branch the big D () its gone, its lost from your history. It's completely removed from your log. There will be no reference to these commits,...",
      "date_published": "2022-03-01T14:34:01Z",
      "date_modified": "2022-03-01T14:34:01Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "git",
        "linux",
        "cli"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/git-find-deleted-files/",
      "url": "https://go.waylonwalker.com/git-find-deleted-files/",
      "title": "git find deleted files",
      "content_html": "\u003cp\u003eIt’s nearly impossible to completely loose a file if it is commited to \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e.\nIt’s  likely harder to fully remove the file than it is to recover it, but how\ndo we go about recovering those precious files that we have lost.\u003c/p\u003e\n\u003cp\u003eListing all the deleted files in all of git history can be done by\ncombining \u003ccode\u003egit log\u003c/code\u003e with \u003ccode\u003e--diff-filter\u003c/code\u003e.  The log gives you lots of\noptions to show different bits of information about the commit that\nhappened at that point.  It’s even possible to get a completely clean\nlist of files that are in your git history but have been deleted.\u003c/p\u003e\n\u003ch2 id=\"git-log---diff-filter\"\u003egit log –diff-filter \u003ca href=\"#git-log---diff-filter\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThese various commands will show all files that were ever deleted on\nyour current branch.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# This one includes the date, commit hash, and Author\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit log --diff-filter D\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# this one could be a git alias, but includes empty lines\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit log --diff-filter D --pretty\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;format:\u0026#34;\u003c/span\u003e --name-only\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# this one has the empty lines cleaned up\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit log --diff-filter D --pretty\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;format:\u0026#34;\u003c/span\u003e --name-only \u003cspan class=\"p\"\u003e|\u003c/span\u003e sed \u003cspan class=\"s1\"\u003e\u0026#39;/^$/d\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003ca href=\"/git-diff-filter/\" class=\"wikilink\" data-title=\"git diff-filter\" data-description=\"Git commands such as , , all take a flag called . This can filter for only certain types of diffs, such as added (A), modified (M), or deleted (D).\" data-date=\"2022-02-27\" data-preview=\"Git commands such as , , all take a flag called . This can filter for only certain types of diffs, such as added (A), modified (M), or deleted (D).\"\u003egit diff-filter\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"git-reflog---diff-filter\"\u003egit reflog –diff-filter \u003ca href=\"#git-reflog---diff-filter\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe reflog can be super powerful in finding lost files here, as it only\ncares about git operations, not just the current branch.  It will search\naccross all branches for deleted files and report them.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# This one includes the commit hash, branch, tag, and commit message\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit reflog --diff-filter D\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# You might want to at least add the filename\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit reflog --diff-filter D --name-only\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# this one could be a git alias, but includes empty lines\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit reflog --diff-filter D --pretty\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;format:\u0026#34;\u003c/span\u003e --name-only\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# this one has the empty lines cleaned up\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit reflog --diff-filter D --pretty\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;format:\u0026#34;\u003c/span\u003e --name-only \u003cspan class=\"p\"\u003e|\u003c/span\u003e sed \u003cspan class=\"s1\"\u003e\u0026#39;/^$/d\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"get-the-last-commit-from-a-file\"\u003eget the last commit from a file \u003ca href=\"#get-the-last-commit-from-a-file\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit log -n \u003cspan class=\"m\"\u003e1\u003c/span\u003e --pretty\u003cspan class=\"o\"\u003e=\u003c/span\u003eformat:%H -- file\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eIf you want dont like how the output looks or you want your default pager to be\ndifferent you can configure the default pager see \u003ca href=\"/git-pager/\" class=\"wikilink\" data-title=\"Set Your Git Pager Config\" data-description=\"Setting up your git pager to your liking can help you navigate diffs and logs much more efficiently. You can set it to whatever pager you like so that your...\" data-date=\"2022-03-16\" data-preview=\"Setting up your git pager to your liking can help you navigate diffs and logs much more efficiently. You can set it to whatever pager you like so that your...\"\u003eSet Your Git Pager Config\u003c/a\u003e.\u003c/p\u003e\n",
      "content_text": "\nIt's nearly impossible to completely loose a file if it is commited to git.\nIt's  likely harder to fully remove the file than it is to recover it, but how\ndo we go about recovering those precious files that we have lost.\n\nListing all the deleted files in all of git history can be done by\ncombining `git log` with `--diff-filter`.  The log gives you lots of\noptions to show different bits of information about the commit that\nhappened at that point.  It's even possible to get a completely clean\nlist of files that are in your git history but have been deleted.\n\n## git log --diff-filter\n\nThese various commands will show all files that were ever deleted on\nyour current branch.\n\n``` bash\n# This one includes the date, commit hash, and Author\ngit log --diff-filter D\n\n# this one could be a git alias, but includes empty lines\ngit log --diff-filter D --pretty=\"format:\" --name-only\n\n# this one has the empty lines cleaned up\ngit log --diff-filter D --pretty=\"format:\" --name-only | sed '/^$/d'\n```\n\n\u003ca href=\"/git-diff-filter/\" class=\"wikilink\" data-title=\"git diff-filter\" data-description=\"Git commands such as , , all take a flag called . This can filter for only certain types of diffs, such as added (A), modified (M), or deleted (D).\" data-date=\"2022-02-27\"\u003egit diff-filter\u003c/a\u003e\n\n## git reflog --diff-filter\n\nThe reflog can be super powerful in finding lost files here, as it only\ncares about git operations, not just the current branch.  It will search\naccross all branches for deleted files and report them.\n\n``` bash\n# This one includes the commit hash, branch, tag, and commit message\ngit reflog --diff-filter D\n\n# You might want to at least add the filename\ngit reflog --diff-filter D --name-only\n\n# this one could be a git alias, but includes empty lines\ngit reflog --diff-filter D --pretty=\"format:\" --name-only\n\n# this one has the empty lines cleaned up\ngit reflog --diff-filter D --pretty=\"format:\" --name-only | sed '/^$/d'\n```\n\n## get the last commit from a file\n\n``` bash\ngit log -n 1 --pretty=format:%H -- file\n```\n\nIf you want dont like how the output looks or you want your default pager to be\ndifferent you can configure the default pager see \u003ca href=\"/git-pager/\" class=\"wikilink\" data-title=\"Set Your Git Pager Config\" data-description=\"Setting up your git pager to your liking can help you navigate diffs and logs much more efficiently. You can set it to whatever pager you like so that your...\" data-date=\"2022-03-16\"\u003eSet Your Git Pager Config\u003c/a\u003e.\n",
      "summary": "It's nearly impossible to completely loose a file if it is commited to git. It's likely harder to fully remove the file than it is to recover it, but how do...",
      "date_published": "2022-02-28T16:45:19Z",
      "date_modified": "2022-02-28T16:45:19Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "git"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/git-diff-filter/",
      "url": "https://go.waylonwalker.com/git-diff-filter/",
      "title": "git diff-filter",
      "content_html": "\u003cp\u003e\u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003eGit\u003c/a\u003e commands such as \u003ccode\u003ediff\u003c/code\u003e, \u003ccode\u003elog\u003c/code\u003e, \u003ccode\u003ewhatchanged\u003c/code\u003e all take a flag called\n\u003ccode\u003e--diff-filter\u003c/code\u003e.  This can filter for only certain types of diffs, such\nas added (A), modified (M), or deleted (D).\u003c/p\u003e\n\u003ch2 id=\"man-page\"\u003eMan page \u003ca href=\"#man-page\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eYou can find the full description by searching for \u003ccode\u003e--diff-filter\u003c/code\u003e in\nthe \u003ccode\u003eman git diff\u003c/code\u003e page.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e--diff-filter\u003cspan class=\"o\"\u003e=[(\u003c/span\u003eA\u003cspan class=\"p\"\u003e|\u003c/span\u003eC\u003cspan class=\"p\"\u003e|\u003c/span\u003eD\u003cspan class=\"p\"\u003e|\u003c/span\u003eM\u003cspan class=\"p\"\u003e|\u003c/span\u003eR\u003cspan class=\"p\"\u003e|\u003c/span\u003eT\u003cspan class=\"p\"\u003e|\u003c/span\u003eU\u003cspan class=\"p\"\u003e|\u003c/span\u003eX\u003cspan class=\"p\"\u003e|\u003c/span\u003eB\u003cspan class=\"o\"\u003e)\u003c/span\u003e...\u003cspan class=\"o\"\u003e[\u003c/span\u003e*\u003cspan class=\"o\"\u003e]]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    Select only files that are Added \u003cspan class=\"o\"\u003e(\u003c/span\u003eA\u003cspan class=\"o\"\u003e)\u003c/span\u003e, Copied \u003cspan class=\"o\"\u003e(\u003c/span\u003eC\u003cspan class=\"o\"\u003e)\u003c/span\u003e, Deleted \u003cspan class=\"o\"\u003e(\u003c/span\u003eD\u003cspan class=\"o\"\u003e)\u003c/span\u003e, Modified \u003cspan class=\"o\"\u003e(\u003c/span\u003eM\u003cspan class=\"o\"\u003e)\u003c/span\u003e, Renamed \u003cspan class=\"o\"\u003e(\u003c/span\u003eR\u003cspan class=\"o\"\u003e)\u003c/span\u003e, have their \u003cspan class=\"nb\"\u003etype\u003c/span\u003e \u003cspan class=\"o\"\u003e(\u003c/span\u003ei.e. regular file, symlink, submodule, ...\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    changed \u003cspan class=\"o\"\u003e(\u003c/span\u003eT\u003cspan class=\"o\"\u003e)\u003c/span\u003e, are Unmerged \u003cspan class=\"o\"\u003e(\u003c/span\u003eU\u003cspan class=\"o\"\u003e)\u003c/span\u003e, are Unknown \u003cspan class=\"o\"\u003e(\u003c/span\u003eX\u003cspan class=\"o\"\u003e)\u003c/span\u003e, or have had their pairing Broken \u003cspan class=\"o\"\u003e(\u003c/span\u003eB\u003cspan class=\"o\"\u003e)\u003c/span\u003e. Any combination of the filter characters \u003cspan class=\"o\"\u003e(\u003c/span\u003eincluding none\u003cspan class=\"o\"\u003e)\u003c/span\u003e can be used.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    When * \u003cspan class=\"o\"\u003e(\u003c/span\u003eAll-or-none\u003cspan class=\"o\"\u003e)\u003c/span\u003e is added to the combination, all paths are selected \u003cspan class=\"k\"\u003eif\u003c/span\u003e there is any file that matches other criteria in the comparison\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003eif\u003c/span\u003e there is no\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    file that matches other criteria, nothing is selected.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    Also, these upper-case letters can be downcased to exclude. E.g.  --diff-filter\u003cspan class=\"o\"\u003e=\u003c/span\u003ead excludes added and deleted paths.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    Note that not all diffs can feature all types. For instance, diffs from the index to the working tree can never have Added entries \u003cspan class=\"o\"\u003e(\u003c/span\u003ebecause the \u003cspan class=\"nb\"\u003eset\u003c/span\u003e of paths\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    included in the diff is limited by what is in the index\u003cspan class=\"o\"\u003e)\u003c/span\u003e. Similarly, copied and renamed entries cannot appear \u003cspan class=\"k\"\u003eif\u003c/span\u003e detection \u003cspan class=\"k\"\u003efor\u003c/span\u003e those types is disabled.\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"try-it-out\"\u003eTry it out \u003ca href=\"#try-it-out\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eOpen up a git repo and play around with this, here are some example that\nI played with that seemed useful to me.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# find when any files were deleted\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit log --diff-filter D\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# find when all files were added\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit log --diff-filter A\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# only one specific file\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit log --diff-filter A -- readme.md\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# partial match to a single file\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit log --diff-filter A -- read*\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Find when all python files were added\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit log --diff-filter A -- *.py\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nGit commands such as `diff`, `log`, `whatchanged` all take a flag called\n`--diff-filter`.  This can filter for only certain types of diffs, such\nas added (A), modified (M), or deleted (D).\n\n## Man page\n\nYou can find the full description by searching for `--diff-filter` in\nthe `man git diff` page.\n\n``` bash\n--diff-filter=[(A|C|D|M|R|T|U|X|B)...[*]]\n    Select only files that are Added (A), Copied (C), Deleted (D), Modified (M), Renamed (R), have their type (i.e. regular file, symlink, submodule, ...)\n    changed (T), are Unmerged (U), are Unknown (X), or have had their pairing Broken (B). Any combination of the filter characters (including none) can be used.\n    When * (All-or-none) is added to the combination, all paths are selected if there is any file that matches other criteria in the comparison; if there is no\n    file that matches other criteria, nothing is selected.\n\n    Also, these upper-case letters can be downcased to exclude. E.g.  --diff-filter=ad excludes added and deleted paths.\n\n    Note that not all diffs can feature all types. For instance, diffs from the index to the working tree can never have Added entries (because the set of paths\n    included in the diff is limited by what is in the index). Similarly, copied and renamed entries cannot appear if detection for those types is disabled.\n```\n\n## Try it out\n\nOpen up a git repo and play around with this, here are some example that\nI played with that seemed useful to me.\n\n``` bash\n# find when any files were deleted\ngit log --diff-filter D\n\n# find when all files were added\ngit log --diff-filter A\n\n# only one specific file\ngit log --diff-filter A -- readme.md\n\n# partial match to a single file\ngit log --diff-filter A -- read*\n\n# Find when all python files were added\ngit log --diff-filter A -- *.py\n```\n",
      "summary": "Git commands such as , , all take a flag called . This can filter for only certain types of diffs, such as added (A), modified (M), or deleted (D).",
      "date_published": "2022-02-27T16:34:31Z",
      "date_modified": "2022-02-27T16:34:31Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "git"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/textual-popup-hack/",
      "url": "https://go.waylonwalker.com/textual-popup-hack/",
      "title": "Textual Popup Hack",
      "content_html": "\u003cp\u003eAs I am toying around with textual, I am wanting some popup user input\nto take over.  Textual is still pretty new and likely to change quite\nsignificantly, so I don’t want to overdo the work I put into it, So for\nnow on my personal tuis I am going to shell out to tmux.\u003c/p\u003e\n\u003ch2 id=\"the-problem\"\u003eThe Problem \u003ca href=\"#the-problem\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe main issue is that when you are in a textual app, it kinda owns the\ninput.  So if you try to run another python function that calls for\n\u003ccode\u003einput\u003c/code\u003e it just cant get there.  There is a\n\u003ca href=\"https://github.com/sirfuzzalot/textual-inputs\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003etextual-inputs\u003c/a\u003e library\nthat covers this, and it might work really well for some use cases, but\nmany of my use cases have been for things that are pre-built like\ncopier, and I am trying to throw something together quick.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003etextual is still very beta\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003ePart of this comes down to the fact that textual is still very beta and\nlikely to change a lot, so all of the work I have done with it is for\nquick and dirty, or fun side projects.\u003c/p\u003e\n\u003ch2 id=\"the-solution\"\u003eThe Solution \u003ca href=\"#the-solution\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eSo the solution that was easiest for me… shell out to a tmux popup.\nThe application I am working on wants to create new documents using\ncopier templates.  copier has a fantastic cli that walks throught he\ntemplate variables and asks the user to fill them in, so I just shell\nout to that with \u003ccode\u003ePopen\u003c/code\u003e.  Make sure that you wait for this process to\nfinish otherwise there will be bit of jank in your textual app.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003easync\u003c/span\u003e \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003eaction_new_post\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u0026gt;\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003eproc\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003esubprocess\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ePopen\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s1\"\u003e\u0026#39;tmux popup \u0026#34;copier copy plugins/todo-template tasks\u0026#34;\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eshell\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"kc\"\u003eTrue\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003eproc\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ewait\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"example\"\u003eexample \u003ca href=\"#example\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eHere is what the running todo application looks like with the copier\npopup over it.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://images.waylonwalker.com/textual-popup-hack.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://images.waylonwalker.com/textual-popup-hack.png\" alt=\"example of the popup running over textual\"/ data-glightbox=\"description: example of the popup running over textual\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003e\u003ca href=\"/tmux-popups/\" class=\"wikilink\" data-title=\"tmux popups\" data-description=\"https://youtu.be/2I8fB28zfB4\" data-date=\"2021-07-14\" data-preview=\"https://youtu.be/2I8fB28zfB4\"\u003etmux popups\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ea bit more on tmux-popus [here] \u003ca href=\"https://waylonwalker.com/tmux-popups/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://waylonwalker.com/tmux-popups/\u003c/a\u003e)\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"links\"\u003eLinks \u003ca href=\"#links\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003etextual repo\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sirfuzzalot/textual-inputs\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003etextual-inputs repo\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://waylonwalker.com/tmux-popups/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003emy article on tmux popups\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\nAs I am toying around with textual, I am wanting some popup user input\nto take over.  Textual is still pretty new and likely to change quite\nsignificantly, so I don't want to overdo the work I put into it, So for\nnow on my personal tuis I am going to shell out to tmux.\n\n## The Problem\n\nThe main issue is that when you are in a textual app, it kinda owns the\ninput.  So if you try to run another python function that calls for\n`input` it just cant get there.  There is a\n[textual-inputs](https://github.com/sirfuzzalot/textual-inputs) library\nthat covers this, and it might work really well for some use cases, but\nmany of my use cases have been for things that are pre-built like\ncopier, and I am trying to throw something together quick.\n\n\u003e textual is still very beta\n\nPart of this comes down to the fact that textual is still very beta and\nlikely to change a lot, so all of the work I have done with it is for\nquick and dirty, or fun side projects.\n\n## The Solution\n\nSo the solution that was easiest for me... shell out to a tmux popup.\nThe application I am working on wants to create new documents using\ncopier templates.  copier has a fantastic cli that walks throught he\ntemplate variables and asks the user to fill them in, so I just shell\nout to that with `Popen`.  Make sure that you wait for this process to\nfinish otherwise there will be bit of jank in your textual app.\n\n``` python\nasync def action_new_post(self) -\u003e None:\n    proc = subprocess.Popen(\n        'tmux popup \"copier copy plugins/todo-template tasks\"', shell=True\n    )\n    proc.wait()\n```\n\n## example\n\nHere is what the running todo application looks like with the copier\npopup over it.\n\n![example of the popup running over textual](https://images.waylonwalker.com/textual-popup-hack.png)\n\n\u003ca href=\"/tmux-popups/\" class=\"wikilink\" data-title=\"tmux popups\" data-description=\"https://youtu.be/2I8fB28zfB4\" data-date=\"2021-07-14\"\u003etmux popups\u003c/a\u003e\n\n\u003e a bit more on tmux-popus [here] \u003chttps://waylonwalker.com/tmux-popups/\u003e)\n\n## Links\n\n* [textual repo](https://github.com/Textualize/textual/)\n* [textual-inputs repo](https://github.com/sirfuzzalot/textual-inputs)\n* [my article on tmux popups](https://waylonwalker.com/tmux-popups/)\n",
      "summary": "As I am toying around with textual, I am wanting some popup user input to take over. Textual is still pretty new and likely to change quite significantly, so...",
      "date_published": "2022-02-26T15:41:12Z",
      "date_modified": "2022-02-26T15:41:12Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "cli",
        "tmux"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/install-obs-flatpak/",
      "url": "https://go.waylonwalker.com/install-obs-flatpak/",
      "title": "Install obs flatpak",
      "content_html": "\u003cp\u003eBig announcement recently that obs studio now builds out to a flatpak,\nhopefully making it easier for all of us to install, especially us near\nnormies that don’t regularly compile anything from source.\u003c/p\u003e\n\u003ch2 id=\"install-flatpak\"\u003einstall flatpak \u003ca href=\"#install-flatpak\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI did not have flatpak installed so the first thing I had to do was get\nthe \u003ccode\u003eflatpak\u003c/code\u003e command installed, and add their default repo.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo apt install flatpak\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eflatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eOnce I had flatpak, I was able to get obs installed with the following\ncommand.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eflatpak install flathub com.obsproject.Studio\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eOnce Installed it fired right up for me with the next command they\nsuggested.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eflatpak run com.obsproject.Studio\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"it-works\"\u003eIt Works \u003ca href=\"#it-works\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003ePretty straightforward, following the instructions given it all worked\nfor me, but it was missing a lot of the plugins that the current snap\npackage I am using gives me (namely virtual webcam).  So I am not ready\nto jump onto it until I figure out how to manage my own obs plugins.\nFor now I think the snap is working just well enough.\u003c/p\u003e\n\u003ch2 id=\"links\"\u003eLinks \u003ca href=\"#links\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://flatpak.org/setup/Ubuntu\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/flatpak.org.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/flatpak.org.ico\" class=\"has-avatar  has-avatar-before\"\u003eflatpak setup for ubuntu\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/obsproject/obs-studio/releases/tag/27.2.0\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eobs release notes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://flathub.org/apps/details/com.obsproject.Studio\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/flathub.org.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/flathub.org.png\" class=\"has-avatar  has-avatar-before\"\u003eobs flatpak\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\nBig announcement recently that obs studio now builds out to a flatpak,\nhopefully making it easier for all of us to install, especially us near\nnormies that don't regularly compile anything from source.\n\n## install flatpak\n\nI did not have flatpak installed so the first thing I had to do was get\nthe `flatpak` command installed, and add their default repo.\n\n``` bash\nsudo apt install flatpak\nflatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo\n```\n\nOnce I had flatpak, I was able to get obs installed with the following\ncommand.\n\n``` bash\nflatpak install flathub com.obsproject.Studio\n```\n\nOnce Installed it fired right up for me with the next command they\nsuggested.\n\n``` bash\nflatpak run com.obsproject.Studio\n```\n\n## It Works\n\nPretty straightforward, following the instructions given it all worked\nfor me, but it was missing a lot of the plugins that the current snap\npackage I am using gives me (namely virtual webcam).  So I am not ready\nto jump onto it until I figure out how to manage my own obs plugins.\nFor now I think the snap is working just well enough.\n\n## Links\n\n* [flatpak setup for ubuntu](https://flatpak.org/setup/Ubuntu)\n* [obs release notes](https://github.com/obsproject/obs-studio/releases/tag/27.2.0)\n* [obs flatpak](https://flathub.org/apps/details/com.obsproject.Studio)\n",
      "summary": "Big announcement recently that obs studio now builds out to a flatpak, hopefully making it easier for all of us to install, especially us near normies that...",
      "date_published": "2022-02-25T02:33:16Z",
      "date_modified": "2022-02-25T02:33:16Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux",
        "linux",
        "linux"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/github-supports-mermaid/",
      "url": "https://go.waylonwalker.com/github-supports-mermaid/",
      "title": "GitHub Markdown now Supports Mermaid Diagrams",
      "content_html": "\u003cp\u003eMermaid diagrams provide a way to display graphs defined as plain text.\nSome markdown renderers support this as a plugin.  GitHub now supports\nit.\u003c/p\u003e\n\u003ch2 id=\"example\"\u003eexample \u003ca href=\"#example\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eYou can define nodes like this in mermaid, and GitHub will now render\nthem as a pretty graph diagram.  Its rendered in svg, so its searchable\nwith \u003ccode\u003econtrol f\u003c/code\u003e and everything.\u003c/p\u003e\n\u003cpre class=\"mermaid\"\u003e\ngraph TD;\n      A--\u003eB;\n      A--\u003eC;\n      B--\u003eD;\n      C--\u003eD--\u003eOUT;\n      E--\u003eF--\u003eG--\u003eOUT\n\u003c/pre\u003e\n\u003cp\u003e\u003ca href=\"https://images.waylonwalker.com/example-gh-mermaid.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://images.waylonwalker.com/example-gh-mermaid.png\" alt=\"Here is what the example looks like on\nGitHub\"/ data-glightbox=\"description: Here is what the example looks like on\nGitHub\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"links\"\u003eLinks \u003ca href=\"#links\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.blog/2022-02-14-include-diagrams-markdown-files-mermaid/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.blog.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.blog.png\" class=\"has-avatar  has-avatar-before\"\u003eGitHub support announcement\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://mermaid-js.github.io/mermaid/#/\"\u003emermaid docs\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003cscript type=\"module\"\u003e\n  import mermaid from '/assets/vendor/mermaid/mermaid.esm.min.mjs';\n  const rootStyle = getComputedStyle(document.documentElement);\n  const css = (name, fallback) =\u003e (rootStyle.getPropertyValue(name) || fallback).trim();\n  const isDark = window.matchMedia('(prefers-color-scheme: dark)').matches ||\n    document.documentElement.dataset.theme === 'dark';\n  const accent = css('--color-primary', '#ffcd11');\n  const flowchart = {\n    nodeSpacing: 60,\n    rankSpacing: 90,\n    padding: 12,\n  };\n  const themeCSS = `\n    .label foreignObject \u003e div { padding: 14px 14px 10px; line-height: 1.2; }\n    .nodeLabel { padding: 14px 14px 10px; line-height: 1.2; }\n    * { cursor: pointer; }\n  `;\n  const themeVariables = {\n    background: css('--color-background', '#ffffff'),\n    primaryColor: css('--color-code-bg', '#0a0a0a'),\n    primaryTextColor: css('--color-text', '#1f2937'),\n    primaryBorderColor: accent,\n    lineColor: accent,\n    textColor: css('--color-text', '#1f2937'),\n    nodeBkg: css('--color-code-bg', '#0a0a0a'),\n    nodeBorder: accent,\n    nodeTextColor: css('--color-text', '#1f2937'),\n    fontSize: '16px',\n    nodePadding: 20,\n    nodeTextMargin: 14,\n    clusterBkg: isDark ? css('--color-background', '#0f0f0f') : css('--color-surface', '#f9fafb'),\n    clusterBorder: accent,\n    clusterTextColor: css('--color-text', '#1f2937'),\n    titleColor: css('--color-text', '#1f2937'),\n    edgeLabelBackground: css('--color-code-bg', '#0a0a0a'),\n  };\n\n  const SVG_PAN_ZOOM_CDN = 'https://cdn.jsdelivr.net/npm/svg-pan-zoom@3.6.2/dist/svg-pan-zoom.min.js';\n  let mermaidLightbox = null;\n  let activePanZoom = null;\n\n  // Inject lightbox styles once\n  const injectLightboxStyles = () =\u003e {\n    if (document.getElementById('mermaid-lightbox-css')) return;\n    const style = document.createElement('style');\n    style.id = 'mermaid-lightbox-css';\n    style.textContent = `\n      /* Container fills the GLightbox slide */\n      .mermaid-lightbox-wrap {\n        width: 100%;\n        height: 100%;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        background: transparent;\n        position: relative;\n      }\n      .mermaid-lightbox-wrap svg {\n        width: 100% !important;\n        height: 100% !important;\n        max-width: 100%;\n        max-height: 100%;\n      }\n      /* Hide GLightbox prev/next arrows (single-slide lightbox) */\n      .glightbox-container .gprev,\n      .glightbox-container .gnext {\n        display: none !important;\n      }\n      /* Hide description area that renders as a white box */\n      .glightbox-container .gslide-description,\n      .glightbox-container .gslide-title,\n      .glightbox-container .gdesc-inner,\n      .glightbox-container .gslide-desc {\n        display: none !important;\n      }\n      /* Remove white background from inline slide content */\n      .glightbox-container .gslide-inline {\n        background: transparent !important;\n      }\n      /* Make the inline content area fill the slide */\n      .glightbox-container .ginlined-content {\n        max-width: none !important;\n        max-height: none !important;\n        width: 100%;\n        height: 100%;\n        padding: 0 !important;\n      }\n      /* Remove box-shadow from the media container */\n      .glightbox-container .gslide-media {\n        box-shadow: none !important;\n      }\n      /* Toolbar styling */\n      .mermaid-lightbox-toolbar {\n        position: absolute;\n        top: 8px;\n        right: 8px;\n        z-index: 10;\n        display: flex;\n        gap: 4px;\n      }\n      .mermaid-pz-btn {\n        background: rgba(0,0,0,0.6);\n        color: #fff;\n        border: 1px solid rgba(255,255,255,0.3);\n        border-radius: 4px;\n        padding: 4px 10px;\n        cursor: pointer;\n        font-size: 14px;\n        line-height: 1;\n      }\n      .mermaid-pz-btn:hover {\n        background: rgba(0,0,0,0.8);\n        border-color: rgba(255,255,255,0.6);\n      }\n    `;\n    document.head.appendChild(style);\n  };\n\n  // Lazy-load svg-pan-zoom from CDN, returns a promise\n  const loadSvgPanZoom = () =\u003e {\n    if (typeof svgPanZoom !== 'undefined') return Promise.resolve();\n    return new Promise((resolve, reject) =\u003e {\n      const s = document.createElement('script');\n      s.src = SVG_PAN_ZOOM_CDN;\n      s.onload = resolve;\n      s.onerror = reject;\n      document.head.appendChild(s);\n    });\n  };\n\n  // Initialize svg-pan-zoom on the SVG inside the lightbox.\n  // Retries until the lightbox container has settled dimensions.\n  let _pzRetries = 0;\n  const initPanZoom = () =\u003e {\n    if (activePanZoom) return;\n    const container = document.querySelector('.glightbox-container .gslide.current .mermaid-lightbox-wrap');\n    if (!container) return;\n    const svgEl = container.querySelector('svg');\n    if (!svgEl) return;\n\n    // Ensure the container has layout dimensions before initializing.\n    const cRect = container.getBoundingClientRect();\n    if (cRect.width \u003c 10 || cRect.height \u003c 10) {\n      if (_pzRetries \u003c 20) { _pzRetries++; setTimeout(initPanZoom, 50); }\n      return;\n    }\n\n    // svg-pan-zoom needs a viewBox. Pre-rendered SVGs from mermaid\n    // usually have one; browser-rendered ones may not.\n    if (!svgEl.getAttribute('viewBox')) {\n      let w = parseFloat(svgEl.getAttribute('width'));\n      let h = parseFloat(svgEl.getAttribute('height'));\n      if (!w \u0026\u0026 svgEl.style.maxWidth) w = parseFloat(svgEl.style.maxWidth);\n      if (!w || !h) {\n        const r = svgEl.getBoundingClientRect();\n        if (!w) w = r.width;\n        if (!h) h = r.height;\n      }\n      if (w \u003e 0 \u0026\u0026 h \u003e 0) {\n        svgEl.setAttribute('viewBox', '0 0 ' + w + ' ' + h);\n      } else if (_pzRetries \u003c 20) {\n        _pzRetries++; setTimeout(initPanZoom, 50); return;\n      }\n    }\n    _pzRetries = 0;\n\n    // Clear inline dimensions so SVG can be sized by the container\n    // and svg-pan-zoom can manage transforms.\n    svgEl.removeAttribute('width');\n    svgEl.removeAttribute('height');\n    svgEl.style.cssText = 'width:100%;height:100%;';\n\n    try {\n      activePanZoom = svgPanZoom(svgEl, {\n        zoomEnabled: true,\n        panEnabled: true,\n        controlIconsEnabled: false,\n        fit: true,\n        center: true,\n        contain: false,\n        minZoom: 0.3,\n        maxZoom: 10,\n        zoomScaleSensitivity: 0.3,\n        mouseWheelZoomEnabled: true,\n        preventMouseEventsDefault: true,\n      });\n      // Double-check fit after a frame in case dimensions shifted\n      requestAnimationFrame(() =\u003e {\n        if (!activePanZoom) return;\n        activePanZoom.resize();\n        activePanZoom.fit();\n        activePanZoom.center();\n      });\n    } catch (_) {\n      activePanZoom = null;\n    }\n\n    // Add reset/fit buttons\n    let toolbar = container.querySelector('.mermaid-lightbox-toolbar');\n    if (!toolbar) {\n      toolbar = document.createElement('div');\n      toolbar.className = 'mermaid-lightbox-toolbar';\n      toolbar.innerHTML =\n        '\u003cbutton class=\"mermaid-pz-btn\" data-action=\"fit\" title=\"Fit to view\"\u003eFit\u003c/button\u003e' +\n        '\u003cbutton class=\"mermaid-pz-btn\" data-action=\"zoomin\" title=\"Zoom in\"\u003e+\u003c/button\u003e' +\n        '\u003cbutton class=\"mermaid-pz-btn\" data-action=\"zoomout\" title=\"Zoom out\"\u003e\u0026minus;\u003c/button\u003e';\n      toolbar.addEventListener('click', (ev) =\u003e {\n        const btn = ev.target.closest('[data-action]');\n        if (!btn || !activePanZoom) return;\n        ev.preventDefault();\n        ev.stopPropagation();\n        const action = btn.dataset.action;\n        if (action === 'fit') { activePanZoom.resize(); activePanZoom.fit(); activePanZoom.center(); }\n        else if (action === 'zoomin') { activePanZoom.zoomIn(); }\n        else if (action === 'zoomout') { activePanZoom.zoomOut(); }\n      });\n      container.prepend(toolbar);\n    }\n  };\n\n  // Destroy pan-zoom on lightbox close\n  const destroyPanZoom = () =\u003e {\n    if (activePanZoom) {\n      try { activePanZoom.destroy(); } catch (_) { /* no-op */ }\n      activePanZoom = null;\n    }\n  };\n\n  let _lbRetries = 0;\n  const ensureMermaidLightbox = () =\u003e {\n    const diagrams = document.querySelectorAll('.mermaid svg');\n    if (!diagrams.length) {\n      // Mermaid ESM may still be rendering -- retry up to 2s\n      if (_lbRetries \u003c 20) { _lbRetries++; setTimeout(ensureMermaidLightbox, 100); }\n      return;\n    }\n    _lbRetries = 0;\n    injectLightboxStyles();\n    diagrams.forEach((svg) =\u003e {\n      if (svg.dataset.lightboxBound) return;\n      svg.dataset.lightboxBound = 'true';\n      svg.style.cursor = 'pointer';\n      svg.addEventListener('click', (e) =\u003e {\n        e.preventDefault();\n        e.stopPropagation();\n        const svgHtml = svg.outerHTML;\n        const openLightbox = () =\u003e {\n          if (!mermaidLightbox) {\n            mermaidLightbox = GLightbox({\n              selector: false,\n              openEffect: 'fade',\n              closeEffect: 'fade',\n              zoomable: false,\n              draggable: false,\n              skin: 'clean',\n            });\n            mermaidLightbox.on('slide_after_load', () =\u003e {\n              destroyPanZoom();\n              _pzRetries = 0;\n              loadSvgPanZoom().then(() =\u003e initPanZoom());\n            });\n            mermaidLightbox.on('close', destroyPanZoom);\n          }\n          mermaidLightbox.setElements([{\n            content: '\u003cdiv class=\"mermaid-lightbox-wrap\"\u003e' + svgHtml + '\u003c/div\u003e',\n            width: '90vw',\n            height: '90vh'\n          }]);\n          mermaidLightbox.open();\n          loadSvgPanZoom();\n        };\n        if (typeof GLightbox !== 'undefined') {\n          openLightbox();\n        } else if (window.initGLightbox) {\n          window.initGLightbox();\n          openLightbox();\n        } else {\n          window.addEventListener('glightbox-ready', () =\u003e { openLightbox(); }, { once: true });\n        }\n      });\n    });\n  };\n\n  mermaid.initialize({ startOnLoad: false, theme: 'base', themeVariables, flowchart, themeCSS });\n  window.initMermaid = async () =\u003e {\n    try {\n      await mermaid.run();\n    } catch (e) {\n      console.error('mermaid.run failed:', e);\n    }\n    ensureMermaidLightbox();\n  };\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', () =\u003e window.initMermaid());\n  } else {\n    window.initMermaid();\n  }\n\u003c/script\u003e",
      "content_text": "\nMermaid diagrams provide a way to display graphs defined as plain text.\nSome markdown renderers support this as a plugin.  GitHub now supports\nit.\n\n## example\n\nYou can define nodes like this in mermaid, and GitHub will now render\nthem as a pretty graph diagram.  Its rendered in svg, so its searchable\nwith `control f` and everything.\n\n```mermaid\n  graph TD;\n      A--\u003eB;\n      A--\u003eC;\n      B--\u003eD;\n      C--\u003eD--\u003eOUT;\n      E--\u003eF--\u003eG--\u003eOUT\n```\n\n![Here is what the example looks like on\nGitHub](https://images.waylonwalker.com/example-gh-mermaid.png)\n\n## Links\n\n* [GitHub support announcement](https://github.blog/2022-02-14-include-diagrams-markdown-files-mermaid/)\n* [mermaid docs](https://mermaid-js.github.io/mermaid/#/)\n",
      "summary": "Mermaid diagrams provide a way to display graphs defined as plain text. Some markdown renderers support this as a plugin. GitHub now supports it.",
      "date_published": "2022-02-24T15:22:31Z",
      "date_modified": "2022-02-24T15:22:31Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/git-rebase-root/",
      "url": "https://go.waylonwalker.com/git-rebase-root/",
      "title": "Git rebase to the beginning of time",
      "content_html": "\u003cp\u003e\u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003eGit\u003c/a\u003e has a built in way to rebase all the way back to the beginning of\ntime.  There is no need to scroll through the log to find the first\nhash, or find the total number of commits. Just use \u003ccode\u003e--root\u003c/code\u003e.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit rebase --root\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nGit has a built in way to rebase all the way back to the beginning of\ntime.  There is no need to scroll through the log to find the first\nhash, or find the total number of commits. Just use `--root`.\n\n``` bash\ngit rebase --root\n```\n",
      "summary": "Git has a built in way to rebase all the way back to the beginning of time. There is no need to scroll through the log to find the first hash, or find the...",
      "date_published": "2022-02-23T15:57:37Z",
      "date_modified": "2022-02-23T15:57:37Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "git",
        "cli"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/glances-docker/",
      "url": "https://go.waylonwalker.com/glances-docker/",
      "title": "Glances can watch docker processes",
      "content_html": "\u003cp\u003eGlances is a system monitor with a ton of features, including docker processes.\u003c/p\u003e\n\u003cp\u003eI have started using portainer to look at running docker processes, its a great\nheavy-weight docker process monitor.  glances works as a great lightweight\nmonitor to just give you the essentials, ( Name, Status, CPU%, MEM, /MAX,\nIOR/s, IOW/s, Rx/s, Tx/s, Command)\u003c/p\u003e\n\u003ch2 id=\"install\"\u003einstall \u003ca href=\"#install\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eYou will need to install glances to use the glances webui.  We can still use\n\u003ccode\u003epipx\u003c/code\u003e to manage our \u003ca href=\"/virtual-environment/\" class=\"glossary-term\" title=\"Virtual Environment is term for a sandboxed environment commonly associated with the python programming language. If you are installing any sort of python...\"\u003evirtual environment\u003c/a\u003e for us so that we do not need to do so\nmanually or run the risk of globally installed package dependency hell.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epipx install glances\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epipx inject glances \u003cspan class=\"s2\"\u003e\u0026#34;glances[docker]\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eYou will be presented with this success message.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  injected package glances into venv glances\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edone\u003c/span\u003e! ✨ 🌟 ✨\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"results\"\u003eresults \u003ca href=\"#results\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNow running glances will also show information about your running docker\ncontainers.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://images.waylonwalker.com/glances-docker.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://images.waylonwalker.com/glances-docker.png\" alt=\"running glances with docker installed will show your docker processes\"/ data-glightbox=\"description: running glances with docker installed will show your docker processes\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"links\"\u003eLinks \u003ca href=\"#links\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://glances.readthedocs.io/en/catest/docker.html\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/glances.readthedocs.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/glances.readthedocs.io.ico\" class=\"has-avatar  has-avatar-before\"\u003eglances docker\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://pipx.pypa.io/stable/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/pipx.pypa.io.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/pipx.pypa.io.png\" class=\"has-avatar  has-avatar-before\"\u003epipx\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://nicolargo.github.io/glances/\"\u003ewebsite\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://glances.readthedocs.io/en/latest/index.html\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/glances.readthedocs.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/glances.readthedocs.io.ico\" class=\"has-avatar  has-avatar-before\"\u003edocs\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nicolargo/glances\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003egithub\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\nGlances is a system monitor with a ton of features, including docker processes.\n\nI have started using portainer to look at running docker processes, its a great\nheavy-weight docker process monitor.  glances works as a great lightweight\nmonitor to just give you the essentials, ( Name, Status, CPU%, MEM, /MAX,\nIOR/s, IOW/s, Rx/s, Tx/s, Command)\n\n## install\n\nYou will need to install glances to use the glances webui.  We can still use\n`pipx` to manage our virtual environment for us so that we do not need to do so\nmanually or run the risk of globally installed package dependency hell.\n\n``` bash\npipx install glances\npipx inject glances \"glances[docker]\"\n```\n\nYou will be presented with this success message.\n\n``` bash\n  injected package glances into venv glances\ndone! ✨ 🌟 ✨\n```\n\n## results\n\nNow running glances will also show information about your running docker\ncontainers.\n\n![running glances with docker installed will show your docker processes](https://images.waylonwalker.com/glances-docker.png)\n\n## Links\n\n* [glances docker](https://glances.readthedocs.io/en/catest/docker.html)\n* [pipx](https://pipx.pypa.io/stable/)\n* [website](https://nicolargo.github.io/glances/)\n* [docs](https://glances.readthedocs.io/en/latest/index.html)\n* [github](https://github.com/nicolargo/glances)\n",
      "summary": "Glances is a system monitor with a ton of features, including docker processes.",
      "date_published": "2022-02-22T16:38:42Z",
      "date_modified": "2022-02-22T16:38:42Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/git-revive-dead-files/",
      "url": "https://go.waylonwalker.com/git-revive-dead-files/",
      "title": "Revive files from the dead with git",
      "content_html": "\u003cp\u003e\u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003eGit\u003c/a\u003e reflog can perform some serious magic in reviving your hard work\nfrom the dead if you happen to loose it.\u003c/p\u003e\n\u003ch2 id=\"caveat\"\u003ecaveat \u003ca href=\"#caveat\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eYou must git commit!  If you never commit the file, git cannot help you.\nYou might look into your trashcan, filesystem versions, onedrive, box, dropbox.\nIf you have none of this, then you are probably hosed.\u003c/p\u003e\n\u003ch2 id=\"practice\"\u003epractice \u003ca href=\"#practice\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI really like to practice these techniques before I need to use them so\nthat I understand how they work in a low stakes fashion.  This helps me\nunderstand what I can and cannot do, and how to do it in a place that\ndoes not matter in any way at all.\u003c/p\u003e\n\u003cp\u003eThis is what I did to revive a dropped \u003ccode\u003edocker-compose.yml\u003c/code\u003e file.  The\nidea is that if I can find the commit hash, I can \u003ccode\u003echerry-pick\u003c/code\u003e it.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit init\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003etouch readme.md\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit add readme.md\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit commit -m \u003cspan class=\"s2\"\u003e\u0026#34;add readme\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003etouch docker-compose.yml\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit add docker-compose.yml\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit commit -m \u003cspan class=\"s2\"\u003e\u0026#34;add docker-compose\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit reset 3cfc --hard\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit reflog\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# copy the hash of the commit with my docker-compose commit\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit cherry-pick fd74df3\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"reflog\"\u003ereflog \u003ca href=\"#reflog\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eHere was the final reflog that shows all of my git actions.  \u003cstrong\u003enote\u003c/strong\u003e I\ndid reset twice.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ git reflog --name-only\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e0404b6a \u003cspan class=\"o\"\u003e(\u003c/span\u003eHEAD -\u0026gt; main\u003cspan class=\"o\"\u003e)\u003c/span\u003e HEAD@\u003cspan class=\"o\"\u003e{\u003c/span\u003e0\u003cspan class=\"o\"\u003e}\u003c/span\u003e: cherry-pick: add docker-compose\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edocker-compose.yml\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e3cfcab9 HEAD@\u003cspan class=\"o\"\u003e{\u003c/span\u003e1\u003cspan class=\"o\"\u003e}\u003c/span\u003e: reset: moving to 3cfc\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ereadme.md\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"m\"\u003e9175695\u003c/span\u003e HEAD@\u003cspan class=\"o\"\u003e{\u003c/span\u003e2\u003cspan class=\"o\"\u003e}\u003c/span\u003e: cherry-pick: add docker-compose\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edocker-compose.yml\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e3cfcab9 HEAD@\u003cspan class=\"o\"\u003e{\u003c/span\u003e3\u003cspan class=\"o\"\u003e}\u003c/span\u003e: reset: moving to 3cfc\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ereadme.md\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003efd74df3 HEAD@\u003cspan class=\"o\"\u003e{\u003c/span\u003e4\u003cspan class=\"o\"\u003e}\u003c/span\u003e: commit: add docker-compose\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edocker-compose.yml\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e3cfcab9 HEAD@\u003cspan class=\"o\"\u003e{\u003c/span\u003e5\u003cspan class=\"o\"\u003e}\u003c/span\u003e: reset: moving to HEAD\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ereadme.md\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e3cfcab9 HEAD@\u003cspan class=\"o\"\u003e{\u003c/span\u003e6\u003cspan class=\"o\"\u003e}\u003c/span\u003e: commit \u003cspan class=\"o\"\u003e(\u003c/span\u003einitial\u003cspan class=\"o\"\u003e)\u003c/span\u003e: add readme\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ereadme.md\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nGit reflog can perform some serious magic in reviving your hard work\nfrom the dead if you happen to loose it.\n\n## caveat\n\nYou must git commit!  If you never commit the file, git cannot help you.\nYou might look into your trashcan, filesystem versions, onedrive, box, dropbox.\nIf you have none of this, then you are probably hosed.\n\n## practice\n\nI really like to practice these techniques before I need to use them so\nthat I understand how they work in a low stakes fashion.  This helps me\nunderstand what I can and cannot do, and how to do it in a place that\ndoes not matter in any way at all.\n\nThis is what I did to revive a dropped `docker-compose.yml` file.  The\nidea is that if I can find the commit hash, I can `cherry-pick` it.\n\n``` bash\ngit init\ntouch readme.md\ngit add readme.md\ngit commit -m \"add readme\"\ntouch docker-compose.yml\ngit add docker-compose.yml\ngit commit -m \"add docker-compose\"\ngit reset 3cfc --hard\ngit reflog\n# copy the hash of the commit with my docker-compose commit\ngit cherry-pick fd74df3\n```\n\n## reflog\n\nHere was the final reflog that shows all of my git actions.  **note** I\ndid reset twice.\n\n``` bash\n❯ git reflog --name-only\n0404b6a (HEAD -\u003e main) HEAD@{0}: cherry-pick: add docker-compose\ndocker-compose.yml\n3cfcab9 HEAD@{1}: reset: moving to 3cfc\nreadme.md\n9175695 HEAD@{2}: cherry-pick: add docker-compose\ndocker-compose.yml\n3cfcab9 HEAD@{3}: reset: moving to 3cfc\nreadme.md\nfd74df3 HEAD@{4}: commit: add docker-compose\ndocker-compose.yml\n3cfcab9 HEAD@{5}: reset: moving to HEAD\nreadme.md\n3cfcab9 HEAD@{6}: commit (initial): add readme\nreadme.md\n```\n",
      "summary": "Git reflog can perform some serious magic in reviving your hard work from the dead if you happen to loose it.",
      "date_published": "2022-02-21T15:44:02Z",
      "date_modified": "2022-02-21T15:44:02Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "git",
        "cli"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/pipx-w/",
      "url": "https://go.waylonwalker.com/pipx-w/",
      "title": "Glances webui with pipx",
      "content_html": "\u003cp\u003eGlances has a pretty incredible webui to view system processes and information\nlike htop, or task manager for windows.\u003c/p\u003e\n\u003cp\u003eThe nice thing about the webui is that it can be accessed from a remote system.\nThis would be super nice on something like a raspberry pi, or a vm running in\nthe cloud.  Its also less intimidating and easier to search if you are not a\nterminal junky.\u003c/p\u003e\n\u003ch2 id=\"install\"\u003einstall \u003ca href=\"#install\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eYou will need to install glances to use the glances webui.  We can still use\n\u003ccode\u003epipx\u003c/code\u003e to manage our \u003ca href=\"/virtual-environment/\" class=\"glossary-term\" title=\"Virtual Environment is term for a sandboxed environment commonly associated with the python programming language. If you are installing any sort of python...\"\u003evirtual environment\u003c/a\u003e for us so that we do not need to do so\nmanually or run the risk of globally installed package dependency hell.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epipx install glances\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epipx inject glances \u003cspan class=\"s2\"\u003e\u0026#34;glances[web]\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eYou will be presented with this success message.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  injected package glances into venv glances\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edone\u003c/span\u003e! ✨ 🌟 ✨\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"running-the-webui\"\u003erunning the webui \u003ca href=\"#running-the-webui\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNow that you have glances installed you can run it with the \u003ccode\u003e-w\u003c/code\u003e flag to run\nthe webui.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eglances -w\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eThis will present you with the following success message.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGlances Web User Interface started on http://0.0.0.0:61208/\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"open-it-in-your-browser\"\u003eOpen it in your browser \u003ca href=\"#open-it-in-your-browser\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNow that its running you can open your web browser to \u003ccode\u003elocalhost:61208\u003c/code\u003e and be\npresented with the glances webui.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://images.waylonwalker.com/glances-w.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://images.waylonwalker.com/glances-w.png\" alt=\"running the glances webui on my system\"/ data-glightbox=\"description: running the glances webui on my system\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"links\"\u003eLinks \u003ca href=\"#links\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://pipx.pypa.io/stable/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/pipx.pypa.io.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/pipx.pypa.io.png\" class=\"has-avatar  has-avatar-before\"\u003epipx\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://nicolargo.github.io/glances/\"\u003ewebsite\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://glances.readthedocs.io/en/latest/index.html\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/glances.readthedocs.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/glances.readthedocs.io.ico\" class=\"has-avatar  has-avatar-before\"\u003edocs\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nicolargo/glances\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003egithub\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\nGlances has a pretty incredible webui to view system processes and information\nlike htop, or task manager for windows.\n\nThe nice thing about the webui is that it can be accessed from a remote system.\nThis would be super nice on something like a raspberry pi, or a vm running in\nthe cloud.  Its also less intimidating and easier to search if you are not a\nterminal junky.\n\n## install\n\nYou will need to install glances to use the glances webui.  We can still use\n`pipx` to manage our virtual environment for us so that we do not need to do so\nmanually or run the risk of globally installed package dependency hell.\n\n``` bash\npipx install glances\npipx inject glances \"glances[web]\"\n```\n\nYou will be presented with this success message.\n\n``` bash\n  injected package glances into venv glances\ndone! ✨ 🌟 ✨\n```\n\n## running the webui\n\nNow that you have glances installed you can run it with the `-w` flag to run\nthe webui.\n\n``` bash\nglances -w\n```\n\nThis will present you with the following success message.\n\n``` bash\nGlances Web User Interface started on http://0.0.0.0:61208/\n```\n\n## Open it in your browser\n\nNow that its running you can open your web browser to `localhost:61208` and be\npresented with the glances webui.\n\n![running the glances webui on my system](https://images.waylonwalker.com/glances-w.png)\n\n## Links\n\n* [pipx](https://pipx.pypa.io/stable/)\n* [website](https://nicolargo.github.io/glances/)\n* [docs](https://glances.readthedocs.io/en/latest/index.html)\n* [github](https://github.com/nicolargo/glances)\n",
      "summary": "Glances has a pretty incredible webui to view system processes and information like htop, or task manager for windows.",
      "date_published": "2022-02-20T16:25:49Z",
      "date_modified": "2022-02-20T16:25:49Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/git-reflog-is-an-alias/",
      "url": "https://go.waylonwalker.com/git-reflog-is-an-alias/",
      "title": "Git reflog is an alias for git log -g",
      "content_html": "\u003cp\u003eRight inside the \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e \u003ca href=\"https://git-scm.com/docs/git-reflog#_description\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/git-scm.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/git-scm.com.ico\" class=\"has-avatar  has-avatar-before\"\u003edocs\u003c/a\u003e,\nis states that the \u003ccode\u003egit reflog\u003c/code\u003e command runs \u003ccode\u003egit reflog show\u003c/code\u003e by default which\nis an alias for \u003ccode\u003egit log -g --abbrev-commit --pretty=oneline\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eThis epiphany deepens my understanding of git, and lets me understand that most\n\u003ccode\u003egit log\u003c/code\u003e flags might also work with \u003ccode\u003egit log -g\u003c/code\u003e.\u003c/p\u003e\n\u003ch2 id=\"full-or-short-format\"\u003efull or short format \u003ca href=\"#full-or-short-format\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eHere are some git commands for you to try out on your own that are all pretty\nsimilar, but vary in how much information they show.\u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"language-stat\"\u003e# These show only first line of the commit message subject, the hash, and index\ngit reflog\ngit log -g --abbrev-commit --pretty=oneline\n\n# similar to git log, this is a fully featured log with author, date, and full\n# commit message\ngit log -g\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2 id=\"add-files\"\u003eadd files \u003ca href=\"#add-files\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIf I am looking for a missing file, I might want to leverage \u003ccode\u003e--name-only\u003c/code\u003e or\n\u003ccode\u003e--stat\u003c/code\u003e, to see where I might have hard reset that file, or deleted it.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003egit reflog --stat\ngit log -g --stat --abbrev-commit --pretty=oneline\n\ngit reflog --name-only\ngit log -g --name-only --abbrev-commit --pretty=oneline\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2 id=\"example\"\u003eexample \u003ca href=\"#example\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eHere is an example where I lost my \u003ccode\u003edocker-compose.yml\u003c/code\u003e file in a git reset,\nand got it back by finding the commit hash with \u003ccode\u003egit reflog\u003c/code\u003e and cherry picked\nit back.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ git reflog --name-only\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e0404b6a \u003cspan class=\"o\"\u003e(\u003c/span\u003eHEAD -\u0026gt; main\u003cspan class=\"o\"\u003e)\u003c/span\u003e HEAD@\u003cspan class=\"o\"\u003e{\u003c/span\u003e0\u003cspan class=\"o\"\u003e}\u003c/span\u003e: cherry-pick: add docker-compose\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edocker-compose.yml\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e3cfcab9 HEAD@\u003cspan class=\"o\"\u003e{\u003c/span\u003e1\u003cspan class=\"o\"\u003e}\u003c/span\u003e: reset: moving to 3cfc\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ereadme.md\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"m\"\u003e9175695\u003c/span\u003e HEAD@\u003cspan class=\"o\"\u003e{\u003c/span\u003e2\u003cspan class=\"o\"\u003e}\u003c/span\u003e: cherry-pick: add docker-compose\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edocker-compose.yml\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e3cfcab9 HEAD@\u003cspan class=\"o\"\u003e{\u003c/span\u003e3\u003cspan class=\"o\"\u003e}\u003c/span\u003e: reset: moving to 3cfc\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ereadme.md\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003efd74df3 HEAD@\u003cspan class=\"o\"\u003e{\u003c/span\u003e4\u003cspan class=\"o\"\u003e}\u003c/span\u003e: commit: add docker-compose\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edocker-compose.yml\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e3cfcab9 HEAD@\u003cspan class=\"o\"\u003e{\u003c/span\u003e5\u003cspan class=\"o\"\u003e}\u003c/span\u003e: reset: moving to HEAD\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ereadme.md\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e3cfcab9 HEAD@\u003cspan class=\"o\"\u003e{\u003c/span\u003e6\u003cspan class=\"o\"\u003e}\u003c/span\u003e: commit \u003cspan class=\"o\"\u003e(\u003c/span\u003einitial\u003cspan class=\"o\"\u003e)\u003c/span\u003e: add readme\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ereadme.md\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eThis just proves that its harder to remove something from git, than it is to\nget it back.  It can feel impossible to get something back, but once its in, it\nfeels even more impossible to get it out.\u003c/p\u003e\n",
      "content_text": "\n\nRight inside the git [docs](https://git-scm.com/docs/git-reflog#_description),\nis states that the `git reflog` command runs `git reflog show` by default which\nis an alias for `git log -g --abbrev-commit --pretty=oneline`\n\nThis epiphany deepens my understanding of git, and lets me understand that most\n`git log` flags might also work with `git log -g`.\n\n\n## full or short format\n\nHere are some git commands for you to try out on your own that are all pretty\nsimilar, but vary in how much information they show.\n\n``` stat\n# These show only first line of the commit message subject, the hash, and index\ngit reflog\ngit log -g --abbrev-commit --pretty=oneline\n\n# similar to git log, this is a fully featured log with author, date, and full\n# commit message\ngit log -g\n```\n\n## add files\n\nIf I am looking for a missing file, I might want to leverage `--name-only` or\n`--stat`, to see where I might have hard reset that file, or deleted it.\n\n```\ngit reflog --stat\ngit log -g --stat --abbrev-commit --pretty=oneline\n\ngit reflog --name-only\ngit log -g --name-only --abbrev-commit --pretty=oneline\n```\n\n## example\n\nHere is an example where I lost my `docker-compose.yml` file in a git reset,\nand got it back by finding the commit hash with `git reflog` and cherry picked\nit back.\n\n``` bash\n❯ git reflog --name-only\n0404b6a (HEAD -\u003e main) HEAD@{0}: cherry-pick: add docker-compose\ndocker-compose.yml\n3cfcab9 HEAD@{1}: reset: moving to 3cfc\nreadme.md\n9175695 HEAD@{2}: cherry-pick: add docker-compose\ndocker-compose.yml\n3cfcab9 HEAD@{3}: reset: moving to 3cfc\nreadme.md\nfd74df3 HEAD@{4}: commit: add docker-compose\ndocker-compose.yml\n3cfcab9 HEAD@{5}: reset: moving to HEAD\nreadme.md\n3cfcab9 HEAD@{6}: commit (initial): add readme\nreadme.md\n```\n\nThis just proves that its harder to remove something from git, than it is to\nget it back.  It can feel impossible to get something back, but once its in, it\nfeels even more impossible to get it out.\n",
      "summary": "Right inside the git docs, is states that the command runs by default which is an alias for",
      "date_published": "2022-02-19T15:02:52Z",
      "date_modified": "2022-02-19T15:02:52Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "git",
        "cli"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/pipx-run-glances/",
      "url": "https://go.waylonwalker.com/pipx-run-glances/",
      "title": "Run glances without install with pipx",
      "content_html": "\u003cp\u003eGlances is a fully featured system monitoring tool written in python.  Out of\nthe box it’s quite similar to htop, but has quite a few more features, and can\nbe ran without installing anything other than \u003ccode\u003epipx\u003c/code\u003e, which you should already\nhave installed if you do anything with python.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epipx run glances\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eOnce you run this you will be in a tui application similar to htop.  You can\nkill processes with k, use left and right arrows to change the sorting column,\nand up and down to select different processes.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://images.waylonwalker.com/pipx-run-glances.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://images.waylonwalker.com/pipx-run-glances.png\" alt=\"running pipx run glances on my ubuntu 21.10 machine inside the kitty terminal\"/ data-glightbox=\"description: running pipx run glances on my ubuntu 21.10 machine inside the kitty terminal\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"links\"\u003eLinks \u003ca href=\"#links\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://pipx.pypa.io/stable/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/pipx.pypa.io.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/pipx.pypa.io.png\" class=\"has-avatar  has-avatar-before\"\u003epipx\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://nicolargo.github.io/glances/\"\u003ewebsite\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://glances.readthedocs.io/en/latest/index.html\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/glances.readthedocs.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/glances.readthedocs.io.ico\" class=\"has-avatar  has-avatar-before\"\u003edocs\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nicolargo/glances\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003egithub\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\nGlances is a fully featured system monitoring tool written in python.  Out of\nthe box it's quite similar to htop, but has quite a few more features, and can\nbe ran without installing anything other than `pipx`, which you should already\nhave installed if you do anything with python.\n\n``` bash\npipx run glances\n```\n\nOnce you run this you will be in a tui application similar to htop.  You can\nkill processes with k, use left and right arrows to change the sorting column,\nand up and down to select different processes.\n\n![running pipx run glances on my ubuntu 21.10 machine inside the kitty terminal](https://images.waylonwalker.com/pipx-run-glances.png)\n\n## Links\n\n* [pipx](https://pipx.pypa.io/stable/)\n* [website](https://nicolargo.github.io/glances/)\n* [docs](https://glances.readthedocs.io/en/latest/index.html)\n* [github](https://github.com/nicolargo/glances)\n",
      "summary": "Glances is a fully featured system monitoring tool written in python. Out of the box it's quite similar to htop, but has quite a few more features, and can...",
      "date_published": "2022-02-18T16:17:26Z",
      "date_modified": "2022-02-18T16:17:26Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/python-nested-requires/",
      "url": "https://go.waylonwalker.com/python-nested-requires/",
      "title": "Nested requirements.txt in python",
      "content_html": "\u003cp\u003epython requirements text files can in fact depend on each other due to\nthe fact that you can pass pip install arguments right into your\n\u003ccode\u003erequirements.txt\u003c/code\u003e file.  The trick is to just prefix the file with a\n\u003ccode\u003e-r\u003c/code\u003e flag, just like you would if you were installing it with \u003ccode\u003epip install\u003c/code\u003e\u003c/p\u003e\n\u003ch2 id=\"try-it-out\"\u003etry it out \u003ca href=\"#try-it-out\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLets create two requirements files in a new directory to play with.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emkdir requirements-nest\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003ecd\u003c/span\u003e requirements-nest\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003etouch requirements.txt requirements_dev.txt\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eThen add the following to each requirements file.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e# requirements.txt\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ekedro[pandas.ParquetDataSet]\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e# requirements_dev.txt\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e-r requirements.txt\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eipython\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"installing\"\u003eInstalling \u003ca href=\"#installing\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eInstalling requirements_dev.txt will install both ipython and pandas\nsince it includes the base requirements file.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# this will install only pandas\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epip install -r requirements.txt\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# this will install both ipython and pandas\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epip install -r requirements_dev.txt\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"links\"\u003eLinks \u003ca href=\"#links\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis is covered in the\n\u003ca href=\"https://pip.pypa.io/en/stable/user_guide/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/pip.pypa.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/pip.pypa.io.ico\" class=\"has-avatar  has-avatar-before\"\u003epip user guide\u003c/a\u003e,\nbut it is not obvious that this can be done in a requirements.txt\nfile.\u003c/p\u003e\n",
      "content_text": "\npython requirements text files can in fact depend on each other due to\nthe fact that you can pass pip install arguments right into your\n`requirements.txt` file.  The trick is to just prefix the file with a\n`-r` flag, just like you would if you were installing it with `pip\ninstall`\n\n## try it out\nLets create two requirements files in a new directory to play with.\n\n``` bash\nmkdir requirements-nest\ncd requirements-nest\ntouch requirements.txt requirements_dev.txt\n```\n\nThen add the following to each requirements file.\n\n``` txt\n# requirements.txt\nkedro[pandas.ParquetDataSet]\n```\n\n```txt\n# requirements_dev.txt\n-r requirements.txt\nipython\n```\n\n## Installing\n\nInstalling requirements_dev.txt will install both ipython and pandas\nsince it includes the base requirements file.\n\n``` bash\n# this will install only pandas\npip install -r requirements.txt\n\n# this will install both ipython and pandas\npip install -r requirements_dev.txt\n```\n\n## Links\n\nThis is covered in the\n[pip user guide](https://pip.pypa.io/en/stable/user_guide/),\nbut it is not obvious that this can be done in a requirements.txt\nfile.\n",
      "summary": "python requirements text files can in fact depend on each other due to the fact that you can pass pip install arguments right into your file. The trick is to...",
      "date_published": "2022-02-17T15:53:20Z",
      "date_modified": "2022-02-17T15:53:20Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/modded-minecraft-in-docker/",
      "url": "https://go.waylonwalker.com/modded-minecraft-in-docker/",
      "title": "Modded Minecraft in Docker",
      "content_html": "\u003cp\u003eIn my adventure to put more \u003ca href=\"/homelab/\" class=\"glossary-term\" title=\"A place to self host applications. For me this is primarily self built web applications, and applications for sharing files with my family. Techno Tim has a...\"\u003ehomelab\u003c/a\u003e in docker, I moved our modded\nminecraft setup to docker.\u003c/p\u003e\n\u003ch2 id=\"getting-mods\"\u003eGetting Mods \u003ca href=\"#getting-mods\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eSo far I have found all of our mods from \u003ca href=\"https://www.curseforge.com/minecraft/mc-mods\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.curseforge.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.curseforge.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ecurse\nforge\u003c/a\u003e.  modpacks make\ngetting multiple mods working together much easier, someone else has\nalready vetted a pack of often times 100+ mods that all play well\ntogether.  I have yet to get these working in docker, I will, but for\nnot I just have individual mods.\u003c/p\u003e\n\u003ch2 id=\"download-file\"\u003edownload file \u003ca href=\"#download-file\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eunder the hood docker is using wget to get the mod. The link you click\non from curseforge will block wget.  What I do is pop open the devtools\n(f12 in chrome), click on the network tab, click the download link on\nthe web page, and watch the real link show up.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://images.waylonwalker.com/minecraft-mod-wget-file.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://images.waylonwalker.com/minecraft-mod-wget-file.png\" alt=\"minecraft mod in netwrok tab\"/ data-glightbox=\"description: minecraft mod in netwrok tab\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"docker-compose\"\u003eDocker-compose \u003ca href=\"#docker-compose\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI am using docker compose, it makes the command much easier to start,\nand all the things needed stored in a file.  I am not using compose to\nrun multiple things, just for the simple start command.\u003c/p\u003e\n\u003cp\u003eCreate a directory for your server and add the following to a\n\u003ccode\u003edocker-compose.yml\u003c/code\u003e file.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003eversion\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;3.8\u0026#34;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003eservices\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003emc\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003econtainer_name\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ewalkercraft\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eimage\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eitzg/minecraft-server\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eports\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e- \u003cspan class=\"m\"\u003e25565\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"m\"\u003e25565\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eenvironment\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003eEULA\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;TRUE\u0026#34;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003eTYPE\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;FORGE\u0026#34;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003eVERSION\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"m\"\u003e1.16.5\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003eMODS_FILE\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003e/extras/mods.txt\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003eREMOVE_OLD_MODS\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;true\u0026#34;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003etty\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"kc\"\u003etrue\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003estdin_open\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"kc\"\u003etrue\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003erestart\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eunless-stopped\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eports\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e- \u003cspan class=\"m\"\u003e25565\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"m\"\u003e25565\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003evolumes\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e- \u003cspan class=\"l\"\u003e./minecraft-data:/data\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e- \u003cspan class=\"l\"\u003e./mods.txt:/extras/mods.txt:ro\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003evolumes\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003edata\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"modstxt\"\u003emods.txt \u003ca href=\"#modstxt\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eOnce you have your mod file link from the network tab add them to a\nmods.txt file next to your docker-compose file.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ehttps://media.forgecdn.net/files/3620/189/engineersdecor-1.16.5-1.1.16.jar\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"start-your-server\"\u003estart your server \u003ca href=\"#start-your-server\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eOnce you have made it this far starting the server is pretty simple.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edocker compose up -d\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"kill-your-server\"\u003ekill your server \u003ca href=\"#kill-your-server\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIf your still in the same directory, taking down the server should be\npretty easy as well.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edocker compose down\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# if that does not work you can kill it\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edocker ps\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# copy the id of your container\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edocker \u003cspan class=\"nb\"\u003ekill\u003c/span\u003e \u0026lt;id\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nIn my adventure to put more homelab in docker, I moved our modded\nminecraft setup to docker.\n\n## Getting Mods\n\nSo far I have found all of our mods from [curse\nforge](https://www.curseforge.com/minecraft/mc-mods).  modpacks make\ngetting multiple mods working together much easier, someone else has\nalready vetted a pack of often times 100+ mods that all play well\ntogether.  I have yet to get these working in docker, I will, but for\nnot I just have individual mods.\n\n## download file\n\nunder the hood docker is using wget to get the mod. The link you click\non from curseforge will block wget.  What I do is pop open the devtools\n(f12 in chrome), click on the network tab, click the download link on\nthe web page, and watch the real link show up.\n\n![minecraft mod in netwrok tab](https://images.waylonwalker.com/minecraft-mod-wget-file.png)\n\n## Docker-compose\n\nI am using docker compose, it makes the command much easier to start,\nand all the things needed stored in a file.  I am not using compose to\nrun multiple things, just for the simple start command.\n\nCreate a directory for your server and add the following to a\n`docker-compose.yml` file.\n\n``` yaml\nversion: \"3.8\"\n\nservices:\n  mc:\n    container_name: walkercraft\n    image: itzg/minecraft-server\n    ports:\n      - 25565:25565\n    environment:\n      EULA: \"TRUE\"\n      TYPE: \"FORGE\"\n      VERSION: 1.16.5\n      MODS_FILE: /extras/mods.txt\n      REMOVE_OLD_MODS: \"true\"\n    tty: true\n    stdin_open: true\n    restart: unless-stopped\n    ports:\n      - 25565:25565\n    volumes:\n      - ./minecraft-data:/data\n      - ./mods.txt:/extras/mods.txt:ro\n\nvolumes:\n  data:\n```\n\n## mods.txt\n\nOnce you have your mod file link from the network tab add them to a\nmods.txt file next to your docker-compose file.\n\n``` txt\nhttps://media.forgecdn.net/files/3620/189/engineersdecor-1.16.5-1.1.16.jar\n```\n\n## start your server\n\nOnce you have made it this far starting the server is pretty simple.\n\n``` bash\ndocker compose up -d\n```\n\n## kill your server\n\nIf your still in the same directory, taking down the server should be\npretty easy as well.\n\n``` bash\ndocker compose down\n\n# if that does not work you can kill it\ndocker ps\n# copy the id of your container\ndocker kill \u003cid\u003e\n```\n",
      "summary": "In my adventure to put more homelab in docker, I moved our modded minecraft setup to docker.",
      "date_published": "2022-02-16T14:44:38Z",
      "date_modified": "2022-02-16T14:44:38Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "homelab",
        "docker",
        "minecraft",
        "gaming"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/aws-eventbridge-visidata/",
      "url": "https://go.waylonwalker.com/aws-eventbridge-visidata/",
      "title": "View AWS event bridge rules with visidata",
      "content_html": "\u003cp\u003eReading eventbridge rules from the command line can be a total drag, pipe it\ninto visidata to make it a breeze.\u003c/p\u003e\n\u003cp\u003eI just love when I start thinking through how to parse a bunch of json at the\ncommand line, maybe building out my own custom cli, then the solution is as\nsimple as piping it into visidata.  Which is a fantastic tui application that\nhad a ton of vim-like keybindings and data features.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ealias\u003c/span\u003e \u003cspan class=\"n\"\u003eawsevents\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eaws\u003c/span\u003e \u003cspan class=\"n\"\u003eevents\u003c/span\u003e \u003cspan class=\"nb\"\u003elist\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003erules\u003c/span\u003e \u003cspan class=\"o\"\u003e|\u003c/span\u003e \u003cspan class=\"n\"\u003evisidata\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003ef\u003c/span\u003e \u003cspan class=\"n\"\u003ejson\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nReading eventbridge rules from the command line can be a total drag, pipe it\ninto visidata to make it a breeze.\n\nI just love when I start thinking through how to parse a bunch of json at the\ncommand line, maybe building out my own custom cli, then the solution is as\nsimple as piping it into visidata.  Which is a fantastic tui application that\nhad a ton of vim-like keybindings and data features.\n\n\n``` python\nalias awsevents = aws events list-rules | visidata -f json\n```\n",
      "summary": "Reading eventbridge rules from the command line can be a total drag, pipe it into visidata to make it a breeze.",
      "date_published": "2022-02-15T03:04:26Z",
      "date_modified": "2022-02-15T03:04:26Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "cli",
        "bash"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/vim-cmd/",
      "url": "https://go.waylonwalker.com/vim-cmd/",
      "title": "Vim remaps use cmd in place of :",
      "content_html": "\u003cp\u003eAnyone just starting out their vim customization journey is bound to run into this error.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003eE5520\u003c/span\u003e: \u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nx\"\u003eCmd\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e \u003cspan class=\"nx\"\u003emapping\u003c/span\u003e \u003cspan class=\"nx\"\u003emust\u003c/span\u003e \u003cspan class=\"nx\"\u003eend\u003c/span\u003e \u003cspan class=\"nx\"\u003ewith\u003c/span\u003e \u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nx\"\u003eCR\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"i-did-not-get-it\"\u003eI did not get it \u003ca href=\"#i-did-not-get-it\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI’ll admit, in hindsight it’s very clear what this is trying to tell me, but\nfor whatever reason I still did not understand it and I just used a :\neverywhere.\u003c/p\u003e\n\u003ch2 id=\"from-the-docs\"\u003eFrom the docs \u003ca href=\"#from-the-docs\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIf you run \u003ccode\u003e:h \u0026lt;cmd\u0026gt;\u003c/code\u003e you will see a lot of reasons why you should do it, from\nperformance, to hygene, to ergonomics.  You will also see another clear\nstatement about how to use \u003ccode\u003e\u0026lt;cmd\u0026gt;\u003c/code\u003e.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                                                          \u003cspan class=\"nx\"\u003eE5520\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nx\"\u003eCmd\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e \u003cspan class=\"nx\"\u003ecommands\u003c/span\u003e \u003cspan class=\"nx\"\u003emust\u003c/span\u003e \u003cspan class=\"nx\"\u003eterminate\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"nx\"\u003ethat\u003c/span\u003e \u003cspan class=\"nx\"\u003eis\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"nx\"\u003ethey\u003c/span\u003e \u003cspan class=\"nx\"\u003emust\u003c/span\u003e \u003cspan class=\"nx\"\u003ebe\u003c/span\u003e \u003cspan class=\"nx\"\u003efollowed\u003c/span\u003e \u003cspan class=\"nx\"\u003eby\u003c/span\u003e \u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nx\"\u003eCR\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e \u003cspan class=\"nx\"\u003ein\u003c/span\u003e \u003cspan class=\"nx\"\u003ethe\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  {\u003cspan class=\"nx\"\u003erhs\u003c/span\u003e} \u003cspan class=\"nx\"\u003eof\u003c/span\u003e \u003cspan class=\"nx\"\u003ethe\u003c/span\u003e \u003cspan class=\"nx\"\u003emapping\u003c/span\u003e \u003cspan class=\"nx\"\u003edefinition\u003c/span\u003e.  \u003cspan class=\"nx\"\u003eCommand\u003c/span\u003e\u003cspan class=\"p\"\u003e-\u003c/span\u003e\u003cspan class=\"nx\"\u003eline\u003c/span\u003e \u003cspan class=\"nx\"\u003emode\u003c/span\u003e \u003cspan class=\"nx\"\u003eis\u003c/span\u003e \u003cspan class=\"nx\"\u003enever\u003c/span\u003e \u003cspan class=\"nx\"\u003eentered\u003c/span\u003e.\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"when-to-map-with-a-\"\u003eWhen to map with a : \u003ca href=\"#when-to-map-with-a-\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eYou still need to map your remaps with a : if you do not close it with a\n\u003ccode\u003e\u0026lt;cr\u0026gt;\u003c/code\u003e.  This might be something like prefilling a command with a search term.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003ennoremap\u003c/span\u003e \u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nx\"\u003eleader\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u0026lt;\u003c/span\u003e\u003cspan class=\"nx\"\u003eleader\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"nx\"\u003ef\u003c/span\u003e :\u003cspan class=\"nx\"\u003es\u003c/span\u003e\u003cspan class=\"sr\"\u003e/search/\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"otherwise-use-cmd\"\u003eOtherwise use \u003ccmd\u003e\u003c/cmd\u003e \u003ca href=\"#otherwise-use-cmd\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIf you can close the \u003ccode\u003e\u0026lt;cmd\u0026gt;\u003c/code\u003e with a \u003ccode\u003e\u0026lt;cr\u0026gt;\u003c/code\u003e the command do so.  Your map will\nautomatically be silent, more ergonomic, performant, and all that good stuff.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003ennoremap\u003c/span\u003e \u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nx\"\u003eleader\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u0026lt;\u003c/span\u003e\u003cspan class=\"nx\"\u003eleader\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"nx\"\u003ef\u003c/span\u003e \u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nx\"\u003ecmd\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"nx\"\u003es\u003c/span\u003e\u003cspan class=\"sr\"\u003e/search/\u003c/span\u003e\u003cspan class=\"nx\"\u003eSearch\u003c/span\u003e/\u003cspan class=\"nx\"\u003eg\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nx\"\u003ecr\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nAnyone just starting out their vim customization journey is bound to run into this error.\n\n``` vim\nE5520: \u003cCmd\u003e mapping must end with \u003cCR\u003e\n```\n\n## I did not get it\n\nI'll admit, in hindsight it's very clear what this is trying to tell me, but\nfor whatever reason I still did not understand it and I just used a :\neverywhere.\n\n## From the docs\n\n\nIf you run `:h \u003ccmd\u003e` you will see a lot of reasons why you should do it, from\nperformance, to hygene, to ergonomics.  You will also see another clear\nstatement about how to use `\u003ccmd\u003e`.\n\n``` vim\n                                                          E5520\n  \u003cCmd\u003e commands must terminate, that is, they must be followed by \u003cCR\u003e in the\n  {rhs} of the mapping definition.  Command-line mode is never entered.\n```\n\n## When to map with a :\n\nYou still need to map your remaps with a : if you do not close it with a\n`\u003ccr\u003e`.  This might be something like prefilling a command with a search term.\n\n``` vim\nnnoremap \u003cleader\u003e\u003cleader\u003ef :s/search/\n```\n\n## Otherwise use \u003ccmd\u003e\n\nIf you can close the `\u003ccmd\u003e` with a `\u003ccr\u003e` the command do so.  Your map will\nautomatically be silent, more ergonomic, performant, and all that good stuff.\n\n``` vim\nnnoremap \u003cleader\u003e\u003cleader\u003ef \u003ccmd\u003es/search/Search/g\u003ccr\u003e\n```\n",
      "summary": "Anyone just starting out their vim customization journey is bound to run into this error.",
      "date_published": "2022-02-14T14:53:17Z",
      "date_modified": "2022-02-14T14:53:17Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "vim",
        "linux",
        "cli"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/hydroneer/",
      "url": "https://go.waylonwalker.com/steam/hydroneer/",
      "title": "Hydroneer",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/1106840/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/1106840/library_600x900.jpg\" alt=\"Hydroneer box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/1106840/header.jpg\u0026#39;\"/ data-glightbox=\"description: Hydroneer box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eHydroneer\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 0.0%\"\u003e\n        0.0%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e0/78 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e122.7h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2022-02-14\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (78)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/abab72acada7b6477595fa1c4bc617ee1598e67f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/abab72acada7b6477595fa1c4bc617ee1598e67f.jpg\" alt=\"Tutorial Complete!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tutorial Complete!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTutorial Complete!\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Tutorial.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/7afeba248ff363ea2da543ce2c3f461a577e6a6f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/7afeba248ff363ea2da543ce2c3f461a577e6a6f.jpg\" alt=\"Let There Be Light\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Let There Be Light\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLet There Be Light\u003c/strong\u003e\u003cbr/\u003e\n    Turn on the lantern.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/207ce7521ce0c0479d7fcf9c0319194ec4175fb7.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/207ce7521ce0c0479d7fcf9c0319194ec4175fb7.jpg\" alt=\"My First Hydrocoin\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: My First Hydrocoin\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMy First Hydrocoin\u003c/strong\u003e\u003cbr/\u003e\n    Sell something at the jeweller.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/fc356680ea1753b0c03f8dfc402bc0aa46b2afe8.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/fc356680ea1753b0c03f8dfc402bc0aa46b2afe8.jpg\" alt=\"Smelt It, Dealt It.\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Smelt It, Dealt It.\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSmelt It, Dealt It.\u003c/strong\u003e\u003cbr/\u003e\n    Smelt a bar.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/18712bc5e99944d2db0cd59b48eeb926a2dba99a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/18712bc5e99944d2db0cd59b48eeb926a2dba99a.jpg\" alt=\"Tall Order\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tall Order\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTall Order\u003c/strong\u003e\u003cbr/\u003e\n    Smelt 100 bars.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/eb7646f61b3c23d3b18d396c22e78f0584f68876.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/eb7646f61b3c23d3b18d396c22e78f0584f68876.jpg\" alt=\"Dirty Rock Go Gzz Now Sparkle\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Dirty Rock Go Gzz Now Sparkle\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDirty Rock Go Gzz Now Sparkle\u003c/strong\u003e\u003cbr/\u003e\n    Cut a gemstone by hand.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/c9159c8adb571cbc3c0b9fcee6e8763bf9856605.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/c9159c8adb571cbc3c0b9fcee6e8763bf9856605.jpg\" alt=\"Diamonds Are Forever\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Diamonds Are Forever\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDiamonds Are Forever\u003c/strong\u003e\u003cbr/\u003e\n    Cut 50 gemstones by hand.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/4ac68582c96a440478709972a9d3dcbd3d83569d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/4ac68582c96a440478709972a9d3dcbd3d83569d.jpg\" alt=\"A New Home\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A New Home\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA New Home\u003c/strong\u003e\u003cbr/\u003e\n    Purchase a new plot of land.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/4ac68582c96a440478709972a9d3dcbd3d83569d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/4ac68582c96a440478709972a9d3dcbd3d83569d.jpg\" alt=\"Where\u0026#39;s The Water?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Where\u0026#39;s The Water?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhere\u0026#39;s The Water?\u003c/strong\u003e\u003cbr/\u003e\n    Purchase Mildews Aquifer Dig Site.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/4ac68582c96a440478709972a9d3dcbd3d83569d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/4ac68582c96a440478709972a9d3dcbd3d83569d.jpg\" alt=\"Don\u0026#39;t Worry About The Quarry\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Don\u0026#39;t Worry About The Quarry\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDon\u0026#39;t Worry About The Quarry\u003c/strong\u003e\u003cbr/\u003e\n    Purchase Dreck Quarry Dig Site.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/4ac68582c96a440478709972a9d3dcbd3d83569d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/4ac68582c96a440478709972a9d3dcbd3d83569d.jpg\" alt=\"Room For Improvement\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Room For Improvement\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRoom For Improvement\u003c/strong\u003e\u003cbr/\u003e\n    Purchase South Hope Dig Site.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/4ac68582c96a440478709972a9d3dcbd3d83569d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/4ac68582c96a440478709972a9d3dcbd3d83569d.jpg\" alt=\"Deep Underground\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Deep Underground\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDeep Underground\u003c/strong\u003e\u003cbr/\u003e\n    Purchase Icehelm Dig Site.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/4ac68582c96a440478709972a9d3dcbd3d83569d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/4ac68582c96a440478709972a9d3dcbd3d83569d.jpg\" alt=\"It\u0026#39;snow Problem.\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: It\u0026#39;snow Problem.\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt\u0026#39;snow Problem.\u003c/strong\u003e\u003cbr/\u003e\n    Purchase Snow Rune Falls Dig Site.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/55370af32f275f05bd4197b8b969c98176d00d38.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/55370af32f275f05bd4197b8b969c98176d00d38.jpg\" alt=\"A Dirty Job\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: A Dirty Job\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Dirty Job\u003c/strong\u003e\u003cbr/\u003e\n    Produce 1000 dirt from drills.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/dcdc6ffd1f47debf93e28bea9686dea79734afcb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/dcdc6ffd1f47debf93e28bea9686dea79734afcb.jpg\" alt=\"It\u0026#39;s Harvesting Season\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: It\u0026#39;s Harvesting Season\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt\u0026#39;s Harvesting Season\u003c/strong\u003e\u003cbr/\u003e\n    Process 1000 dirt in harvesters.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/d13471173d5192e7a418307e74320882091362bd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/d13471173d5192e7a418307e74320882091362bd.jpg\" alt=\"Secrets Of The Cave\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Secrets Of The Cave\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSecrets Of The Cave\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/a1e48b397d17f5d7ef6f5ed469ecf3d9c031986e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/a1e48b397d17f5d7ef6f5ed469ecf3d9c031986e.jpg\" alt=\"Black Friday\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Black Friday\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlack Friday\u003c/strong\u003e\u003cbr/\u003e\n    Purchase 100 items from stores.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/146c03a4271b82369d78cd659f13309af2419fb2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/146c03a4271b82369d78cd659f13309af2419fb2.jpg\" alt=\"Loyalty Card\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Loyalty Card\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLoyalty Card\u003c/strong\u003e\u003cbr/\u003e\n    Purchase 1000 items from stores.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/dcdc6ffd1f47debf93e28bea9686dea79734afcb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/dcdc6ffd1f47debf93e28bea9686dea79734afcb.jpg\" alt=\"Clout\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Clout\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eClout\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/dcdc6ffd1f47debf93e28bea9686dea79734afcb.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/dcdc6ffd1f47debf93e28bea9686dea79734afcb.jpg\" alt=\"From The Core\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: From The Core\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFrom The Core\u003c/strong\u003e\u003cbr/\u003e\n    Get corestone ore from a harvester.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/29571daf63adfc6a953394ed2beb053483606bf2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/29571daf63adfc6a953394ed2beb053483606bf2.jpg\" alt=\"Wishing Well\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Wishing Well\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWishing Well\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/363fc3adf256c50ce3446a5bb4d608de69867df4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/363fc3adf256c50ce3446a5bb4d608de69867df4.jpg\" alt=\"Master Fisherman\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Master Fisherman\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaster Fisherman\u003c/strong\u003e\u003cbr/\u003e\n    Get the maximum level rod.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/12231fe555771290bc4a49b52409903ae2ad0315.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/12231fe555771290bc4a49b52409903ae2ad0315.jpg\" alt=\"\" one=\"\" mans=\"\" trash=\"\" is=\"\" another=\"\" mans=\"\" hot=\"\" trash\"\"=\"\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: \"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e\u0026#34;one mans trash is another mans hot trash\u0026#34;\u003c/strong\u003e\u003cbr/\u003e\n    Use the scrapyard.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/5bd555bc6f2f12c6f0a320864103b4297d70c76b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/5bd555bc6f2f12c6f0a320864103b4297d70c76b.jpg\" alt=\"\" scraaaaaaaaap\"\"=\"\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: \"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e\u0026#34;scraaaaaaaaap\u0026#34;\u003c/strong\u003e\u003cbr/\u003e\n    Scrap 100 items.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/2504bd7a35b3fa39c42f15accac95b135183ada4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/2504bd7a35b3fa39c42f15accac95b135183ada4.jpg\" alt=\"Where did it go?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Where did it go?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhere did it go?\u003c/strong\u003e\u003cbr/\u003e\n    Use the Icehelm item chute.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/118713abc392b8362f63e1a7d86f613534ffcac0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/118713abc392b8362f63e1a7d86f613534ffcac0.jpg\" alt=\"Masterworkin\u0026#39;\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Masterworkin\u0026#39;\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMasterworkin\u0026#39;\u003c/strong\u003e\u003cbr/\u003e\n    Create something using the Masterwork anvil in Icehelm.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/5f1b458a8227bdc894f930390dbdf1da8d54c4c0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/5f1b458a8227bdc894f930390dbdf1da8d54c4c0.jpg\" alt=\"Wolf of Bridgepour\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Wolf of Bridgepour\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWolf of Bridgepour\u003c/strong\u003e\u003cbr/\u003e\n    Sell something at the stock market.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/71e4117cc540b64fd1089e931650058b0c8e5649.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/71e4117cc540b64fd1089e931650058b0c8e5649.jpg\" alt=\"Stonks\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Stonks\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStonks\u003c/strong\u003e\u003cbr/\u003e\n    Make 100,000 HydroCoins on the stock market.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/aedb5c0240ef94d7a3b3d5a421b0f63c8042e5cd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/aedb5c0240ef94d7a3b3d5a421b0f63c8042e5cd.jpg\" alt=\"Booooooiiiingg!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Booooooiiiingg!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBooooooiiiingg!\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/65b797a9a620cf5823ec9ef08816afb87b9e5c1a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/65b797a9a620cf5823ec9ef08816afb87b9e5c1a.jpg\" alt=\"Farming Season\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Farming Season\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFarming Season\u003c/strong\u003e\u003cbr/\u003e\n    Purchase the Hydro Cropper.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/8e50e36e9356d0c6a0a095ad9bf216ecee4c51c6.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/8e50e36e9356d0c6a0a095ad9bf216ecee4c51c6.jpg\" alt=\"On The Road Again\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: On The Road Again\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOn The Road Again\u003c/strong\u003e\u003cbr/\u003e\n    Purchase a new Hydro Truck.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/31d1a8fe503da9144e8c2e74cce96e21595808ac.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/31d1a8fe503da9144e8c2e74cce96e21595808ac.jpg\" alt=\"Quad Squad\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Quad Squad\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eQuad Squad\u003c/strong\u003e\u003cbr/\u003e\n    Purchase a Hydro Quad.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/81890304a911f8ab15cf8b97ec07d0e89e2a261d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/81890304a911f8ab15cf8b97ec07d0e89e2a261d.jpg\" alt=\"Keep On Rollin\u0026#39; Baby, You Know What Time It Is\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Keep On Rollin\u0026#39; Baby, You Know What Time It Is\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKeep On Rollin\u0026#39; Baby, You Know What Time It Is\u003c/strong\u003e\u003cbr/\u003e\n    Purchase a Hydro Roller.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/bc059ca419d084353981c32b24b6a2b56e7b83a9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/bc059ca419d084353981c32b24b6a2b56e7b83a9.jpg\" alt=\"I Dig It\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: I Dig It\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI Dig It\u003c/strong\u003e\u003cbr/\u003e\n    Purchase a Hydro Mole.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/51801854584159a4f7cfd7bca6eb03af7822ea6f.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/51801854584159a4f7cfd7bca6eb03af7822ea6f.jpg\" alt=\"Goodnight\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Goodnight\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGoodnight\u003c/strong\u003e\u003cbr/\u003e\n    Use a bed.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/32b845cddada3fe2c9fbdfc54ed9d30d3d513165.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/32b845cddada3fe2c9fbdfc54ed9d30d3d513165.jpg\" alt=\"Master Baiter\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Master Baiter\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaster Baiter\u003c/strong\u003e\u003cbr/\u003e\n    Catch 100 fish.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/78d3adb9295c3cf16c912d423a30313d30c2ca6a.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/78d3adb9295c3cf16c912d423a30313d30c2ca6a.jpg\" alt=\"Fire In The Hole!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fire In The Hole!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFire In The Hole!\u003c/strong\u003e\u003cbr/\u003e\n    Use a logic TNT barrel.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/ff8c650f08144152ce00244b5f375aea13942852.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/ff8c650f08144152ce00244b5f375aea13942852.jpg\" alt=\"Nuclear Miner\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Nuclear Miner\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNuclear Miner\u003c/strong\u003e\u003cbr/\u003e\n    Use a logic mini nuke.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/cada39a3acdd1a5c468c482a3b7dfd29ce3d2310.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/cada39a3acdd1a5c468c482a3b7dfd29ce3d2310.jpg\" alt=\"Logical Compression\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Logical Compression\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLogical Compression\u003c/strong\u003e\u003cbr/\u003e\n    Compress 100 gems in a logic compressor.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/e7813d48a844cc07525985ab2b92c5c1130438c5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/e7813d48a844cc07525985ab2b92c5c1130438c5.jpg\" alt=\"Feeling Wasted\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Feeling Wasted\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFeeling Wasted\u003c/strong\u003e\u003cbr/\u003e\n    Put 5000 items into the logic destroyer.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/956704daaa4d44b39f40ace3e4501a88d6e5610d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/956704daaa4d44b39f40ace3e4501a88d6e5610d.jpg\" alt=\"Sowing The Seeds\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Sowing The Seeds\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSowing The Seeds\u003c/strong\u003e\u003cbr/\u003e\n    Plant 100 crops.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/36d412f7c496434e2a4e6aba8c2f73e960d8236b.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/36d412f7c496434e2a4e6aba8c2f73e960d8236b.jpg\" alt=\"Green Thumb\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Green Thumb\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGreen Thumb\u003c/strong\u003e\u003cbr/\u003e\n    Grow 1000 vegetables. \n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/2d9ec704bb23273efe040cd579ec73037d0b38d2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/2d9ec704bb23273efe040cd579ec73037d0b38d2.jpg\" alt=\"Soup Kitchen\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Soup Kitchen\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSoup Kitchen\u003c/strong\u003e\u003cbr/\u003e\n    Create 10 soups.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/2d9ec704bb23273efe040cd579ec73037d0b38d2.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/2d9ec704bb23273efe040cd579ec73037d0b38d2.jpg\" alt=\"Chef\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Chef\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChef\u003c/strong\u003e\u003cbr/\u003e\n    Deliver 10 soup requests.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/6f31a799fa29b51b741cdeda2dbaa366f7970e46.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/6f31a799fa29b51b741cdeda2dbaa366f7970e46.jpg\" alt=\"Quartermaster\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Quartermaster\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eQuartermaster\u003c/strong\u003e\u003cbr/\u003e\n    Deliver 10 weapon requests.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/d95113cd0f0aad38d11a18409129c1de94c9d2a4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/d95113cd0f0aad38d11a18409129c1de94c9d2a4.jpg\" alt=\"Farming Guild Tokens\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Farming Guild Tokens\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFarming Guild Tokens\u003c/strong\u003e\u003cbr/\u003e\n    Accumulate 10,000 farming guild tokens.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/d95113cd0f0aad38d11a18409129c1de94c9d2a4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/d95113cd0f0aad38d11a18409129c1de94c9d2a4.jpg\" alt=\"HydroCoins\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: HydroCoins\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHydroCoins\u003c/strong\u003e\u003cbr/\u003e\n    Accumulate 100,000 HydroCoins.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/d95113cd0f0aad38d11a18409129c1de94c9d2a4.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/d95113cd0f0aad38d11a18409129c1de94c9d2a4.jpg\" alt=\"Prospect Guild Tokens\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Prospect Guild Tokens\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eProspect Guild Tokens\u003c/strong\u003e\u003cbr/\u003e\n    Accumulate 10,000 prospect guild tokens.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/c72d98fb381716facfaf6022f8ac49fb6e3d8be5.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/c72d98fb381716facfaf6022f8ac49fb6e3d8be5.jpg\" alt=\"Hot hot hot!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hot hot hot!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHot hot hot!\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/a3be3c27a904d3f2fa451ff0dad7bfb9ca7642c9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/a3be3c27a904d3f2fa451ff0dad7bfb9ca7642c9.jpg\" alt=\"Bonk.\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bonk.\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBonk.\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/c5eab529a529fd43ca64bf23ef97d9b6675ab326.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/c5eab529a529fd43ca64bf23ef97d9b6675ab326.jpg\" alt=\"Prospective Perspective\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Prospective Perspective\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eProspective Perspective\u003c/strong\u003e\u003cbr/\u003e\n    Purchase a Hydro Prospector.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/aaca466662cccf05d9701b40709e279b9cd13d70.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/aaca466662cccf05d9701b40709e279b9cd13d70.jpg\" alt=\"Archaeology \" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Archaeology\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArchaeology \u003c/strong\u003e\u003cbr/\u003e\n    Donate a bone to the museum.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/81a517c641ff9849feac4a42290b654860b3b461.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/81a517c641ff9849feac4a42290b654860b3b461.jpg\" alt=\"Indiana Bones\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Indiana Bones\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIndiana Bones\u003c/strong\u003e\u003cbr/\u003e\n    Donate 10 bones to the museum.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/0497395684ac4fe78f470420e64ee5f46101aad0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/0497395684ac4fe78f470420e64ee5f46101aad0.jpg\" alt=\"Bonafide Bone Finder\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Bonafide Bone Finder\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBonafide Bone Finder\u003c/strong\u003e\u003cbr/\u003e\n    Donate all the bones to the museum.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/01b06fbeefa0f5c8a0d282ae9e74f1cd96e74617.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/01b06fbeefa0f5c8a0d282ae9e74f1cd96e74617.jpg\" alt=\"Oh hi Mark\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Oh hi Mark\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOh hi Mark\u003c/strong\u003e\u003cbr/\u003e\n    Refine a Forge Mark.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/4ac68582c96a440478709972a9d3dcbd3d83569d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/4ac68582c96a440478709972a9d3dcbd3d83569d.jpg\" alt=\"Where\u0026#39;s The Lava?\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Where\u0026#39;s The Lava?\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhere\u0026#39;s The Lava?\u003c/strong\u003e\u003cbr/\u003e\n    Purchase Scoria Chamber Dig Site.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/4ac68582c96a440478709972a9d3dcbd3d83569d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/4ac68582c96a440478709972a9d3dcbd3d83569d.jpg\" alt=\"Good Footing\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Good Footing\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGood Footing\u003c/strong\u003e\u003cbr/\u003e\n    Purchase Cinder Footing Dig Site.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/4ac68582c96a440478709972a9d3dcbd3d83569d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/4ac68582c96a440478709972a9d3dcbd3d83569d.jpg\" alt=\"Let\u0026#39;s Go Down To The Breach, Breach\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Let\u0026#39;s Go Down To The Breach, Breach\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLet\u0026#39;s Go Down To The Breach, Breach\u003c/strong\u003e\u003cbr/\u003e\n    Purchase Shattered Breach Dig Site.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/4ac68582c96a440478709972a9d3dcbd3d83569d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/4ac68582c96a440478709972a9d3dcbd3d83569d.jpg\" alt=\"Down By The River.\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Down By The River.\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDown By The River.\u003c/strong\u003e\u003cbr/\u003e\n    Purchase Waterside Dig Site.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/9ff16a94bda8af0117ec0a38c5acf0796df0c302.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/9ff16a94bda8af0117ec0a38c5acf0796df0c302.jpg\" alt=\"Hydroneering\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Hydroneering\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHydroneering\u003c/strong\u003e\u003cbr/\u003e\n    Melt Ice in the Ice Melter.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/ead7e2b3f6cbb46f94d338f5cbda67946aab3312.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/ead7e2b3f6cbb46f94d338f5cbda67946aab3312.jpg\" alt=\"Thermodynamics\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Thermodynamics\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThermodynamics\u003c/strong\u003e\u003cbr/\u003e\n    Melt 1000 Ice in the Ice Melter.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/f236fd0fe419247b18ea057c75c5badf79f9fd23.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/f236fd0fe419247b18ea057c75c5badf79f9fd23.jpg\" alt=\"Franchisee\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Franchisee\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFranchisee\u003c/strong\u003e\u003cbr/\u003e\n    Build a store in New Glade.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/c270e41a38d6661c250090df634eb020aedea39d.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/c270e41a38d6661c250090df634eb020aedea39d.jpg\" alt=\"Good as New (Glade)\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Good as New (Glade)\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGood as New (Glade)\u003c/strong\u003e\u003cbr/\u003e\n    Fully Restore New Glade.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/02f5a42e846cd7de6bf6e57ca93faaf31e5eefe3.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/02f5a42e846cd7de6bf6e57ca93faaf31e5eefe3.jpg\" alt=\"Restoration\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Restoration\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRestoration\u003c/strong\u003e\u003cbr/\u003e\n    Rebuild an abandoned miner.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/df7e035aaf2f7427a5db8a4207bb8d97557c04dd.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/df7e035aaf2f7427a5db8a4207bb8d97557c04dd.jpg\" alt=\"Passive Income\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Passive Income\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePassive Income\u003c/strong\u003e\u003cbr/\u003e\n    Rebuild all the abandoned miners.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/145c38aaed792780d24547d77efba9c08e799d63.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/145c38aaed792780d24547d77efba9c08e799d63.jpg\" alt=\"Unlucky Roll\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Unlucky Roll\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUnlucky Roll\u003c/strong\u003e\u003cbr/\u003e\n    Get a negative buff from a Forge Mark.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/95f65ec76d096ca9ff969a119062b13d72c17dca.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/95f65ec76d096ca9ff969a119062b13d72c17dca.jpg\" alt=\"Lucky Roll\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Lucky Roll\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLucky Roll\u003c/strong\u003e\u003cbr/\u003e\n    Get a 3 star buff from a Forge Mark.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/1561cb929852dfe824b2cf21662f9d7aedfb0b22.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/1561cb929852dfe824b2cf21662f9d7aedfb0b22.jpg\" alt=\"My First Lap\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: My First Lap\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMy First Lap\u003c/strong\u003e\u003cbr/\u003e\n    Complete a lap on Mot\u0026#39;s Island.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/6605cbbe7a3d2f873a006e2dc382142e5a540e37.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/6605cbbe7a3d2f873a006e2dc382142e5a540e37.jpg\" alt=\"SPEEEEEEEEEEEEEED\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: SPEEEEEEEEEEEEEED\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSPEEEEEEEEEEEEEED\u003c/strong\u003e\u003cbr/\u003e\n    Complete a lap on Mot\u0026#39;s Island in under 1:11.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/de8382ae4eb0123a85a1ba23e1c3f601a4e3fd62.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/de8382ae4eb0123a85a1ba23e1c3f601a4e3fd62.jpg\" alt=\"Shopping Haul\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Shopping Haul\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShopping Haul\u003c/strong\u003e\u003cbr/\u003e\n    Purchase a Lava Hauler.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/9474318d8a4b70e98cbb04a0da74283750f3adda.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/9474318d8a4b70e98cbb04a0da74283750f3adda.jpg\" alt=\"Lava Biker\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Lava Biker\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLava Biker\u003c/strong\u003e\u003cbr/\u003e\n    Purchase Lava Bike.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/50c6974f9a1bd225931e5842a83a39fd6498ba42.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/50c6974f9a1bd225931e5842a83a39fd6498ba42.jpg\" alt=\"Fully Loaded\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fully Loaded\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFully Loaded\u003c/strong\u003e\u003cbr/\u003e\n    Withdraw the maximum amount at an abandoned miner.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/78a71c454c1d462b46c9f3571dd00ab171611ba0.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/78a71c454c1d462b46c9f3571dd00ab171611ba0.jpg\" alt=\"Frosty The Snowman\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Frosty The Snowman\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFrosty The Snowman\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/82343e61e519b95562e70c25d56c9b7e95e203ce.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/82343e61e519b95562e70c25d56c9b7e95e203ce.jpg\" alt=\"Snowball Fight!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Snowball Fight!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSnowball Fight!\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/19cc2aa1421d84cf6a04c8290dae2df84848d3da.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/19cc2aa1421d84cf6a04c8290dae2df84848d3da.jpg\" alt=\"Assassin\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Assassin\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAssassin\u003c/strong\u003e\u003cbr/\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/e9bd78f488b3a6534e208d11bf7a70aff76819cf.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/e9bd78f488b3a6534e208d11bf7a70aff76819cf.jpg\" alt=\"Scout Guild Tokens\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Scout Guild Tokens\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eScout Guild Tokens\u003c/strong\u003e\u003cbr/\u003e\n    Accumulate 10,000 scout guild tokens.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/bb8658c6e42c6a7a22ff1d3316a1eb7323c9806e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/bb8658c6e42c6a7a22ff1d3316a1eb7323c9806e.jpg\" alt=\"Thaw\u0026#39;s Hammer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Thaw\u0026#39;s Hammer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThaw\u0026#39;s Hammer\u003c/strong\u003e\u003cbr/\u003e\n    Purchase a Lava Thaw.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/e9ce8fcc113cf02cb80aa962e169446524f99ee9.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/e9ce8fcc113cf02cb80aa962e169446524f99ee9.jpg\" alt=\"Calling Your Bluff\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Calling Your Bluff\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCalling Your Bluff\u003c/strong\u003e\u003cbr/\u003e\n    Purchase Lumberton Bluff Dig Site.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/1106840/library_600x900.jpg\" alt=\"Hydroneer box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/1106840/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eHydroneer\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 0.0%\"\u003e\n        0.0%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e0/78 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e122.7h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2022-02-14\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (78)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/abab72acada7b6477595fa1c4bc617ee1598e67f.jpg\" alt=\"Tutorial Complete!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTutorial Complete!\u003c/strong\u003e\u003cbr\u003e\n    Complete the Tutorial.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/7afeba248ff363ea2da543ce2c3f461a577e6a6f.jpg\" alt=\"Let There Be Light\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLet There Be Light\u003c/strong\u003e\u003cbr\u003e\n    Turn on the lantern.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/207ce7521ce0c0479d7fcf9c0319194ec4175fb7.jpg\" alt=\"My First Hydrocoin\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMy First Hydrocoin\u003c/strong\u003e\u003cbr\u003e\n    Sell something at the jeweller.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/fc356680ea1753b0c03f8dfc402bc0aa46b2afe8.jpg\" alt=\"Smelt It, Dealt It.\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSmelt It, Dealt It.\u003c/strong\u003e\u003cbr\u003e\n    Smelt a bar.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/18712bc5e99944d2db0cd59b48eeb926a2dba99a.jpg\" alt=\"Tall Order\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTall Order\u003c/strong\u003e\u003cbr\u003e\n    Smelt 100 bars.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/eb7646f61b3c23d3b18d396c22e78f0584f68876.jpg\" alt=\"Dirty Rock Go Gzz Now Sparkle\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDirty Rock Go Gzz Now Sparkle\u003c/strong\u003e\u003cbr\u003e\n    Cut a gemstone by hand.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/c9159c8adb571cbc3c0b9fcee6e8763bf9856605.jpg\" alt=\"Diamonds Are Forever\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDiamonds Are Forever\u003c/strong\u003e\u003cbr\u003e\n    Cut 50 gemstones by hand.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/4ac68582c96a440478709972a9d3dcbd3d83569d.jpg\" alt=\"A New Home\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA New Home\u003c/strong\u003e\u003cbr\u003e\n    Purchase a new plot of land.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/4ac68582c96a440478709972a9d3dcbd3d83569d.jpg\" alt=\"Where's The Water?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhere's The Water?\u003c/strong\u003e\u003cbr\u003e\n    Purchase Mildews Aquifer Dig Site.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/4ac68582c96a440478709972a9d3dcbd3d83569d.jpg\" alt=\"Don't Worry About The Quarry\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDon't Worry About The Quarry\u003c/strong\u003e\u003cbr\u003e\n    Purchase Dreck Quarry Dig Site.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/4ac68582c96a440478709972a9d3dcbd3d83569d.jpg\" alt=\"Room For Improvement\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRoom For Improvement\u003c/strong\u003e\u003cbr\u003e\n    Purchase South Hope Dig Site.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/4ac68582c96a440478709972a9d3dcbd3d83569d.jpg\" alt=\"Deep Underground\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDeep Underground\u003c/strong\u003e\u003cbr\u003e\n    Purchase Icehelm Dig Site.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/4ac68582c96a440478709972a9d3dcbd3d83569d.jpg\" alt=\"It'snow Problem.\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt'snow Problem.\u003c/strong\u003e\u003cbr\u003e\n    Purchase Snow Rune Falls Dig Site.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/55370af32f275f05bd4197b8b969c98176d00d38.jpg\" alt=\"A Dirty Job\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eA Dirty Job\u003c/strong\u003e\u003cbr\u003e\n    Produce 1000 dirt from drills.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/dcdc6ffd1f47debf93e28bea9686dea79734afcb.jpg\" alt=\"It's Harvesting Season\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIt's Harvesting Season\u003c/strong\u003e\u003cbr\u003e\n    Process 1000 dirt in harvesters.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/d13471173d5192e7a418307e74320882091362bd.jpg\" alt=\"Secrets Of The Cave\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSecrets Of The Cave\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/a1e48b397d17f5d7ef6f5ed469ecf3d9c031986e.jpg\" alt=\"Black Friday\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBlack Friday\u003c/strong\u003e\u003cbr\u003e\n    Purchase 100 items from stores.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/146c03a4271b82369d78cd659f13309af2419fb2.jpg\" alt=\"Loyalty Card\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLoyalty Card\u003c/strong\u003e\u003cbr\u003e\n    Purchase 1000 items from stores.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/dcdc6ffd1f47debf93e28bea9686dea79734afcb.jpg\" alt=\"Clout\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eClout\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/dcdc6ffd1f47debf93e28bea9686dea79734afcb.jpg\" alt=\"From The Core\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFrom The Core\u003c/strong\u003e\u003cbr\u003e\n    Get corestone ore from a harvester.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/29571daf63adfc6a953394ed2beb053483606bf2.jpg\" alt=\"Wishing Well\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWishing Well\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/363fc3adf256c50ce3446a5bb4d608de69867df4.jpg\" alt=\"Master Fisherman\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaster Fisherman\u003c/strong\u003e\u003cbr\u003e\n    Get the maximum level rod.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/12231fe555771290bc4a49b52409903ae2ad0315.jpg\" alt=\"\"one mans trash is another mans hot trash\"\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e\"one mans trash is another mans hot trash\"\u003c/strong\u003e\u003cbr\u003e\n    Use the scrapyard.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/5bd555bc6f2f12c6f0a320864103b4297d70c76b.jpg\" alt=\"\"scraaaaaaaaap\"\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e\"scraaaaaaaaap\"\u003c/strong\u003e\u003cbr\u003e\n    Scrap 100 items.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/2504bd7a35b3fa39c42f15accac95b135183ada4.jpg\" alt=\"Where did it go?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhere did it go?\u003c/strong\u003e\u003cbr\u003e\n    Use the Icehelm item chute.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/118713abc392b8362f63e1a7d86f613534ffcac0.jpg\" alt=\"Masterworkin'\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMasterworkin'\u003c/strong\u003e\u003cbr\u003e\n    Create something using the Masterwork anvil in Icehelm.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/5f1b458a8227bdc894f930390dbdf1da8d54c4c0.jpg\" alt=\"Wolf of Bridgepour\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWolf of Bridgepour\u003c/strong\u003e\u003cbr\u003e\n    Sell something at the stock market.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/71e4117cc540b64fd1089e931650058b0c8e5649.jpg\" alt=\"Stonks\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eStonks\u003c/strong\u003e\u003cbr\u003e\n    Make 100,000 HydroCoins on the stock market.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/aedb5c0240ef94d7a3b3d5a421b0f63c8042e5cd.jpg\" alt=\"Booooooiiiingg!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBooooooiiiingg!\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/65b797a9a620cf5823ec9ef08816afb87b9e5c1a.jpg\" alt=\"Farming Season\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFarming Season\u003c/strong\u003e\u003cbr\u003e\n    Purchase the Hydro Cropper.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/8e50e36e9356d0c6a0a095ad9bf216ecee4c51c6.jpg\" alt=\"On The Road Again\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOn The Road Again\u003c/strong\u003e\u003cbr\u003e\n    Purchase a new Hydro Truck.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/31d1a8fe503da9144e8c2e74cce96e21595808ac.jpg\" alt=\"Quad Squad\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eQuad Squad\u003c/strong\u003e\u003cbr\u003e\n    Purchase a Hydro Quad.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/81890304a911f8ab15cf8b97ec07d0e89e2a261d.jpg\" alt=\"Keep On Rollin' Baby, You Know What Time It Is\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eKeep On Rollin' Baby, You Know What Time It Is\u003c/strong\u003e\u003cbr\u003e\n    Purchase a Hydro Roller.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/bc059ca419d084353981c32b24b6a2b56e7b83a9.jpg\" alt=\"I Dig It\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI Dig It\u003c/strong\u003e\u003cbr\u003e\n    Purchase a Hydro Mole.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/51801854584159a4f7cfd7bca6eb03af7822ea6f.jpg\" alt=\"Goodnight\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGoodnight\u003c/strong\u003e\u003cbr\u003e\n    Use a bed.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/32b845cddada3fe2c9fbdfc54ed9d30d3d513165.jpg\" alt=\"Master Baiter\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaster Baiter\u003c/strong\u003e\u003cbr\u003e\n    Catch 100 fish.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/78d3adb9295c3cf16c912d423a30313d30c2ca6a.jpg\" alt=\"Fire In The Hole!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFire In The Hole!\u003c/strong\u003e\u003cbr\u003e\n    Use a logic TNT barrel.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/ff8c650f08144152ce00244b5f375aea13942852.jpg\" alt=\"Nuclear Miner\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eNuclear Miner\u003c/strong\u003e\u003cbr\u003e\n    Use a logic mini nuke.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/cada39a3acdd1a5c468c482a3b7dfd29ce3d2310.jpg\" alt=\"Logical Compression\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLogical Compression\u003c/strong\u003e\u003cbr\u003e\n    Compress 100 gems in a logic compressor.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/e7813d48a844cc07525985ab2b92c5c1130438c5.jpg\" alt=\"Feeling Wasted\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFeeling Wasted\u003c/strong\u003e\u003cbr\u003e\n    Put 5000 items into the logic destroyer.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/956704daaa4d44b39f40ace3e4501a88d6e5610d.jpg\" alt=\"Sowing The Seeds\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSowing The Seeds\u003c/strong\u003e\u003cbr\u003e\n    Plant 100 crops.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/36d412f7c496434e2a4e6aba8c2f73e960d8236b.jpg\" alt=\"Green Thumb\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGreen Thumb\u003c/strong\u003e\u003cbr\u003e\n    Grow 1000 vegetables. \n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/2d9ec704bb23273efe040cd579ec73037d0b38d2.jpg\" alt=\"Soup Kitchen\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSoup Kitchen\u003c/strong\u003e\u003cbr\u003e\n    Create 10 soups.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/2d9ec704bb23273efe040cd579ec73037d0b38d2.jpg\" alt=\"Chef\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eChef\u003c/strong\u003e\u003cbr\u003e\n    Deliver 10 soup requests.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/6f31a799fa29b51b741cdeda2dbaa366f7970e46.jpg\" alt=\"Quartermaster\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eQuartermaster\u003c/strong\u003e\u003cbr\u003e\n    Deliver 10 weapon requests.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/d95113cd0f0aad38d11a18409129c1de94c9d2a4.jpg\" alt=\"Farming Guild Tokens\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFarming Guild Tokens\u003c/strong\u003e\u003cbr\u003e\n    Accumulate 10,000 farming guild tokens.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/d95113cd0f0aad38d11a18409129c1de94c9d2a4.jpg\" alt=\"HydroCoins\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHydroCoins\u003c/strong\u003e\u003cbr\u003e\n    Accumulate 100,000 HydroCoins.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/d95113cd0f0aad38d11a18409129c1de94c9d2a4.jpg\" alt=\"Prospect Guild Tokens\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eProspect Guild Tokens\u003c/strong\u003e\u003cbr\u003e\n    Accumulate 10,000 prospect guild tokens.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/c72d98fb381716facfaf6022f8ac49fb6e3d8be5.jpg\" alt=\"Hot hot hot!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHot hot hot!\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/a3be3c27a904d3f2fa451ff0dad7bfb9ca7642c9.jpg\" alt=\"Bonk.\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBonk.\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/c5eab529a529fd43ca64bf23ef97d9b6675ab326.jpg\" alt=\"Prospective Perspective\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eProspective Perspective\u003c/strong\u003e\u003cbr\u003e\n    Purchase a Hydro Prospector.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/aaca466662cccf05d9701b40709e279b9cd13d70.jpg\" alt=\"Archaeology \" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eArchaeology \u003c/strong\u003e\u003cbr\u003e\n    Donate a bone to the museum.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/81a517c641ff9849feac4a42290b654860b3b461.jpg\" alt=\"Indiana Bones\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIndiana Bones\u003c/strong\u003e\u003cbr\u003e\n    Donate 10 bones to the museum.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/0497395684ac4fe78f470420e64ee5f46101aad0.jpg\" alt=\"Bonafide Bone Finder\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBonafide Bone Finder\u003c/strong\u003e\u003cbr\u003e\n    Donate all the bones to the museum.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/01b06fbeefa0f5c8a0d282ae9e74f1cd96e74617.jpg\" alt=\"Oh hi Mark\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eOh hi Mark\u003c/strong\u003e\u003cbr\u003e\n    Refine a Forge Mark.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/4ac68582c96a440478709972a9d3dcbd3d83569d.jpg\" alt=\"Where's The Lava?\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eWhere's The Lava?\u003c/strong\u003e\u003cbr\u003e\n    Purchase Scoria Chamber Dig Site.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/4ac68582c96a440478709972a9d3dcbd3d83569d.jpg\" alt=\"Good Footing\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGood Footing\u003c/strong\u003e\u003cbr\u003e\n    Purchase Cinder Footing Dig Site.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/4ac68582c96a440478709972a9d3dcbd3d83569d.jpg\" alt=\"Let's Go Down To The Breach, Breach\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLet's Go Down To The Breach, Breach\u003c/strong\u003e\u003cbr\u003e\n    Purchase Shattered Breach Dig Site.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/4ac68582c96a440478709972a9d3dcbd3d83569d.jpg\" alt=\"Down By The River.\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eDown By The River.\u003c/strong\u003e\u003cbr\u003e\n    Purchase Waterside Dig Site.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/9ff16a94bda8af0117ec0a38c5acf0796df0c302.jpg\" alt=\"Hydroneering\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eHydroneering\u003c/strong\u003e\u003cbr\u003e\n    Melt Ice in the Ice Melter.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/ead7e2b3f6cbb46f94d338f5cbda67946aab3312.jpg\" alt=\"Thermodynamics\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThermodynamics\u003c/strong\u003e\u003cbr\u003e\n    Melt 1000 Ice in the Ice Melter.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/f236fd0fe419247b18ea057c75c5badf79f9fd23.jpg\" alt=\"Franchisee\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFranchisee\u003c/strong\u003e\u003cbr\u003e\n    Build a store in New Glade.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/c270e41a38d6661c250090df634eb020aedea39d.jpg\" alt=\"Good as New (Glade)\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGood as New (Glade)\u003c/strong\u003e\u003cbr\u003e\n    Fully Restore New Glade.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/02f5a42e846cd7de6bf6e57ca93faaf31e5eefe3.jpg\" alt=\"Restoration\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRestoration\u003c/strong\u003e\u003cbr\u003e\n    Rebuild an abandoned miner.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/df7e035aaf2f7427a5db8a4207bb8d97557c04dd.jpg\" alt=\"Passive Income\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003ePassive Income\u003c/strong\u003e\u003cbr\u003e\n    Rebuild all the abandoned miners.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/145c38aaed792780d24547d77efba9c08e799d63.jpg\" alt=\"Unlucky Roll\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eUnlucky Roll\u003c/strong\u003e\u003cbr\u003e\n    Get a negative buff from a Forge Mark.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/95f65ec76d096ca9ff969a119062b13d72c17dca.jpg\" alt=\"Lucky Roll\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLucky Roll\u003c/strong\u003e\u003cbr\u003e\n    Get a 3 star buff from a Forge Mark.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/1561cb929852dfe824b2cf21662f9d7aedfb0b22.jpg\" alt=\"My First Lap\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMy First Lap\u003c/strong\u003e\u003cbr\u003e\n    Complete a lap on Mot's Island.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/6605cbbe7a3d2f873a006e2dc382142e5a540e37.jpg\" alt=\"SPEEEEEEEEEEEEEED\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSPEEEEEEEEEEEEEED\u003c/strong\u003e\u003cbr\u003e\n    Complete a lap on Mot's Island in under 1:11.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/de8382ae4eb0123a85a1ba23e1c3f601a4e3fd62.jpg\" alt=\"Shopping Haul\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eShopping Haul\u003c/strong\u003e\u003cbr\u003e\n    Purchase a Lava Hauler.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/9474318d8a4b70e98cbb04a0da74283750f3adda.jpg\" alt=\"Lava Biker\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLava Biker\u003c/strong\u003e\u003cbr\u003e\n    Purchase Lava Bike.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/50c6974f9a1bd225931e5842a83a39fd6498ba42.jpg\" alt=\"Fully Loaded\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFully Loaded\u003c/strong\u003e\u003cbr\u003e\n    Withdraw the maximum amount at an abandoned miner.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/78a71c454c1d462b46c9f3571dd00ab171611ba0.jpg\" alt=\"Frosty The Snowman\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFrosty The Snowman\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/82343e61e519b95562e70c25d56c9b7e95e203ce.jpg\" alt=\"Snowball Fight!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eSnowball Fight!\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/19cc2aa1421d84cf6a04c8290dae2df84848d3da.jpg\" alt=\"Assassin\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAssassin\u003c/strong\u003e\u003cbr\u003e\n    No description\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/e9bd78f488b3a6534e208d11bf7a70aff76819cf.jpg\" alt=\"Scout Guild Tokens\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eScout Guild Tokens\u003c/strong\u003e\u003cbr\u003e\n    Accumulate 10,000 scout guild tokens.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/bb8658c6e42c6a7a22ff1d3316a1eb7323c9806e.jpg\" alt=\"Thaw's Hammer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThaw's Hammer\u003c/strong\u003e\u003cbr\u003e\n    Purchase a Lava Thaw.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1106840/e9ce8fcc113cf02cb80aa962e169446524f99ee9.jpg\" alt=\"Calling Your Bluff\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCalling Your Bluff\u003c/strong\u003e\u003cbr\u003e\n    Purchase Lumberton Bluff Dig Site.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for Hydroneer - 0.0% complete with 0/78 achievements unlocked.",
      "date_published": "2022-02-14T00:00:00Z",
      "date_modified": "2022-02-14T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "hydroneer"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/tmux-copy-mode-binding/",
      "url": "https://go.waylonwalker.com/tmux-copy-mode-binding/",
      "title": "A better copy-mode bind for Tmux",
      "content_html": "\u003cp\u003eThe default keybinding for copy-mode \u003ccode\u003e\u0026lt;prefix\u0026gt;-[\u003c/code\u003e is one that is just so\nawkward for me to hit that I end up not using it at all.  I was on a\ncall with my buddy Nic this week and saw him just fluidly jump into\n\u003ccode\u003ecopy-mode\u003c/code\u003e in an effortless fashion, so I had to ask him for his\nkeybinding and it just made sense. Enter, that’s it.  So I have addedt\nhis to my \u003ccode\u003e~/.tmux.conf\u003c/code\u003e along with one for \u003ccode\u003ealt-enter\u003c/code\u003e and have found\nmyself using it way more so far.\u003c/p\u003e\n\u003ch2 id=\"setting-copy-mode-to-enter\"\u003eSetting copy-mode to enter \u003ca href=\"#setting-copy-mode-to-enter\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eTo do this I just popped open my \u003ccode\u003e~/.tmux.conf\u003c/code\u003e and added the following.\nNow I can get to \u003ccode\u003ecopy-mode\u003c/code\u003e with \u003ccode\u003e\u0026lt;prefix\u0026gt;-Enter\u003c/code\u003e which is \u003ccode\u003econtrol-b Enter\u003c/code\u003e, or \u003ccode\u003ealt-enter\u003c/code\u003e.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003ebind\u003c/span\u003e Enter copy-mode\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003ebind\u003c/span\u003e -n M-Enter copy-mode\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"more-on-copy-mode\"\u003eMore on copy-mode \u003ca href=\"#more-on-copy-mode\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI have a full video on copy-mode you can find here.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/tmux-copy-mode/\" class=\"wikilink\" data-title=\"tmux copy-mode\" data-description=\"https://youtu.be/-ypY_-VmBKk\" data-date=\"2021-07-28\" data-preview=\"https://youtu.be/-ypY_-VmBKk\"\u003etmux copy-mode\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\nThe default keybinding for copy-mode `\u003cprefix\u003e-[` is one that is just so\nawkward for me to hit that I end up not using it at all.  I was on a\ncall with my buddy Nic this week and saw him just fluidly jump into\n`copy-mode` in an effortless fashion, so I had to ask him for his\nkeybinding and it just made sense. Enter, that's it.  So I have addedt\nhis to my `~/.tmux.conf` along with one for `alt-enter` and have found\nmyself using it way more so far.\n\n## Setting copy-mode to enter\n\nTo do this I just popped open my `~/.tmux.conf` and added the following.\nNow I can get to `copy-mode` with `\u003cprefix\u003e-Enter` which is `control-b\nEnter`, or `alt-enter`.\n\n```bash\nbind Enter copy-mode\nbind -n M-Enter copy-mode\n```\n\n## More on copy-mode\n\nI have a full video on copy-mode you can find here.\n\n\u003ca href=\"/tmux-copy-mode/\" class=\"wikilink\" data-title=\"tmux copy-mode\" data-description=\"https://youtu.be/-ypY_-VmBKk\" data-date=\"2021-07-28\"\u003etmux copy-mode\u003c/a\u003e\n",
      "summary": "The default keybinding for copy-mode is one that is just so awkward for me to hit that I end up not using it at all. I was on a call with my buddy Nic this...",
      "date_published": "2022-02-13T17:05:23Z",
      "date_modified": "2022-02-13T17:05:23Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "tmux",
        "cli"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/python-string-is-string/",
      "url": "https://go.waylonwalker.com/python-string-is-string/",
      "title": "Python string of letters is a string of letters, but not with special",
      "content_html": "\u003cp\u003eIn python, a string is a string until you add special characters.\u003c/p\u003e\n\u003cp\u003eIn browsing twitter this morning I came accross this tweet, that showed that\nyou can use \u003ccode\u003eis\u003c/code\u003e accross two strings if they do not contain special characters.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://twitter.com/bascodes/status/1492147596688871424\"\u003ehttps://twitter.com/bascodes/status/1492147596688871424\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eI popped open ipython to play with this.  I could confirm on \u003ccode\u003e3.9.7\u003c/code\u003e, short\nstrings that I typed in worked as expected.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ewaylonwalker\u003c/span\u003e \u003cspan class=\"err\"\u003e↪\u003c/span\u003e\u003cspan class=\"n\"\u003emain\u003c/span\u003e \u003cspan class=\"n\"\u003ev3\u003c/span\u003e\u003cspan class=\"mf\"\u003e.9.7\u003c/span\u003e \u003cspan class=\"n\"\u003eipython\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e❯\u003c/span\u003e \u003cspan class=\"n\"\u003ea\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;asdf\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ewaylonwalker\u003c/span\u003e \u003cspan class=\"err\"\u003e↪\u003c/span\u003e\u003cspan class=\"n\"\u003emain\u003c/span\u003e \u003cspan class=\"n\"\u003ev3\u003c/span\u003e\u003cspan class=\"mf\"\u003e.9.7\u003c/span\u003e \u003cspan class=\"n\"\u003eipython\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e❯\u003c/span\u003e \u003cspan class=\"n\"\u003eb\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;asdf\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ewaylonwalker\u003c/span\u003e \u003cspan class=\"err\"\u003e↪\u003c/span\u003e\u003cspan class=\"n\"\u003emain\u003c/span\u003e \u003cspan class=\"n\"\u003ev3\u003c/span\u003e\u003cspan class=\"mf\"\u003e.9.7\u003c/span\u003e \u003cspan class=\"n\"\u003eipython\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e❯\u003c/span\u003e \u003cspan class=\"n\"\u003ea\u003c/span\u003e \u003cspan class=\"ow\"\u003eis\u003c/span\u003e \u003cspan class=\"n\"\u003eb\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kc\"\u003eTrue\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eUsing the \u003ccode\u003eupper()\u003c/code\u003e method on these strings does break down.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ewaylonwalker\u003c/span\u003e \u003cspan class=\"err\"\u003e↪\u003c/span\u003e\u003cspan class=\"n\"\u003emain\u003c/span\u003e \u003cspan class=\"n\"\u003ev3\u003c/span\u003e\u003cspan class=\"mf\"\u003e.9.7\u003c/span\u003e \u003cspan class=\"n\"\u003eipython\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e❯\u003c/span\u003e \u003cspan class=\"n\"\u003ea\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eupper\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e \u003cspan class=\"ow\"\u003eis\u003c/span\u003e \u003cspan class=\"n\"\u003eb\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eupper\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kc\"\u003eFalse\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ewaylonwalker\u003c/span\u003e \u003cspan class=\"err\"\u003e↪\u003c/span\u003e\u003cspan class=\"n\"\u003emain\u003c/span\u003e \u003cspan class=\"n\"\u003ev3\u003c/span\u003e\u003cspan class=\"mf\"\u003e.9.7\u003c/span\u003e \u003cspan class=\"n\"\u003eipython\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e❯\u003c/span\u003e \u003cspan class=\"n\"\u003ea\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;ASDF\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ewaylonwalker\u003c/span\u003e \u003cspan class=\"err\"\u003e↪\u003c/span\u003e\u003cspan class=\"n\"\u003emain\u003c/span\u003e \u003cspan class=\"n\"\u003ev3\u003c/span\u003e\u003cspan class=\"mf\"\u003e.9.7\u003c/span\u003e \u003cspan class=\"n\"\u003eipython\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e❯\u003c/span\u003e \u003cspan class=\"n\"\u003eb\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;ASDF\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ewaylonwalker\u003c/span\u003e \u003cspan class=\"err\"\u003e↪\u003c/span\u003e\u003cspan class=\"n\"\u003emain\u003c/span\u003e \u003cspan class=\"n\"\u003ev3\u003c/span\u003e\u003cspan class=\"mf\"\u003e.9.7\u003c/span\u003e \u003cspan class=\"n\"\u003eipython\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e❯\u003c/span\u003e \u003cspan class=\"n\"\u003ea\u003c/span\u003e \u003cspan class=\"ow\"\u003eis\u003c/span\u003e \u003cspan class=\"n\"\u003eb\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kc\"\u003eTrue\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eIf You can also see this in the id of the objects as well, which is the memmory\naddress in CPython.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ewaylonwalker\u003c/span\u003e \u003cspan class=\"err\"\u003e↪\u003c/span\u003e\u003cspan class=\"n\"\u003emain\u003c/span\u003e \u003cspan class=\"n\"\u003ev3\u003c/span\u003e\u003cspan class=\"mf\"\u003e.9.7\u003c/span\u003e \u003cspan class=\"n\"\u003eipython\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e❯\u003c/span\u003e \u003cspan class=\"nb\"\u003eid\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ea\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"mi\"\u003e140717359289568\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ewaylonwalker\u003c/span\u003e \u003cspan class=\"err\"\u003e↪\u003c/span\u003e\u003cspan class=\"n\"\u003emain\u003c/span\u003e \u003cspan class=\"n\"\u003ev3\u003c/span\u003e\u003cspan class=\"mf\"\u003e.9.7\u003c/span\u003e \u003cspan class=\"n\"\u003eipython\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e❯\u003c/span\u003e \u003cspan class=\"nb\"\u003eid\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eb\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"mi\"\u003e140717359289568\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ewaylonwalker\u003c/span\u003e \u003cspan class=\"err\"\u003e↪\u003c/span\u003e\u003cspan class=\"n\"\u003emain\u003c/span\u003e \u003cspan class=\"n\"\u003ev3\u003c/span\u003e\u003cspan class=\"mf\"\u003e.9.7\u003c/span\u003e \u003cspan class=\"n\"\u003eipython\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e❯\u003c/span\u003e \u003cspan class=\"nb\"\u003eid\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ea\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eupper\u003c/span\u003e\u003cspan class=\"p\"\u003e())\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"mi\"\u003e140717359581824\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ewaylonwalker\u003c/span\u003e \u003cspan class=\"err\"\u003e↪\u003c/span\u003e\u003cspan class=\"n\"\u003emain\u003c/span\u003e \u003cspan class=\"n\"\u003ev3\u003c/span\u003e\u003cspan class=\"mf\"\u003e.9.7\u003c/span\u003e \u003cspan class=\"n\"\u003eipython\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e❯\u003c/span\u003e \u003cspan class=\"nb\"\u003eid\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eb\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eupper\u003c/span\u003e\u003cspan class=\"p\"\u003e())\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"mi\"\u003e140717360337824\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eFinally just as the post shows if you add a special character in there it also\nbreaks.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ewaylonwalker\u003c/span\u003e \u003cspan class=\"err\"\u003e↪\u003c/span\u003e\u003cspan class=\"n\"\u003emain\u003c/span\u003e \u003cspan class=\"n\"\u003ev3\u003c/span\u003e\u003cspan class=\"mf\"\u003e.9.7\u003c/span\u003e \u003cspan class=\"n\"\u003eipython\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e❯\u003c/span\u003e \u003cspan class=\"n\"\u003ea\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;ASDF!\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ewaylonwalker\u003c/span\u003e \u003cspan class=\"err\"\u003e↪\u003c/span\u003e\u003cspan class=\"n\"\u003emain\u003c/span\u003e \u003cspan class=\"n\"\u003ev3\u003c/span\u003e\u003cspan class=\"mf\"\u003e.9.7\u003c/span\u003e \u003cspan class=\"n\"\u003eipython\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e❯\u003c/span\u003e \u003cspan class=\"n\"\u003eb\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;ASDF!\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ewaylonwalker\u003c/span\u003e \u003cspan class=\"err\"\u003e↪\u003c/span\u003e\u003cspan class=\"n\"\u003emain\u003c/span\u003e \u003cspan class=\"n\"\u003ev3\u003c/span\u003e\u003cspan class=\"mf\"\u003e.9.7\u003c/span\u003e \u003cspan class=\"n\"\u003eipython\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"err\"\u003e❯\u003c/span\u003e \u003cspan class=\"n\"\u003ea\u003c/span\u003e \u003cspan class=\"ow\"\u003eis\u003c/span\u003e \u003cspan class=\"n\"\u003eb\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kc\"\u003eFalse\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"what-should-you-do\"\u003eWhat should you do \u003ca href=\"#what-should-you-do\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eFirst and foremost, these are the exact pitfalls that \u003ccode\u003eflake8\u003c/code\u003e guards you\nagainst.  So the very first things you should take away here is that there is a\nlot of wisdom and value in \u003ccode\u003eflake8\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eSecond, the \u003ccode\u003eis\u003c/code\u003e comparison should be used for things that you want to compare\nto exact memmory addresses.  These include booleans and None.  Don’t use \u003ccode\u003eis\u003c/code\u003e\naccross two assigned variables.\u003c/p\u003e\n",
      "content_text": "\nIn python, a string is a string until you add special characters.\n\nIn browsing twitter this morning I came accross this tweet, that showed that\nyou can use `is` accross two strings if they do not contain special characters.\n\nhttps://twitter.com/bascodes/status/1492147596688871424\n\nI popped open ipython to play with this.  I could confirm on `3.9.7`, short\nstrings that I typed in worked as expected.\n\n``` python\nwaylonwalker ↪main v3.9.7 ipython\n❯ a = \"asdf\"\n\nwaylonwalker ↪main v3.9.7 ipython\n❯ b = \"asdf\"\n\nwaylonwalker ↪main v3.9.7 ipython\n❯ a is b\nTrue\n```\n\nUsing the `upper()` method on these strings does break down.\n\n``` python\nwaylonwalker ↪main v3.9.7 ipython\n❯ a.upper() is b.upper()\nFalse\n\nwaylonwalker ↪main v3.9.7 ipython\n❯ a = \"ASDF\"\n\nwaylonwalker ↪main v3.9.7 ipython\n❯ b = \"ASDF\"\n\nwaylonwalker ↪main v3.9.7 ipython\n❯ a is b\nTrue\n```\n\nIf You can also see this in the id of the objects as well, which is the memmory\naddress in CPython.\n\n``` python\nwaylonwalker ↪main v3.9.7 ipython\n❯ id(a)\n140717359289568\n\nwaylonwalker ↪main v3.9.7 ipython\n❯ id(b)\n140717359289568\n\nwaylonwalker ↪main v3.9.7 ipython\n❯ id(a.upper())\n140717359581824\n\nwaylonwalker ↪main v3.9.7 ipython\n❯ id(b.upper())\n140717360337824\n```\n\nFinally just as the post shows if you add a special character in there it also\nbreaks.\n\n``` python\nwaylonwalker ↪main v3.9.7 ipython\n❯ a = \"ASDF!\"\n\nwaylonwalker ↪main v3.9.7 ipython\n❯ b = \"ASDF!\"\n\nwaylonwalker ↪main v3.9.7 ipython\n❯ a is b\nFalse\n```\n\n## What should you do\n\nFirst and foremost, these are the exact pitfalls that `flake8` guards you\nagainst.  So the very first things you should take away here is that there is a\nlot of wisdom and value in `flake8`.\n\nSecond, the `is` comparison should be used for things that you want to compare\nto exact memmory addresses.  These include booleans and None.  Don't use `is`\naccross two assigned variables.\n",
      "summary": "In python, a string is a string until you add special characters.",
      "date_published": "2022-02-12T16:05:55Z",
      "date_modified": "2022-02-12T16:05:55Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/linux-bluetoothctl/",
      "url": "https://go.waylonwalker.com/linux-bluetoothctl/",
      "title": "Bluetooth at the command line on Ubuntu",
      "content_html": "\u003cp\u003eOne thing about moving to a tiling window manager like awesome wm or i3 is that\nthey are so lightweight they are all missing things like bluetooth gui’s out of\nthe box, and you generally bring your own.  Today I just needed to connet a new\nset of headphones, so I decided to just give the \u003ccode\u003ebluetoothctl\u003c/code\u003e cli a try.  It\nseems to come with Ubuntu, I don’t think I did anything to get it.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ebluetoothctl\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eRunning \u003ccode\u003ebluetoothctl\u003c/code\u003e pops you into a repl/shell like bah, python, or ipython.\nFrom here you can execute \u003ccode\u003ebluetoothctl\u003c/code\u003e commands.\u003c/p\u003e\n\u003cp\u003eHere is what I had to do to connect my headphones.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# list out the commands available\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003ehelp\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# scan for new devices and stop when you see your device show up\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003escan on\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003escan off\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# list devices\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edevices\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epaired-devices\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# pair the device\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epair XX:XX:XX:XX:XX:XX\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# now your device should show up in the paired list\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epaired-devices\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# connet the device\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003econnect XX:XX:XX:XX:XX:XX\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"help\"\u003ehelp \u003ca href=\"#help\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eHere is the output of the help menu on my machine, it seems pretty straight\nforward to block, and remove devices from here.\u003c/p\u003e\n\u003cp\u003enote ctrl revers to the bluetooth controller on the machine you are on, and dev\nrefers to a device id.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eMenu main:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eAvailable commands:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e-------------------\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eadvertise                                         Advertise Options Submenu\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003escan                                              Scan Options Submenu\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egatt                                              Generic Attribute Submenu\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003elist                                              List available controllers\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eshow \u003cspan class=\"o\"\u003e[\u003c/span\u003ectrl\u003cspan class=\"o\"\u003e]\u003c/span\u003e                                       Controller information\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eselect\u003c/span\u003e \u0026lt;ctrl\u0026gt;                                     Select default controller\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edevices                                           List available devices\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epaired-devices                                    List paired devices\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esystem-alias \u0026lt;name\u0026gt;                               Set controller \u003cspan class=\"nb\"\u003ealias\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ereset-alias                                       Reset controller \u003cspan class=\"nb\"\u003ealias\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epower \u0026lt;on/off\u0026gt;                                    Set controller power\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epairable \u0026lt;on/off\u0026gt;                                 Set controller pairable mode\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ediscoverable \u0026lt;on/off\u0026gt;                             Set controller discoverable mode\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eagent \u0026lt;on/off/capability\u0026gt;                         Enable/disable agent with given capability\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edefault-agent                                     Set agent as the default one\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eadvertise \u0026lt;on/off/type\u0026gt;                           Enable/disable advertising with given \u003cspan class=\"nb\"\u003etype\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eset-alias \u0026lt;alias\u0026gt;                                 Set device \u003cspan class=\"nb\"\u003ealias\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003escan \u0026lt;on/off\u0026gt;                                     Scan \u003cspan class=\"k\"\u003efor\u003c/span\u003e devices\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003einfo \u003cspan class=\"o\"\u003e[\u003c/span\u003edev\u003cspan class=\"o\"\u003e]\u003c/span\u003e                                        Device information\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epair \u003cspan class=\"o\"\u003e[\u003c/span\u003edev\u003cspan class=\"o\"\u003e]\u003c/span\u003e                                        Pair with device\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003etrust \u003cspan class=\"o\"\u003e[\u003c/span\u003edev\u003cspan class=\"o\"\u003e]\u003c/span\u003e                                       Trust device\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euntrust \u003cspan class=\"o\"\u003e[\u003c/span\u003edev\u003cspan class=\"o\"\u003e]\u003c/span\u003e                                     Untrust device\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eblock \u003cspan class=\"o\"\u003e[\u003c/span\u003edev\u003cspan class=\"o\"\u003e]\u003c/span\u003e                                       Block device\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eunblock \u003cspan class=\"o\"\u003e[\u003c/span\u003edev\u003cspan class=\"o\"\u003e]\u003c/span\u003e                                     Unblock device\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eremove \u0026lt;dev\u0026gt;                                      Remove device\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003econnect \u0026lt;dev\u0026gt;                                     Connect device\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edisconnect \u003cspan class=\"o\"\u003e[\u003c/span\u003edev\u003cspan class=\"o\"\u003e]\u003c/span\u003e                                  Disconnect device\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emenu \u0026lt;name\u0026gt;                                       Select submenu\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eversion                                           Display version\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003equit                                              Quit program\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eexit\u003c/span\u003e                                              Quit program\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003ehelp\u003c/span\u003e                                              Display \u003cspan class=\"nb\"\u003ehelp\u003c/span\u003e about this program\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"final-impressions\"\u003eFinal Impressions \u003ca href=\"#final-impressions\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis was something that I have never used, and thought it would be intimidating\nbut it worked great first try out of the box.  It could have been my device on\nthe other end, but this was one of the least frustrations I have had pairing a\nnew device.\u003c/p\u003e\n",
      "content_text": "\nOne thing about moving to a tiling window manager like awesome wm or i3 is that\nthey are so lightweight they are all missing things like bluetooth gui's out of\nthe box, and you generally bring your own.  Today I just needed to connet a new\nset of headphones, so I decided to just give the `bluetoothctl` cli a try.  It\nseems to come with Ubuntu, I don't think I did anything to get it.\n\n``` bash\nbluetoothctl\n```\n\nRunning `bluetoothctl` pops you into a repl/shell like bah, python, or ipython.\nFrom here you can execute `bluetoothctl` commands.\n\n\nHere is what I had to do to connect my headphones.\n\n``` bash\n# list out the commands available\nhelp\n\n# scan for new devices and stop when you see your device show up\nscan on\nscan off\n\n# list devices\ndevices\npaired-devices\n\n# pair the device\npair XX:XX:XX:XX:XX:XX\n\n# now your device should show up in the paired list\npaired-devices\n\n# connet the device\nconnect XX:XX:XX:XX:XX:XX\n```\n\n## help\n\nHere is the output of the help menu on my machine, it seems pretty straight\nforward to block, and remove devices from here.\n\nnote ctrl revers to the bluetooth controller on the machine you are on, and dev\nrefers to a device id.\n\n``` bash\nMenu main:\nAvailable commands:\n-------------------\nadvertise                                         Advertise Options Submenu\nscan                                              Scan Options Submenu\ngatt                                              Generic Attribute Submenu\nlist                                              List available controllers\nshow [ctrl]                                       Controller information\nselect \u003cctrl\u003e                                     Select default controller\ndevices                                           List available devices\npaired-devices                                    List paired devices\nsystem-alias \u003cname\u003e                               Set controller alias\nreset-alias                                       Reset controller alias\npower \u003con/off\u003e                                    Set controller power\npairable \u003con/off\u003e                                 Set controller pairable mode\ndiscoverable \u003con/off\u003e                             Set controller discoverable mode\nagent \u003con/off/capability\u003e                         Enable/disable agent with given capability\ndefault-agent                                     Set agent as the default one\nadvertise \u003con/off/type\u003e                           Enable/disable advertising with given type\nset-alias \u003calias\u003e                                 Set device alias\nscan \u003con/off\u003e                                     Scan for devices\ninfo [dev]                                        Device information\npair [dev]                                        Pair with device\ntrust [dev]                                       Trust device\nuntrust [dev]                                     Untrust device\nblock [dev]                                       Block device\nunblock [dev]                                     Unblock device\nremove \u003cdev\u003e                                      Remove device\nconnect \u003cdev\u003e                                     Connect device\ndisconnect [dev]                                  Disconnect device\nmenu \u003cname\u003e                                       Select submenu\nversion                                           Display version\nquit                                              Quit program\nexit                                              Quit program\nhelp                                              Display help about this program\n```\n\n## Final Impressions\n\nThis was something that I have never used, and thought it would be intimidating\nbut it worked great first try out of the box.  It could have been my device on\nthe other end, but this was one of the least frustrations I have had pairing a\nnew device.\n",
      "summary": "One thing about moving to a tiling window manager like awesome wm or i3 is that they are so lightweight they are all missing things like bluetooth gui's out...",
      "date_published": "2022-02-11T22:01:41Z",
      "date_modified": "2022-02-11T22:01:41Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux",
        "desktop"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/popen-stderr/",
      "url": "https://go.waylonwalker.com/popen-stderr/",
      "title": "Read stderr from python subprocess.Popen",
      "content_html": "\u003cp\u003eI often run shell commands from python with Popen, but not often enough\ndo I set up error handline for these subprocesses.  It’s not too hard,\nbut it can be a bit awkward if you don’t do it enough.\u003c/p\u003e\n\u003ch2 id=\"using-popen\"\u003eUsing Popen \u003ca href=\"#using-popen\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003esubprocess\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003esubprocess\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003ePopen\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# this will run the shell command `cat me` and capture stdout and stderr\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eproc\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003ePopen\u003c/span\u003e\u003cspan class=\"p\"\u003e([\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;cat\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;me\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e],\u003c/span\u003e \u003cspan class=\"n\"\u003estdout\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003esubprocess\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ePIPE\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003estderr\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003esubprocess\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ePIPE\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# this will wait for the process to finish.\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eproc\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ewait\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"reading-from-stderr\"\u003ereading from stderr \u003ca href=\"#reading-from-stderr\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eTo get the stderr we must get it from the proc, read it, and decode the\nbystring.  Note that we can only get the stderr object once, so if you want to\ndo more than just read it you will need to store a copy of it.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eproc\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003estderr\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eread\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003edecode\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"better-exception\"\u003eBetter Exception \u003ca href=\"#better-exception\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNow that we can read the \u003ccode\u003estderr\u003c/code\u003e we can make better error tracking for the\nuser so they can see what to do to resolve the issue rather than blindly\nfailing.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eerr_message\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eproc\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003estderr\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eread\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003edecode\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"n\"\u003eproc\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ereturncode\u003c/span\u003e \u003cspan class=\"o\"\u003e!=\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"c1\"\u003e# the process was not successful\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;No such file\u0026#34;\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003eerr_message\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003eraise\u003c/span\u003e \u003cspan class=\"ne\"\u003eFileNotFoundError\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;No such file \u0026#34;me\u0026#34;\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nI often run shell commands from python with Popen, but not often enough\ndo I set up error handline for these subprocesses.  It's not too hard,\nbut it can be a bit awkward if you don't do it enough.\n\n## Using Popen\n\n\n``` python\nimport subprocess\nfrom subprocess import Popen\n\n# this will run the shell command `cat me` and capture stdout and stderr\nproc = Popen([\"cat\", \"me\"], stdout=subprocess.PIPE, stderr=subprocess.PIPE)\n\n# this will wait for the process to finish.\nproc.wait()\n```\n\n## reading from stderr\n\nTo get the stderr we must get it from the proc, read it, and decode the\nbystring.  Note that we can only get the stderr object once, so if you want to\ndo more than just read it you will need to store a copy of it.\n\n``` python\nproc.stderr.read().decode()\n```\n\n## Better Exception\n\nNow that we can read the `stderr` we can make better error tracking for the\nuser so they can see what to do to resolve the issue rather than blindly\nfailing.\n\n``` python\nerr_message = proc.stderr.read().decode()\nif proc.returncode != 0:\n    # the process was not successful\n\n    if \"No such file\" in err_message:\n        raise FileNotFoundError('No such file \"me\"')\n```\n",
      "summary": "I often run shell commands from python with Popen, but not often enough do I set up error handline for these subprocesses. It's not too hard, but it can be a...",
      "date_published": "2022-02-10T03:57:32Z",
      "date_modified": "2022-02-10T03:57:32Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/simple-samba/",
      "url": "https://go.waylonwalker.com/simple-samba/",
      "title": "Simple Samba Share Setup",
      "content_html": "\u003cp\u003eSamba is an implementation of the smb protocol that allows me to setup network\nshares on my linux machine that I can open on a variety of devices.\u003c/p\u003e\n\u003cp\u003eI think the \u003ca href=\"/homelab/\" class=\"glossary-term\" title=\"A place to self host applications. For me this is primarily self built web applications, and applications for sharing files with my family. Techno Tim has a...\"\u003ehomelab\u003c/a\u003e is starting to intrigue me enought to dive into the path of\nexperimenting with different things that I might want setup in my own home.\nOne key piece of this is network storage.  As I looked into nas, I realized\nthat it takes a dedicated machine, or one virtualized at a lower level than I\nhave capability for right now.\u003c/p\u003e\n\u003ch2 id=\"humble-beginnings\"\u003eHumble Beginnings \u003ca href=\"#humble-beginnings\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eTo get goind I am going to make a directory \u003ccode\u003e/srv/samba/public\u003c/code\u003e open to anyone\non my network.  I am not going to worry too much about it, I just want\nsomething up and running so that I can learn.\u003c/p\u003e\n\u003cp\u003eInstall samba, open the firewall, and edit the \u003ccode\u003esmb.conf\u003c/code\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003esudo apt install samba samba-common-bin\nsudo ufw allow samba\nsudo nvim /etc/samba/smb.conf\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eI added this to the end of my \u003ccode\u003esmb.conf\u003c/code\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e[public]\n\ncomment = public share, no need to enter username and password\npath = /srv/samba/public/\nbrowseable = yes\nwritable = yes\nguest ok = yes\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThen I made the \u003ccode\u003e/srv/samba/public\u003c/code\u003e directory and made it writable by anyone.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003esudo mkdir -p /srv/samba/public\nsudo setfacl -R -m \u0026#34;u:nobody:rwx\u0026#34; /srv/samba/public/\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2 id=\"windows-yes-windows\"\u003eWindows, yes windows \u003ca href=\"#windows-yes-windows\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI have a windows desktop in my office, primarily for my wife to run premiere\npro, and my son to play Minecraft.  I walked over to it, opened the file\nexplorer, and ernt to \u003ccode\u003e\\\\\u0026lt;my-local-ip\u0026gt;\u003c/code\u003e.  It asked for the username and\npassword, I typed in the username and password of the linux device I have the\nshare running on, and I was in.  Right there I could see the Public folder.  I\nopened it and made a files successfully.\u003c/p\u003e\n",
      "content_text": "\nSamba is an implementation of the smb protocol that allows me to setup network\nshares on my linux machine that I can open on a variety of devices.\n\nI think the homelab is starting to intrigue me enought to dive into the path of\nexperimenting with different things that I might want setup in my own home.\nOne key piece of this is network storage.  As I looked into nas, I realized\nthat it takes a dedicated machine, or one virtualized at a lower level than I\nhave capability for right now.\n\n\n## Humble Beginnings\n\nTo get goind I am going to make a directory `/srv/samba/public` open to anyone\non my network.  I am not going to worry too much about it, I just want\nsomething up and running so that I can learn.\n\nInstall samba, open the firewall, and edit the `smb.conf`\n```\nsudo apt install samba samba-common-bin\nsudo ufw allow samba\nsudo nvim /etc/samba/smb.conf\n```\n\nI added this to the end of my `smb.conf`\n\n```\n[public]\n\ncomment = public share, no need to enter username and password\npath = /srv/samba/public/\nbrowseable = yes\nwritable = yes\nguest ok = yes\n```\n\nThen I made the `/srv/samba/public` directory and made it writable by anyone.\n\n```\nsudo mkdir -p /srv/samba/public\nsudo setfacl -R -m \"u:nobody:rwx\" /srv/samba/public/\n```\n\n## Windows, yes windows\n\nI have a windows desktop in my office, primarily for my wife to run premiere\npro, and my son to play Minecraft.  I walked over to it, opened the file\nexplorer, and ernt to `\\\\\u003cmy-local-ip\u003e`.  It asked for the username and\npassword, I typed in the username and password of the linux device I have the\nshare running on, and I was in.  Right there I could see the Public folder.  I\nopened it and made a files successfully.\n",
      "summary": "Samba is an implementation of the smb protocol that allows me to setup network shares on my linux machine that I can open on a variety of devices.",
      "date_published": "2022-02-09T14:41:20Z",
      "date_modified": "2022-02-09T14:41:20Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux",
        "linux",
        "linux"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/ag-ahead/",
      "url": "https://go.waylonwalker.com/ag-ahead/",
      "title": "ag silver searcher look ahead and look behind",
      "content_html": "\u003cp\u003eA super useful tool when doing PR’s or checking your own work during a big\nrefactor is the silver searcher.  Its a super fast command line based searching\ntool. You just run \u003ccode\u003eag \u0026#34;\u0026lt;search term\u0026gt;\u0026#34;\u003c/code\u003e to search for your search term.  This\nwill list out every line of every file in any directory under your current\nworking directory that contains a match.\u003c/p\u003e\n\u003ch2 id=\"aheadbehind\"\u003eAhead/Behind \u003ca href=\"#aheadbehind\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIt’s often useful to need some extra context around the change.  I recently\nreviewed a bunch of PR’s that moved schema from \u003ccode\u003esave_args\u003c/code\u003e to the root of the\ndataset in all yaml configs.  To ensure they all made it to the top level\nDataSet configuraion, and not underneath save_args.  I can do a search for all\nthe schemas, and ensure that none of them are under \u003ccode\u003esave_args\u003c/code\u003e anymore.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eag \u003cspan class=\"s2\"\u003e\u0026#34;schema: \u0026#34;\u003c/span\u003e -A \u003cspan class=\"m\"\u003e12\u003c/span\u003e -B \u003cspan class=\"m\"\u003e12\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nA super useful tool when doing PR's or checking your own work during a big\nrefactor is the silver searcher.  Its a super fast command line based searching\ntool. You just run `ag \"\u003csearch term\u003e\"` to search for your search term.  This\nwill list out every line of every file in any directory under your current\nworking directory that contains a match.\n\n## Ahead/Behind\n\nIt's often useful to need some extra context around the change.  I recently\nreviewed a bunch of PR's that moved schema from `save_args` to the root of the\ndataset in all yaml configs.  To ensure they all made it to the top level\nDataSet configuraion, and not underneath save_args.  I can do a search for all\nthe schemas, and ensure that none of them are under `save_args` anymore.\n\n``` bash\nag \"schema: \" -A 12 -B 12\n```\n",
      "summary": "A super useful tool when doing PR's or checking your own work during a big refactor is the silver searcher. Its a super fast command line based searching...",
      "date_published": "2022-02-08T13:54:08Z",
      "date_modified": "2022-02-08T13:54:08Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "cli",
        "bash",
        "linux"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/docker-minecraft-server/",
      "url": "https://go.waylonwalker.com/docker-minecraft-server/",
      "title": "Running a Minecraft Server in Docker",
      "content_html": "\u003cp\u003eI’ve ran a Minecraft server at home since December 2017 for me and my\nson to play on.  We start a brand new one somewhere between every day\nand every week.  The older he gets the longer the server lasts.\u003c/p\u003e\n\u003cp\u003eIn all these years, I’ve been popping open the command line and running\nthe server manually, and even inside of Digital Ocean occasionally to\nplay a more public server with a friend.\u003c/p\u003e\n\u003cp\u003eMy buddy Nic has been sharing me some of his \u003ca href=\"/homelab/\" class=\"glossary-term\" title=\"A place to self host applications. For me this is primarily self built web applications, and applications for sharing files with my family. Techno Tim has a...\"\u003ehomelab\u003c/a\u003e setup, and it’s\nreally got me to thinking about what I can run at home, and Dockerizing\nall the things.  Today I found a really sweet github repo that had a\nminecraft server running in docker with a pretty incredible setup.\u003c/p\u003e\n\u003cp\u003eI ended up running the first thing in the Readme that included a volume\nmount.  If you are going to run this container, I HIGHLY reccomend that\nyou make sure that you have your world volume mounted, otherwise it will\ndie with your docker container.\u003c/p\u003e\n\u003ch2 id=\"docker-compose\"\u003eDocker Compose \u003ca href=\"#docker-compose\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWith the following stored as my \u003ccode\u003edocker-compose.yml\u003c/code\u003e in a brand new and\notherwise empty directory I was ready to start the server for the night.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003eversion\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;3\u0026#34;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003eservices\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003emc\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003econtainer_name\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ewalkercraft\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eimage\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eitzg/minecraft-server\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eports\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e- \u003cspan class=\"m\"\u003e25565\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"m\"\u003e25565\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eenvironment\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003eEULA\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;TRUE\u0026#34;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003etty\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"kc\"\u003etrue\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003estdin_open\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"kc\"\u003etrue\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003erestart\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eunless-stopped\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003evolumes\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"c\"\u003e# attach a directory relative to the directory containing this compose file\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e- \u003cspan class=\"l\"\u003e./minecraft-data:/data\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eTo start the server we open up the terminal in this directory and run\nthe follwing command.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edocker compose up -d\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eOnce its up and running we can run commands on the server simply by\nattaching to it.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edocker attach walkercraft\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"a-few-common-commands-we-run-in-the-server\"\u003eA few common commands we run in the server \u003ca href=\"#a-few-common-commands-we-run-in-the-server\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWe play very casually most of the time so we will set keepInventory to\ntrue so that we do not loose our inventory when we die.  Sometimes we\nalso op ourselve so that we can toggle gamemode into creative.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# set the game to keep your inventory when you die.\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e/gamrule keepInventory \u003cspan class=\"nb\"\u003etrue\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# give everyone operater priveledges to they can run commands\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e/op @a\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# give playername op\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e/op playername\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nI've ran a Minecraft server at home since December 2017 for me and my\nson to play on.  We start a brand new one somewhere between every day\nand every week.  The older he gets the longer the server lasts.\n\nIn all these years, I've been popping open the command line and running\nthe server manually, and even inside of Digital Ocean occasionally to\nplay a more public server with a friend.\n\nMy buddy Nic has been sharing me some of his homelab setup, and it's\nreally got me to thinking about what I can run at home, and Dockerizing\nall the things.  Today I found a really sweet github repo that had a\nminecraft server running in docker with a pretty incredible setup.\n\nI ended up running the first thing in the Readme that included a volume\nmount.  If you are going to run this container, I HIGHLY reccomend that\nyou make sure that you have your world volume mounted, otherwise it will\ndie with your docker container.\n\n## Docker Compose\n\nWith the following stored as my `docker-compose.yml` in a brand new and\notherwise empty directory I was ready to start the server for the night.\n\n``` yaml\nversion: \"3\"\n\nservices:\n  mc:\n    container_name: walkercraft\n    image: itzg/minecraft-server\n    ports:\n      - 25565:25565\n    environment:\n      EULA: \"TRUE\"\n    tty: true\n    stdin_open: true\n    restart: unless-stopped\n    volumes:\n      # attach a directory relative to the directory containing this compose file\n      - ./minecraft-data:/data\n```\n\nTo start the server we open up the terminal in this directory and run\nthe follwing command.\n\n``` bash\ndocker compose up -d\n```\n\nOnce its up and running we can run commands on the server simply by\nattaching to it.\n\n``` bash\ndocker attach walkercraft\n```\n\n## A few common commands we run in the server\n\nWe play very casually most of the time so we will set keepInventory to\ntrue so that we do not loose our inventory when we die.  Sometimes we\nalso op ourselve so that we can toggle gamemode into creative.\n\n```bash\n# set the game to keep your inventory when you die.\n/gamrule keepInventory true\n\n# give everyone operater priveledges to they can run commands\n/op @a\n\n# give playername op\n/op playername\n```\n",
      "summary": "I've ran a Minecraft server at home since December 2017 for me and my son to play on. We start a brand new one somewhere between every day and every week....",
      "date_published": "2022-02-07T02:35:21Z",
      "date_modified": "2022-02-07T02:35:21Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "docker",
        "homelab",
        "minecraft",
        "gaming"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/install-rust/",
      "url": "https://go.waylonwalker.com/install-rust/",
      "title": "Installing Rust and Cargo on Ubuntu 21.10 using Ansible",
      "content_html": "\u003cp\u003eInstalling rust in your own ansible playbook will make sure that you can\nget consistent installs accross all the machines you may use, or\nreplicate your development machine if it ever goes down.\u003c/p\u003e\n\u003ch2 id=\"personal-philosophy\"\u003ePersonal philosophy \u003ca href=\"#personal-philosophy\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI try to install everything that I will want to use for more than just a\ntrial inside of my ansible playbook.  This way I always get the same\nsetup across my work and home machines, and anytime I might setup a\nthrow away vm.\u003c/p\u003e\n\u003ch2 id=\"reccommended-install\"\u003ereccommended install \u003ca href=\"#reccommended-install\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis is how rust reccomends that you install it on Ubuntu.  First update\nyour system, then run their installer, and finally check that the\ninstall was successful.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# system update\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo apt update\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo apt upgrade\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# download and run the rust installer\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecurl https://sh.rustup.rs -sSf \u003cspan class=\"p\"\u003e|\u003c/span\u003e sh\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# confirm your installation is successful\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003erustc --version\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"ansible-install\"\u003eAnsible Install \u003ca href=\"#ansible-install\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe first thing I do in my playbooks is to check if the tool is already\ninstalled.  Here I chose to look for \u003ccode\u003ecargo\u003c/code\u003e, you could also look for\n\u003ccode\u003erustc\u003c/code\u003e.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e- \u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003echeck if cargo is installed\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eshell\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ecommand -v cargo\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eregister\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ecargo_exists\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eignore_errors\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"kc\"\u003eyes\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003eI first check for an existing install so I can re-run my playbooks\nquickly filling in only missing tools. More on this\n\u003ca href=\"https://waylonwalker.com/til/ansible_install_if_not_callable/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eansible install conditionally\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eNext we need to download the installer script and make it executable.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e- \u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eDownload Installer\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003ewhen\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ecargo_exists is failed\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eget_url\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003eurl\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ehttps://sh.rustup.rs\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003edest\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003e/tmp/sh.rustup.rs\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003emode\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;0755\u0026#39;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003eforce\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;yes\u0026#39;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003etags\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e- \u003cspan class=\"l\"\u003erust\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003eI chose to download the installer, because I was unable to pass in the\n\u003ccode\u003e-y\u003c/code\u003e flag otherwise, which is required to do unattended installs.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eLast we just run the installer given to us by rust with the \u003ccode\u003e-y\u003c/code\u003e flag so\nthat it will run unattended.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e- \u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003einstall rust/cargo\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003ewhen\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ecargo_exists is failed\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eshell\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003e/tmp/sh.rustup.rs -y\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003etags\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e- \u003cspan class=\"l\"\u003erust\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"one-more-thing\"\u003eOne more thing \u003ca href=\"#one-more-thing\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eMake sure that you source your cargo env, otherwise your shell will not\nfind \u003ccode\u003erustc\u003c/code\u003e or \u003ccode\u003ecargo\u003c/code\u003e.  I chose to do this by adding the following\nline to my \u003ccode\u003e~/.zshrc\u003c/code\u003e.  You can but it in \u003ccode\u003e~/.bashrc\u003c/code\u003e if that is your\nthing, or just run it in your shell to just get it to work.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e[\u003c/span\u003e -f ~/.cargo/env \u003cspan class=\"o\"\u003e]\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e \u003cspan class=\"nb\"\u003esource\u003c/span\u003e \u003cspan class=\"nv\"\u003e$HOME\u003c/span\u003e/.cargo/env\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"full-install-playbook\"\u003eFull Install Playbook \u003ca href=\"#full-install-playbook\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eHere is a fully working install playbook to get you started or to port\ninto your own playbook.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e- \u003cspan class=\"nt\"\u003ehosts\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003elocalhost\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003egather_facts\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"kc\"\u003etrue\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003ebecome\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"kc\"\u003etrue\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003ebecome_user\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;{{ lookup(\u0026#39;env\u0026#39;, \u0026#39;USER\u0026#39;) }}\u0026#34;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003epre_tasks\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e- \u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eupdate repositories\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003eapt\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eupdate_cache=yes\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003ebecome_user\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eroot\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003echanged_when\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"kc\"\u003eFalse\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003evars\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003euser\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;{{ ansible_user_id }}\u0026#34;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003etasks\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e- \u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003echeck if cargo is installed\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eshell\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ecommand -v cargo\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eregister\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ecargo_exists\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eignore_errors\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"kc\"\u003eyes\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e- \u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eDownload Installer\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003ewhen\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ecargo_exists is failed\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eget_url\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003eurl\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ehttps://sh.rustup.rs\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003edest\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003e/tmp/sh.rustup.rs\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003emode\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;0755\u0026#39;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003eforce\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;yes\u0026#39;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003etags\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e- \u003cspan class=\"l\"\u003erust\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e- \u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003einstall rust/cargo\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003ewhen\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ecargo_exists is failed\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eshell\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003e/tmp/sh.rustup.rs -y\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003etags\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e- \u003cspan class=\"l\"\u003erust\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eYou can save this as a  \u003ccode\u003elocal.yml\u003c/code\u003e and run the following in your shell\nto run the playbook on your local machine.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eansible-playbook local.yml --ask-become-pass\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003enote: \u003ccode\u003e--ask-become-pass\u003c/code\u003e is required for the system update step.\nThis will ask for your password as soon as ansible starts.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eI also have a very similar article on hwo I \u003ca href=\"https://waylonwalker.com/til/ansible_install_fonts/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eansible install fonts\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\nInstalling rust in your own ansible playbook will make sure that you can\nget consistent installs accross all the machines you may use, or\nreplicate your development machine if it ever goes down.\n\n## Personal philosophy\n\nI try to install everything that I will want to use for more than just a\ntrial inside of my ansible playbook.  This way I always get the same\nsetup across my work and home machines, and anytime I might setup a\nthrow away vm.\n\n## reccommended install\n\nThis is how rust reccomends that you install it on Ubuntu.  First update\nyour system, then run their installer, and finally check that the\ninstall was successful.\n\n``` bash\n# system update\nsudo apt update\nsudo apt upgrade\n\n# download and run the rust installer\ncurl https://sh.rustup.rs -sSf | sh\n\n# confirm your installation is successful\nrustc --version\n```\n\n## Ansible Install\n\nThe first thing I do in my playbooks is to check if the tool is already\ninstalled.  Here I chose to look for `cargo`, you could also look for\n`rustc`.\n\n``` yaml\n  - name: check if cargo is installed\n    shell: command -v cargo\n    register: cargo_exists\n    ignore_errors: yes\n```\n\n\u003e I first check for an existing install so I can re-run my playbooks\n\u003e quickly filling in only missing tools. More on this\n\u003e [ansible install conditionally](https://waylonwalker.com/til/ansible_install_if_not_callable/)\n\nNext we need to download the installer script and make it executable.\n\n``` yaml\n  - name: Download Installer\n    when: cargo_exists is failed\n    get_url:\n      url: https://sh.rustup.rs\n      dest: /tmp/sh.rustup.rs\n      mode: '0755'\n      force: 'yes'\n    tags:\n      - rust\n```\n\n\u003e I chose to download the installer, because I was unable to pass in the\n\u003e `-y` flag otherwise, which is required to do unattended installs.\n\nLast we just run the installer given to us by rust with the `-y` flag so\nthat it will run unattended.\n\n``` yaml\n\n  - name: install rust/cargo\n    when: cargo_exists is failed\n    shell: /tmp/sh.rustup.rs -y\n    tags:\n      - rust\n```\n\n## One more thing\n\nMake sure that you source your cargo env, otherwise your shell will not\nfind `rustc` or `cargo`.  I chose to do this by adding the following\nline to my `~/.zshrc`.  You can but it in `~/.bashrc` if that is your\nthing, or just run it in your shell to just get it to work.\n\n``` bash\n[ -f ~/.cargo/env ] \u0026\u0026 source $HOME/.cargo/env\n```\n\n## Full Install Playbook\n\nHere is a fully working install playbook to get you started or to port\ninto your own playbook.\n\n``` yaml\n- hosts: localhost\n  gather_facts: true\n  become: true\n  become_user: \"{{ lookup('env', 'USER') }}\"\n\n  pre_tasks:\n    - name: update repositories\n      apt: update_cache=yes\n      become_user: root\n      changed_when: False\n  vars:\n    user: \"{{ ansible_user_id }}\"\n  tasks:\n  - name: check if cargo is installed\n    shell: command -v cargo\n    register: cargo_exists\n    ignore_errors: yes\n\n  - name: Download Installer\n    when: cargo_exists is failed\n    get_url:\n      url: https://sh.rustup.rs\n      dest: /tmp/sh.rustup.rs\n      mode: '0755'\n      force: 'yes'\n    tags:\n      - rust\n\n  - name: install rust/cargo\n    when: cargo_exists is failed\n    shell: /tmp/sh.rustup.rs -y\n    tags:\n      - rust\n\n```\n\nYou can save this as a  `local.yml` and run the following in your shell\nto run the playbook on your local machine.\n\n``` bash\nansible-playbook local.yml --ask-become-pass\n```\n\n\u003e note: `--ask-become-pass` is required for the system update step.\n\u003e This will ask for your password as soon as ansible starts.\n\n\nI also have a very similar article on hwo I [ansible install fonts](https://waylonwalker.com/til/ansible_install_fonts/)\n",
      "summary": "Installing rust in your own ansible playbook will make sure that you can get consistent installs accross all the machines you may use, or replicate your...",
      "date_published": "2022-02-06T15:34:02Z",
      "date_modified": "2022-02-06T15:34:02Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/python-markdown-ast-paragraph/",
      "url": "https://go.waylonwalker.com/python-markdown-ast-paragraph/",
      "title": "Using a Python Markdown ast to Find All Paragraphs",
      "content_html": "\u003cp\u003eIn looking for a way to automatically generate descriptions for pages I\nstumbled into a markdown ast in python.  It allows me to go over the\nmarkdown page and get only paragraph text.  This will ignore headings,\nblockquotes, and code fences.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003ecommonmark\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003efrontmatter\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epost\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003efrontmatter\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eload\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;post.md\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eparser\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003ecommonmark\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eParser\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003east\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eparser\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eparse\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003epost\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003econtent\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eparagraphs\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003enode\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003east\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ewalker\u003c/span\u003e\u003cspan class=\"p\"\u003e():\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"n\"\u003enode\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003et\u003c/span\u003e \u003cspan class=\"o\"\u003e==\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;paragraph\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003eparagraphs\u003c/span\u003e \u003cspan class=\"o\"\u003e+=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34; \u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003eparagraphs\u003c/span\u003e \u003cspan class=\"o\"\u003e+=\u003c/span\u003e \u003cspan class=\"n\"\u003enode\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003efirst_child\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eliteral\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eIt’s also super fast, previously I was rendering to \u003ca href=\"/html/\" class=\"glossary-term\" title=\"HTML (HyperText Markup Language) is the standard markup language used to create and design documents on the World Wide Web. It structures web content by...\"\u003ehtml\u003c/a\u003e and using\nbeautifulsoup to get only the paragraphs.  Using the commonmark ast was\nabout 5x faster on my site.\u003c/p\u003e\n\u003ch3 id=\"duplicate-paragraphs\"\u003eDuplicate Paragraphs \u003ca href=\"#duplicate-paragraphs\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eWhen I originally wrote this post, I did not realize at the time that\ncommonmark duplicates nodes.  I still do not understand why, but I have had\nsuccess duplicating them based on the source position of the node with the\nsnippet below.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003eitertools\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003ecompress\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003ecommonmark\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003efrontmatter\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epost\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003efrontmatter\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eload\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;post.md\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eparser\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003ecommonmark\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eParser\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003east\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eparser\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eparse\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003epost\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003econtent\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# find all paragraph nodes\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eparagraph_nodes\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003en\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003en\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003east\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ewalker\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"n\"\u003en\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003et\u003c/span\u003e \u003cspan class=\"o\"\u003e==\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;paragraph\u0026#34;\u003c/span\u003e \u003cspan class=\"ow\"\u003eand\u003c/span\u003e \u003cspan class=\"n\"\u003en\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003efirst_child\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eliteral\u003c/span\u003e \u003cspan class=\"ow\"\u003eis\u003c/span\u003e \u003cspan class=\"ow\"\u003enot\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# for reasons unknown to me commonmark duplicates nodes, dedupe based on sourcepos\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003esourcepos\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"n\"\u003ep\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003esourcepos\u003c/span\u003e \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003ep\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003eparagraph_nodes\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# find first occurence of node based on source position\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eunique_mask\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"n\"\u003esourcepos\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eindex\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003es\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"o\"\u003e==\u003c/span\u003e \u003cspan class=\"n\"\u003ei\u003c/span\u003e \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003ei\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003es\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"nb\"\u003eenumerate\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003esourcepos\u003c/span\u003e\u003cspan class=\"p\"\u003e)]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# deduplicate paragraph_nodes based on unique source position\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eunique_paragraph_nodes\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"nb\"\u003elist\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ecompress\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eparagraph_nodes\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eunique_mask\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eparagraphs\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34; \u0026#34;\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ejoin\u003c/span\u003e\u003cspan class=\"p\"\u003e([\u003c/span\u003e\u003cspan class=\"n\"\u003ep\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003efirst_child\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eliteral\u003c/span\u003e \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003ep\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003eunique_paragraph_nodes\u003c/span\u003e\u003cspan class=\"p\"\u003e])\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nIn looking for a way to automatically generate descriptions for pages I\nstumbled into a markdown ast in python.  It allows me to go over the\nmarkdown page and get only paragraph text.  This will ignore headings,\nblockquotes, and code fences.\n\n\n``` python\nimport commonmark\nimport frontmatter\n\npost = frontmatter.load(\"post.md\")\nparser = commonmark.Parser()\nast = parser.parse(post.content)\n\nparagraphs = ''\nfor node in ast.walker():\n    if node[0].t == \"paragraph\":\n        paragraphs += \" \"\n        paragraphs += node[0].first_child.literal\n```\n\nIt's also super fast, previously I was rendering to html and using\nbeautifulsoup to get only the paragraphs.  Using the commonmark ast was\nabout 5x faster on my site.\n\n### Duplicate Paragraphs\n\nWhen I originally wrote this post, I did not realize at the time that\ncommonmark duplicates nodes.  I still do not understand why, but I have had\nsuccess duplicating them based on the source position of the node with the\nsnippet below.\n\n``` python\nfrom itertools import compress\n\nimport commonmark\nimport frontmatter\n\npost = frontmatter.load(\"post.md\")\nparser = commonmark.Parser()\nast = parser.parse(post.content)\n\n# find all paragraph nodes\nparagraph_nodes = [\n    n[0]\n    for n in ast.walker()\n    if n[0].t == \"paragraph\" and n[0].first_child.literal is not None\n]\n# for reasons unknown to me commonmark duplicates nodes, dedupe based on sourcepos\nsourcepos = [p.sourcepos for p in paragraph_nodes]\n# find first occurence of node based on source position\nunique_mask = [sourcepos.index(s) == i for i, s in enumerate(sourcepos)]\n# deduplicate paragraph_nodes based on unique source position\nunique_paragraph_nodes = list(compress(paragraph_nodes, unique_mask))\nparagraphs = \" \".join([p.first_child.literal for p in unique_paragraph_nodes])\n```\n",
      "summary": "In looking for a way to automatically generate descriptions for pages I stumbled into a markdown ast in python. It allows me to go over the markdown page and...",
      "date_published": "2022-02-05T02:18:28Z",
      "date_modified": "2022-02-05T02:18:28Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "webdev"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/neovim-config-for-git/",
      "url": "https://go.waylonwalker.com/neovim-config-for-git/",
      "title": "Neovim Config for Git",
      "content_html": "\u003cp\u003eCreating a minimal config specifically for \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e commits has made running\n\u003ccode\u003egit commit\u003c/code\u003e much more pleasant.  It starts up Much faster, and has all\nof the parts of my config that I use while making a git commit.  The one\nthing that I often use is autocomplete, for things coming from elsewhere\nin the tmux session.  For this \u003ccode\u003ecmpe-tmux\u003c/code\u003e specifically is super\nhelpful.\u003c/p\u003e\n\u003cp\u003eThe other thing that is engrained into my muscle memory is \u003ccode\u003ejj\u003c/code\u003e\nfor escape.  For that I went agead and added my \u003ccode\u003esettings\u003c/code\u003e and \u003ccode\u003ekeymap\u003c/code\u003e\nwith no noticable performance hit.\u003c/p\u003e\n\u003cp\u003eHere is the config that has taken\u003c/p\u003e\n\u003cp\u003e~/.config/nvim/init-git.vim\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esource\u003c/span\u003e \u003cspan class=\"p\"\u003e~\u003c/span\u003e\u003cspan class=\"sr\"\u003e/.config/\u003c/span\u003e\u003cspan class=\"nx\"\u003envim\u003c/span\u003e/\u003cspan class=\"nx\"\u003esettings\u003c/span\u003e.\u003cspan class=\"nx\"\u003evim\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esource\u003c/span\u003e \u003cspan class=\"p\"\u003e~\u003c/span\u003e\u003cspan class=\"sr\"\u003e/.config/\u003c/span\u003e\u003cspan class=\"nx\"\u003envim\u003c/span\u003e/\u003cspan class=\"nx\"\u003ekeymap\u003c/span\u003e.\u003cspan class=\"nx\"\u003evim\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esource\u003c/span\u003e \u003cspan class=\"p\"\u003e~\u003c/span\u003e\u003cspan class=\"sr\"\u003e/.config/\u003c/span\u003e\u003cspan class=\"nx\"\u003envim\u003c/span\u003e/\u003cspan class=\"nx\"\u003egit\u003c/span\u003e\u003cspan class=\"p\"\u003e-\u003c/span\u003e\u003cspan class=\"nx\"\u003eplugins\u003c/span\u003e.\u003cspan class=\"nx\"\u003evim\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003elua\u003c/span\u003e \u003cspan class=\"nx\"\u003erequire\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;waylonwalker.cmp\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e~/.config/nvim/git-plugins.vim\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003ecall\u003c/span\u003e \u003cspan class=\"nx\"\u003eplug\u003c/span\u003e#\u003cspan class=\"nx\"\u003ebegin\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;~/.local/share/nvim/plugged\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c\"\u003e\u0026#34; cmp\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003ePlug\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;hrsh7th/nvim-cmp\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003ePlug\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;hrsh7th/cmp-nvim-lsp\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003ePlug\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;hrsh7th/cmp-buffer\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003ePlug\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;hrsh7th/cmp-path\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003ePlug\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;hrsh7th/cmp-calc\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003ePlug\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;andersevenrud/compe-tmux\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e { \u003cspan class=\"s1\"\u003e\u0026#39;branch\u0026#39;\u003c/span\u003e: \u003cspan class=\"s1\"\u003e\u0026#39;cmp\u0026#39;\u003c/span\u003e }\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003ecall\u003c/span\u003e \u003cspan class=\"nx\"\u003eplug\u003c/span\u003e#\u003cspan class=\"nx\"\u003eend\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e~/.gitconfig\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nx\"\u003ecore\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nx\"\u003eeditor\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"nx\"\u003envim\u003c/span\u003e \u003cspan class=\"nx\"\u003e-u\u003c/span\u003e \u003cspan class=\"err\"\u003e~/\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003econfig\u003c/span\u003e\u003cspan class=\"err\"\u003e/\u003c/span\u003e\u003cspan class=\"nx\"\u003envim\u003c/span\u003e\u003cspan class=\"err\"\u003e/\u003c/span\u003e\u003cspan class=\"nx\"\u003einit-git\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003evim\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nCreating a minimal config specifically for git commits has made running\n`git commit` much more pleasant.  It starts up Much faster, and has all\nof the parts of my config that I use while making a git commit.  The one\nthing that I often use is autocomplete, for things coming from elsewhere\nin the tmux session.  For this `cmpe-tmux` specifically is super\nhelpful.\n\nThe other thing that is engrained into my muscle memory is `jj`\nfor escape.  For that I went agead and added my `settings` and `keymap`\nwith no noticable performance hit.\n\nHere is the config that has taken\n\n\n~/.config/nvim/init-git.vim\n\n``` vim\nsource ~/.config/nvim/settings.vim\nsource ~/.config/nvim/keymap.vim\nsource ~/.config/nvim/git-plugins.vim\nlua require'waylonwalker.cmp'\n```\n\n~/.config/nvim/git-plugins.vim\n\n``` vim\ncall plug#begin('~/.local/share/nvim/plugged')\n\n\" cmp\nPlug 'hrsh7th/nvim-cmp'\nPlug 'hrsh7th/cmp-nvim-lsp'\nPlug 'hrsh7th/cmp-buffer'\nPlug 'hrsh7th/cmp-path'\nPlug 'hrsh7th/cmp-calc'\nPlug 'andersevenrud/compe-tmux', { 'branch': 'cmp' }\n\n\ncall plug#end()\n```\n\n~/.gitconfig\n\n``` toml\n[core]\n    editor = nvim -u ~/.config/nvim/init-git.vim\n```\n",
      "summary": "Creating a minimal config specifically for git commits has made running much more pleasant. It starts up Much faster, and has all of the parts of my config...",
      "date_published": "2022-02-04T14:23:57Z",
      "date_modified": "2022-02-04T14:23:57Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "vim",
        "linux",
        "bash"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/python-dict-get/",
      "url": "https://go.waylonwalker.com/python-dict-get/",
      "title": "python dict get",
      "content_html": "\u003cp\u003eFor an embarassingly long time, til today, I have been wrapping my dict\ngets with key errors in python.  I’m sure I’ve read it in code a bunch\nof times, but just brushed over why you would use get.  That is until I\nread a bunch of PR’s from my buddy Nic and notice that he never gets\nthings with brackets and always with \u003ccode\u003e.get\u003c/code\u003e.  This turns out so much\ncleaner to create a default case than try except.\u003c/p\u003e\n\u003ch2 id=\"example\"\u003eExample \u003ca href=\"#example\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLets consider this example for prices of supplies.  Here we set a variable of\nprices as a dictionary of items and thier price.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eprices\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;pen\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mf\"\u003e1.2\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;pencil\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mf\"\u003e0.3\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;eraser\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mf\"\u003e2.3\u003c/span\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"except-keyerror\"\u003eExcept KeyError \u003ca href=\"#except-keyerror\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWhat I would always do is try to get the key, and if it failed on KeyError, I\nwould set the value (\u003ccode\u003epaper_price\u003c/code\u003e in this case) to a default value.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003etry\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003epaper_price\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eprices\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;paper\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eexcept\u003c/span\u003e \u003cspan class=\"ne\"\u003eKeyError\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003epaper_price\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"get\"\u003e.get \u003ca href=\"#get\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWhat I noticed Nic does is to use get.  This feels just so much cleaner that\nit’s a one liner and feels much easier to read and understand that if there is\nno price for paper we set it to \u003ccode\u003eNone\u003c/code\u003e.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epaper_price\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eprices\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eget\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;paper\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eWe can just as easily set the default to other values.  Let’s consider sales\nfor instance.  If there is not a record for the sale of paper, it might be that\nwe sold 0 paper in the given dataset.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epaper_sales\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003esales\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eget\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;paper\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nFor an embarassingly long time, til today, I have been wrapping my dict\ngets with key errors in python.  I'm sure I've read it in code a bunch\nof times, but just brushed over why you would use get.  That is until I\nread a bunch of PR's from my buddy Nic and notice that he never gets\nthings with brackets and always with `.get`.  This turns out so much\ncleaner to create a default case than try except.\n\n\n## Example\n\nLets consider this example for prices of supplies.  Here we set a variable of\nprices as a dictionary of items and thier price.\n\n```python\nprices = {'pen': 1.2, 'pencil', 0.3, 'eraser', 2.3}\n```\n\n## Except KeyError\n\nWhat I would always do is try to get the key, and if it failed on KeyError, I\nwould set the value (`paper_price` in this case) to a default value.\n\n```python\ntry:\n    paper_price = prices['paper']\nexcept KeyError:\n    paper_price = None\n```\n\n## .get\n\nWhat I noticed Nic does is to use get.  This feels just so much cleaner that\nit's a one liner and feels much easier to read and understand that if there is\nno price for paper we set it to `None`.\n\n```python\npaper_price = prices.get('paper', None)\n```\n\nWe can just as easily set the default to other values.  Let's consider sales\nfor instance.  If there is not a record for the sale of paper, it might be that\nwe sold 0 paper in the given dataset.\n\n```python\npaper_sales = sales.get('paper', 0)\n```\n",
      "summary": "For an embarassingly long time, til today, I have been wrapping my dict gets with key errors in python. I'm sure I've read it in code a bunch of times, but...",
      "date_published": "2022-02-03T03:00:36Z",
      "date_modified": "2022-02-03T03:00:36Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/nixery-versions-by-commit-count/",
      "url": "https://go.waylonwalker.com/nixery-versions-by-commit-count/",
      "title": "Nix Versions By Commit Count",
      "content_html": "\u003cp\u003eI was listening to \u003ca href=\"https://changelog.com/shipit/37\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/changelog.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/changelog.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eshipit37\u003c/a\u003e with Vincent\nAmbo talking about building fully declaritive systems with nix.  Vincent is\nbuilding out Nixery and strongly believes that standard versioning systems are\nflawed.  If we have good ci setup, and every commit is a good commit the idea\nof a release is just some arbitrary point in history that the maintainer\ndecided was a good time to release, and has less to do about features and\nquality.\u003c/p\u003e\n\u003cp\u003eSince many things still want to see a version number, there is one automatic\nalways increasing number that is a part of every single \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e repo, and that is\nthe commit count.  Nixery is versioned by commit count.  When counting on the\nmain branch there is no way for two points in time to share the same version.\nThe git cli will count all commits by default so you have to be careful to only\ninclude commits from the branch you want to version/release from.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit rev-list main --count\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nI was listening to [shipit37](https://changelog.com/shipit/37) with Vincent\nAmbo talking about building fully declaritive systems with nix.  Vincent is\nbuilding out Nixery and strongly believes that standard versioning systems are\nflawed.  If we have good ci setup, and every commit is a good commit the idea\nof a release is just some arbitrary point in history that the maintainer\ndecided was a good time to release, and has less to do about features and\nquality.\n\nSince many things still want to see a version number, there is one automatic\nalways increasing number that is a part of every single git repo, and that is\nthe commit count.  Nixery is versioned by commit count.  When counting on the\nmain branch there is no way for two points in time to share the same version.\nThe git cli will count all commits by default so you have to be careful to only\ninclude commits from the branch you want to version/release from.\n\n``` bash\ngit rev-list main --count\n```\n",
      "summary": "I was listening to shipit37 with Vincent Ambo talking about building fully declaritive systems with nix. Vincent is building out Nixery and strongly believes...",
      "date_published": "2022-02-02T15:12:35Z",
      "date_modified": "2022-02-02T15:12:35Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "catalytic"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/bs4-findall-headings/",
      "url": "https://go.waylonwalker.com/bs4-findall-headings/",
      "title": "Find all Headings with BeautifulSoup",
      "content_html": "\u003cp\u003eBeautifulSoup is a DOM like library for python.  It’s quite useful to\nmanipulate \u003ca href=\"/html/\" class=\"glossary-term\" title=\"HTML (HyperText Markup Language) is the standard markup language used to create and design documents on the World Wide Web. It structures web content by...\"\u003ehtml\u003c/a\u003e.  Here is an example to find_all html headings.  I stole\nthe regex from stack overflow, but who doesn’t.\u003c/p\u003e\n\u003ch2 id=\"make-an-example\"\u003eMake an example \u003ca href=\"#make-an-example\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003esample.html\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eLets make a sample.html file with the following contents.  It mainly has\nsome headings, \u003ccode\u003e\u0026lt;h1\u0026gt;\u003c/code\u003e and \u003ccode\u003e\u0026lt;h2\u0026gt;\u003c/code\u003e tags that I want to be able to find.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"cp\"\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nt\"\u003ehtml\u003c/span\u003e \u003cspan class=\"na\"\u003elang\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s\"\u003e\u0026#34;en\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nt\"\u003ebody\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nt\"\u003eh1\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003ehello\u003cspan class=\"p\"\u003e\u0026lt;/\u003c/span\u003e\u003cspan class=\"nt\"\u003eh1\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nt\"\u003ep\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003ethis is a paragraph\u003cspan class=\"p\"\u003e\u0026lt;/\u003c/span\u003e\u003cspan class=\"nt\"\u003ep\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nt\"\u003eh2\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003esecond heading\u003cspan class=\"p\"\u003e\u0026lt;/\u003c/span\u003e\u003cspan class=\"nt\"\u003eh2\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nt\"\u003ep\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003ethis is also a paragraph\u003cspan class=\"p\"\u003e\u0026lt;/\u003c/span\u003e\u003cspan class=\"nt\"\u003ep\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nt\"\u003eh2\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003ethird heading\u003cspan class=\"p\"\u003e\u0026lt;/\u003c/span\u003e\u003cspan class=\"nt\"\u003eh2\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nt\"\u003ep\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003ethis is the last paragraph\u003cspan class=\"p\"\u003e\u0026lt;/\u003c/span\u003e\u003cspan class=\"nt\"\u003ep\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"p\"\u003e\u0026lt;/\u003c/span\u003e\u003cspan class=\"nt\"\u003ebody\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e\u0026lt;/\u003c/span\u003e\u003cspan class=\"nt\"\u003ehtml\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"get-the-headings-with-beautifulsoup\"\u003eGet the headings with BeautifulSoup \u003ca href=\"#get-the-headings-with-beautifulsoup\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLets import our packages, read in our \u003ccode\u003esample.html\u003c/code\u003e using pathlib and find all\nheadings using BeautifulSoup.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003ebs4\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eBeautifulSoup\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003epathlib\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003ePath\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003esoup\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eBeautifulSoup\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ePath\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;sample.html\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eread_text\u003c/span\u003e\u003cspan class=\"p\"\u003e(),\u003c/span\u003e \u003cspan class=\"n\"\u003efeatures\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;lxml\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eheadings\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003esoup\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003efind_all\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ere\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ecompile\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;^h[1-6]$\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eAnd what we get is a list of \u003ccode\u003ebs4.element.Tag\u003c/code\u003e’s.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u0026gt;\u003c/span\u003e \u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eheadings\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eh1\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"n\"\u003ehello\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026lt;/\u003c/span\u003e\u003cspan class=\"n\"\u003eh1\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eh2\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"n\"\u003esecond\u003c/span\u003e \u003cspan class=\"n\"\u003eheading\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026lt;/\u003c/span\u003e\u003cspan class=\"n\"\u003eh2\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eh2\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"n\"\u003ethird\u003c/span\u003e \u003cspan class=\"n\"\u003eheading\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026lt;/\u003c/span\u003e\u003cspan class=\"n\"\u003eh2\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eI recently added a heading_link plugin to markata, you might notice the\n🔗’s next to each heading on this page, that is powered by this exact\ntechnique.\u003c/p\u003e\n",
      "content_text": "\nBeautifulSoup is a DOM like library for python.  It's quite useful to\nmanipulate html.  Here is an example to find_all html headings.  I stole\nthe regex from stack overflow, but who doesn't.\n\n## Make an example\n_sample.html_\n\nLets make a sample.html file with the following contents.  It mainly has\nsome headings, `\u003ch1\u003e` and `\u003ch2\u003e` tags that I want to be able to find.\n\n```html\n\u003c!DOCTYPE html\u003e\n\u003chtml lang=\"en\"\u003e\n  \u003cbody\u003e\n    \u003ch1\u003ehello\u003c/h1\u003e\n    \u003cp\u003ethis is a paragraph\u003c/p\u003e\n    \u003ch2\u003esecond heading\u003c/h2\u003e\n    \u003cp\u003ethis is also a paragraph\u003c/p\u003e\n    \u003ch2\u003ethird heading\u003c/h2\u003e\n    \u003cp\u003ethis is the last paragraph\u003c/p\u003e\n\n  \u003c/body\u003e\n\u003c/html\u003e\n```\n\n## Get the headings with BeautifulSoup\n\nLets import our packages, read in our `sample.html` using pathlib and find all\nheadings using BeautifulSoup.\n\n```python\nfrom bs4 import BeautifulSoup\nfrom pathlib import Path\n\nsoup = BeautifulSoup(Path('sample.html').read_text(), features=\"lxml\")\nheadings = soup.find_all(re.compile(\"^h[1-6]$\"))\n```\n\nAnd what we get is a list of `bs4.element.Tag`'s.\n\n```python\n\u003e\u003e print(headings)\n[\u003ch1\u003ehello\u003c/h1\u003e, \u003ch2\u003esecond heading\u003c/h2\u003e, \u003ch2\u003ethird heading\u003c/h2\u003e]\n```\n\nI recently added a heading_link plugin to markata, you might notice the\n🔗's next to each heading on this page, that is powered by this exact\ntechnique.\n",
      "summary": "BeautifulSoup is a DOM like library for python. It's quite useful to manipulate html. Here is an example to find_all html headings. I stole the regex from...",
      "date_published": "2022-02-01T16:17:18Z",
      "date_modified": "2022-02-01T16:17:18Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "webdev"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/kedro-lambda-node/",
      "url": "https://go.waylonwalker.com/kedro-lambda-node/",
      "title": "Lambda Function as a Kedro Node",
      "content_html": "\u003cp\u003eI keep my nodes short and sweet.  They do one thing and do it well. I\nturn almost every DataFrame transformation into its own node.  It makes\nit must easier to pull catalog entries, than firing up the pipeline,\nrunning it, and starting a debugger.  For this reason many of my nodes\ncan be built from inline lambdas.\u003c/p\u003e\n\u003ch2 id=\"examples\"\u003eExamples \u003ca href=\"#examples\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eHere are two examples, the first one \u003ccode\u003elambda x: x\u003c/code\u003e is sometimes referred\nto as an identity function.  This is super common to use in the early\nphases of a project.  It lets you follow standard layering conventions,\nwithout skipping a layer, overthinking if you should have the layer or\nnot, and leaves a good placholder to fill in later when you need it.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eMany times I just want to get the data in as fast as possible, learn\nabout it, then go back and tidy it up.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003ekedro.pipeline\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003enode\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003emy_first_node\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003enode\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003efunc\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"k\"\u003elambda\u003c/span\u003e \u003cspan class=\"n\"\u003ex\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003ex\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003einputs\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;raw_cars\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003eoutput\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;int_cars\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003etags\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;int\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003emy_first_node\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003enode\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003efunc\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"k\"\u003elambda\u003c/span\u003e \u003cspan class=\"n\"\u003ecars\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003ecars\u003c/span\u003e\u003cspan class=\"p\"\u003e[[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;mpg\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;cyl\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;disp\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,]]\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003equery\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;disp\u0026gt;200\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003einputs\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;raw_cars\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003eoutput\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;int_cars\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003etags\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;pri\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003eNote: try not to take the idea of a one liner too far.  If your\none line function wraps several lines down it probably deserves to be\na real function for readability and a good docstring.\u003c/p\u003e\n\u003c/blockquote\u003e\n",
      "content_text": "\nI keep my nodes short and sweet.  They do one thing and do it well. I\nturn almost every DataFrame transformation into its own node.  It makes\nit must easier to pull catalog entries, than firing up the pipeline,\nrunning it, and starting a debugger.  For this reason many of my nodes\ncan be built from inline lambdas.\n\n## Examples\n\nHere are two examples, the first one `lambda x: x` is sometimes referred\nto as an identity function.  This is super common to use in the early\nphases of a project.  It lets you follow standard layering conventions,\nwithout skipping a layer, overthinking if you should have the layer or\nnot, and leaves a good placholder to fill in later when you need it.\n\n\u003e Many times I just want to get the data in as fast as possible, learn\n\u003e about it, then go back and tidy it up.\n\n``` python\nfrom kedro.pipeline import node\n\nmy_first_node = node(\n   func=lambda x: x,\n   inputs='raw_cars',\n   output='int_cars',\n   tags=['int',]\n   )\n\nmy_first_node = node(\n   func=lambda cars: cars[['mpg', 'cyl', 'disp',]].query('disp\u003e200'),\n   inputs='raw_cars',\n   output='int_cars',\n   tags=['pri',]\n   )\n```\n\n\u003e Note: try not to take the idea of a one liner too far.  If your\n\u003e one line function wraps several lines down it probably deserves to be\n\u003e a real function for readability and a good docstring.\n",
      "summary": "I keep my nodes short and sweet. They do one thing and do it well. I turn almost every DataFrame transformation into its own node. It makes it must easier to...",
      "date_published": "2022-01-31T21:52:36Z",
      "date_modified": "2022-01-31T21:52:36Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "kedro"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/stow-simulate/",
      "url": "https://go.waylonwalker.com/stow-simulate/",
      "title": "How to Properly Simulate Stow",
      "content_html": "\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003estow -R --simulate -vvv git\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n\n``` bash\nstow -R --simulate -vvv git\n```\n",
      "date_published": "2022-01-30T20:28:17Z",
      "date_modified": "2022-01-30T20:28:17Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "cli",
        "linux",
        "cli"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/global-gitignore-considered-useful/",
      "url": "https://go.waylonwalker.com/global-gitignore-considered-useful/",
      "title": "A Good Use for global .gitignore",
      "content_html": "\u003cp\u003eI’ve never found a great use for a global \u003ccode\u003e.gitignore\u003c/code\u003e file.  Mostly I fear\nthat by adding a lot of the common things like \u003ccode\u003e.pyc\u003c/code\u003e files it will be missing\nfrom the project and inevitably be committed to the project by someone else.\u003c/p\u003e\n\u003ch2 id=\"personal-tools\"\u003ePersonal Tools \u003ca href=\"#personal-tools\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWithin the past year I have added some tools to my personal setup that are not\nrequired to run the project, but works really well with my setup.  They are\n\u003ccode\u003edirenv\u003c/code\u003e and \u003ccode\u003epyflyby\u003c/code\u003e.  Since these both support project level configuration,\nare less common, and not in most  \u003ccode\u003e.gitignore\u003c/code\u003e templates they make for great\ncandidates to add to a global \u003ccode\u003e.gitignore\u003c/code\u003e file.\u003c/p\u003e\n\u003ch2 id=\"create-the-config\"\u003ecreate the config \u003ca href=\"#create-the-config\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLike any \u003ccode\u003e.gitignore\u003c/code\u003e it supports gits wildignore syntax.  I made a\n\u003ccode\u003e~/dotfiles/git/.global_gitignore\u003c/code\u003e file, and added the following to it.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e.envrc\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e.pyflyby\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e.copier-defaults\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e.venv*/\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e.python-version\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emarkout\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e.markata.cache\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eOnce I had this file, I stowed it into \u003ccode\u003e~/.global_gitignore\u003c/code\u003e.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003ecd\u003c/span\u003e ~/dotfiles/\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003estow git\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003eAlways stow your dotfiles, don’t set yourself up for wondering why your next\nmachine is not working right.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"stow-note\"\u003estow note \u003ca href=\"#stow-note\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNote, the reason that it is a \u003ccode\u003e~/.global_gitignore\u003c/code\u003e and not a \u003ccode\u003e~/.gitignore\u003c/code\u003e is\nthat I was unable to stow a \u003ccode\u003e.gitignore file\u003c/code\u003e.  They must be ignored by\ndefault, and I was unable to figure out how to turn it back on.\u003c/p\u003e\n\u003ch2 id=\"set-the-config\"\u003eset the config \u003ca href=\"#set-the-config\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNext run this command to add the \u003ccode\u003e~/.global_gitignore\u003c/code\u003e to your gitignore as a\nglobal excludesfile.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit config --global core.excludesfile ~/.global_gitignore\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"commit-it\"\u003ecommit it \u003ca href=\"#commit-it\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eOnce you have done this you should have both your \u003ccode\u003e~/dotfiles/git/.gitconfig\u003c/code\u003e\nand \u003ccode\u003e~/dotfiles/.global_gitignore\u003c/code\u003e ready to commit.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003ecd\u003c/span\u003e ~/dotfiles\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit add git/.global_gitignore\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit add git/.gitconfig\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit commit -m \u003cspan class=\"s2\"\u003e\u0026#34;add global_gitignore\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"you-didnt-stow-your-gitconfig\"\u003eYou didn’t stow your .gitconfig \u003ca href=\"#you-didnt-stow-your-gitconfig\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003ethe shame!\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eNo worries, lets get it into your dotfiles repo and stow it.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003ecd\u003c/span\u003e ~/dotfiles\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# if you dont have a git directory make it.\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emkdir git\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emv ~/.gitconfig ~/devtainer/git\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# now use stow to symlink it back to where it was\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# so git works as expected.\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003estow git\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"you-dont-have-a-dotfiles-directory\"\u003eYou dont have a dotfiles directory \u003ca href=\"#you-dont-have-a-dotfiles-directory\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003edouble shame 😲\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eIf you dont already have a dotfiles directry you should.  It is important for\nit to be in your home directory for stow to work properly, if you really don’t\nwant it there, look up how to configure stow to account for this.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# make a dotfiles directory and go there\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emkdir ~/dotfiles\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003ecd\u003c/span\u003e ~/dotfiles\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# make it a git repo\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit init\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# if you dont have a git directory make it.\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emkdir git\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emv ~/.gitconfig ~/devtainer/git\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# now use stow to symlink it back to where it was\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# so git works as expected.\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003estow git\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nI've never found a great use for a global `.gitignore` file.  Mostly I fear\nthat by adding a lot of the common things like `.pyc` files it will be missing\nfrom the project and inevitably be committed to the project by someone else.\n\n## Personal Tools\n\nWithin the past year I have added some tools to my personal setup that are not\nrequired to run the project, but works really well with my setup.  They are\n`direnv` and `pyflyby`.  Since these both support project level configuration,\nare less common, and not in most  `.gitignore` templates they make for great\ncandidates to add to a global `.gitignore` file.\n\n## create the config\n\nLike any `.gitignore` it supports gits wildignore syntax.  I made a\n`~/dotfiles/git/.global_gitignore` file, and added the following to it.\n\n```bash\n.envrc\n.pyflyby\n.copier-defaults\n.venv*/\n.python-version\nmarkout\n.markata.cache\n```\n\nOnce I had this file, I stowed it into `~/.global_gitignore`.\n\n``` bash\ncd ~/dotfiles/\nstow git\n```\n\n\u003e Always stow your dotfiles, don't set yourself up for wondering why your next\n\u003e machine is not working right.\n\n## stow note\n\nNote, the reason that it is a `~/.global_gitignore` and not a `~/.gitignore` is\nthat I was unable to stow a `.gitignore file`.  They must be ignored by\ndefault, and I was unable to figure out how to turn it back on.\n\n## set the config\n\nNext run this command to add the `~/.global_gitignore` to your gitignore as a\nglobal excludesfile.\n\n```bash\ngit config --global core.excludesfile ~/.global_gitignore\n```\n\n## commit it\n\nOnce you have done this you should have both your `~/dotfiles/git/.gitconfig`\nand `~/dotfiles/.global_gitignore` ready to commit.\n\n```bash\ncd ~/dotfiles\n\ngit add git/.global_gitignore\ngit add git/.gitconfig\n\ngit commit -m \"add global_gitignore\"\n```\n\n## You didn't stow your .gitconfig\n\n_the shame!_\n\nNo worries, lets get it into your dotfiles repo and stow it.\n\n```bash\ncd ~/dotfiles\n\n# if you dont have a git directory make it.\nmkdir git\nmv ~/.gitconfig ~/devtainer/git\n# now use stow to symlink it back to where it was\n# so git works as expected.\nstow git\n```\n\n## You dont have a dotfiles directory\n\n_double shame 😲_\n\nIf you dont already have a dotfiles directry you should.  It is important for\nit to be in your home directory for stow to work properly, if you really don't\nwant it there, look up how to configure stow to account for this.\n\n```bash\n# make a dotfiles directory and go there\nmkdir ~/dotfiles\ncd ~/dotfiles\n\n# make it a git repo\ngit init\n\n# if you dont have a git directory make it.\n\nmkdir git\nmv ~/.gitconfig ~/devtainer/git\n# now use stow to symlink it back to where it was\n# so git works as expected.\nstow git\n```\n",
      "summary": "I've never found a great use for a global file. Mostly I fear that by adding a lot of the common things like files it will be missing from the project and...",
      "date_published": "2022-01-30T02:11:51Z",
      "date_modified": "2022-01-30T02:11:51Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "git"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/squoosh-cli/",
      "url": "https://go.waylonwalker.com/squoosh-cli/",
      "title": "Squoosh cli",
      "content_html": "\u003cp\u003eToday I discovered a sweet new cli for compressing images.\n\u003ca href=\"https://github.com/GoogleChromeLabs/squoosh/tree/dev/cli\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003esquoosh cli\u003c/a\u003e\nis a wasm powered cli that supports a bunch of formats that I would want to\nconvert my website images to.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003efrom the future\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e  \u0026gt; Unfortunately, due to a few people leaving the team, and staffing issues\n\u003c/code\u003e\u003c/pre\u003e\n\u003cblockquote\u003e\n\u003cp\u003eresulting from the current economic climate (ugh), I’m deprecating the\nCLI and libsquoosh parts of Squoosh. The web app will continue to be\nsupported and improved. I know that sucks, but there simply isn’t the\ntime \u0026amp; people to work on this. If anyone from the community wants to fork\nit, you have my blessing.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/GoogleChromeLabs/squoosh/pull/1321\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://github.com/GoogleChromeLabs/squoosh/pull/1321\u003c/a\u003e\u003c/p\u003e\n\u003c/div\u003e\n\u003ch2 id=\"web-app\"\u003eWeb App \u003ca href=\"#web-app\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eFirst the main feature of squoosh is a \u003ca href=\"https://squoosh.app\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/squoosh.app.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/squoosh.app.ico\" class=\"has-avatar  has-avatar-before\"\u003eweb app\u003c/a\u003e that\nmakes your images smaller right in the browser, using the same wasm.  It’s\nsweet!  There is a really cool swiper to compare the output image with the\noriginal, and graphical dials to change your settings.\u003c/p\u003e\n\u003ch2 id=\"cli\"\u003eCLI \u003ca href=\"#cli\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWhat is even cooler is that once you have settings you are happy with and are\nreally cutting down those kb’s on your images, there is a copy cli command\nbutton!  If you have npx (which you should if you have nodejs and npm) already\ninstalled it just works without installing anything more.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://images.waylonwalker.com/squoosh-cli-button.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://images.waylonwalker.com/squoosh-cli-button.png\" alt=\"The button on squoosh.app\"/ data-glightbox=\"description: The button on squoosh.app\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"converting-all-of-my-pngs-to-webp\"\u003eConverting all of my png’s to webp \u003ca href=\"#converting-all-of-my-pngs-to-webp\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI copied the command that it gave me for converting to webp, and set it up to\nrun on all of my pngs.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003enpx @squoosh/cli --webp \\\n  \u0026#39;{\u0026#34;quality\u0026#34;:75 \\\n    \u0026#34;target_size\u0026#34;:0 \\\n    \u0026#34;target_PSNR\u0026#34;:0 \\\n    \u0026#34;method\u0026#34;:4 \\\n    \u0026#34;sns_strength\u0026#34;:50 \\\n    \u0026#34;filter_strength\u0026#34;:60 \\\n    \u0026#34;filter_sharpness\u0026#34;:0 \\\n    \u0026#34;filter_type\u0026#34;:1 \\\n    \u0026#34;partitions\u0026#34;:0 \\\n    \u0026#34;segments\u0026#34;:4 \\\n    \u0026#34;pass\u0026#34;:1 \\\n    \u0026#34;show_compressed\u0026#34;:0 \\\n    \u0026#34;preprocessing\u0026#34;:0 \\\n    \u0026#34;autofilter\u0026#34;:0 \\\n    \u0026#34;partition_limit\u0026#34;:0 \\\n    \u0026#34;alpha_compression\u0026#34;:1 \\\n    \u0026#34;alpha_filtering\u0026#34;:1 \\\n    \u0026#34;alpha_quality\u0026#34;:100 \\\n    \u0026#34;lossless\u0026#34;:0 \\\n    \u0026#34;exact\u0026#34;:0 \\\n    \u0026#34;image_hint\u0026#34;:0 \\\n    \u0026#34;emulate_jpeg_size\u0026#34;:0 \\\n    \u0026#34;thread_level\u0026#34;:0 \\\n    \u0026#34;low_memory\u0026#34;:0 \\\n    \u0026#34;near_lossless\u0026#34;:100 \\\n    \u0026#34;use_delta_palette\u0026#34;:0 \\\n    \u0026#34;use_sharp_yuv\u0026#34;:0 \\\n    }\u0026#39; \\\n    static/*.png -d squoosh-webp\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eI opened my images repo and converted all pngs to webp using the command above.\nI got 94% compression on my existing pngs without resizing anything.  This is\ndang impressive, and not too hard to do.  I do want to refactor my images site\nat some point and include this as part of the ci system.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://images.waylonwalker.com/squoosh-webp-results.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://images.waylonwalker.com/squoosh-webp-results.png\" alt=\"resulting file sizes for converting png to wepb.\"/ data-glightbox=\"description: resulting file sizes for converting png to wepb.\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eI also converted to avif, but it sent all my cpus to 100 for quite awhile, for\nonly another 2MB total.  Not sure if its worth it or not.\u003c/p\u003e\n",
      "content_text": "\nToday I discovered a sweet new cli for compressing images.\n[squoosh cli](https://github.com/GoogleChromeLabs/squoosh/tree/dev/cli)\nis a wasm powered cli that supports a bunch of formats that I would want to\nconvert my website images to.\n\n!!! Note from the future\n      \u003e Unfortunately, due to a few people leaving the team, and staffing issues\n      \u003e resulting from the current economic climate (ugh), I'm deprecating the\n      \u003e CLI and libsquoosh parts of Squoosh. The web app will continue to be\n      \u003e supported and improved. I know that sucks, but there simply isn't the\n      \u003e time \u0026 people to work on this. If anyone from the community wants to fork\n      \u003e it, you have my blessing.\n\n      https://github.com/GoogleChromeLabs/squoosh/pull/1321\n\n## Web App\n\nFirst the main feature of squoosh is a [web app](https://squoosh.app) that\nmakes your images smaller right in the browser, using the same wasm.  It's\nsweet!  There is a really cool swiper to compare the output image with the\noriginal, and graphical dials to change your settings.\n\n## CLI\n\nWhat is even cooler is that once you have settings you are happy with and are\nreally cutting down those kb's on your images, there is a copy cli command\nbutton!  If you have npx (which you should if you have nodejs and npm) already\ninstalled it just works without installing anything more.\n\n![The button on squoosh.app](https://images.waylonwalker.com/squoosh-cli-button.png)\n\n## Converting all of my png's to webp\n\nI copied the command that it gave me for converting to webp, and set it up to\nrun on all of my pngs.\n\n```\nnpx @squoosh/cli --webp \\\n  '{\"quality\":75 \\\n    \"target_size\":0 \\\n    \"target_PSNR\":0 \\\n    \"method\":4 \\\n    \"sns_strength\":50 \\\n    \"filter_strength\":60 \\\n    \"filter_sharpness\":0 \\\n    \"filter_type\":1 \\\n    \"partitions\":0 \\\n    \"segments\":4 \\\n    \"pass\":1 \\\n    \"show_compressed\":0 \\\n    \"preprocessing\":0 \\\n    \"autofilter\":0 \\\n    \"partition_limit\":0 \\\n    \"alpha_compression\":1 \\\n    \"alpha_filtering\":1 \\\n    \"alpha_quality\":100 \\\n    \"lossless\":0 \\\n    \"exact\":0 \\\n    \"image_hint\":0 \\\n    \"emulate_jpeg_size\":0 \\\n    \"thread_level\":0 \\\n    \"low_memory\":0 \\\n    \"near_lossless\":100 \\\n    \"use_delta_palette\":0 \\\n    \"use_sharp_yuv\":0 \\\n    }' \\\n    static/*.png -d squoosh-webp\n```\n\nI opened my images repo and converted all pngs to webp using the command above.\nI got 94% compression on my existing pngs without resizing anything.  This is\ndang impressive, and not too hard to do.  I do want to refactor my images site\nat some point and include this as part of the ci system.\n\n![resulting file sizes for converting png to wepb.](https://images.waylonwalker.com/squoosh-webp-results.png)\n\nI also converted to avif, but it sent all my cpus to 100 for quite awhile, for\nonly another 2MB total.  Not sure if its worth it or not.\n",
      "summary": "Today I discovered a sweet new cli for compressing images. squoosh cli is a wasm powered cli that supports a bunch of formats that I would want to convert my...",
      "date_published": "2022-01-29T04:54:50Z",
      "date_modified": "2022-01-29T04:54:50Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "cli",
        "cli",
        "webdev"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/kedro-new-dependencies/",
      "url": "https://go.waylonwalker.com/kedro-new-dependencies/",
      "title": "Add New Dependencies to Your Kedro Project",
      "content_html": "\u003cp\u003eAs you work on your kedro projects you are bound to need to add more\ndependencies to the project eventually.  Kedro uses a fantastic command\n\u003ccode\u003epip-compile\u003c/code\u003e under the hood to ensure that everyone is on the same version of\npackages at all times, and able to easily upgrade them.  It might be a bit\ndifferent workflow than what you have seen, let’s take a look at it.\u003c/p\u003e\n\u003ch2 id=\"\u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e-status\"\u003egit status \u003ca href=\"#git-status\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eBefore you start mucking around with any changes to dependencies make sure that\nyour git status is clean.  I’d even reccomend starting a new branch for this,\nand if you are working on a team potentially submit this as its own PR for\nclarity.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit status\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit checkout main\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit checkout -b add-rich-dependency\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"requirementsin\"\u003erequirements.in \u003ca href=\"#requirementsin\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNew requirements get added to a requirements.in file.  If you need to specify\nan exact version, or a minimum version you can do that, but if all versions\ngenerally work you can leave it open.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# requirements.in\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003erich\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eHere I added the popular \u003ccode\u003erich\u003c/code\u003e package to my \u003ccode\u003erequirements.in\u003c/code\u003e file.  Since\nI am ok with the latest version I am not going to pin anything, I am going to\nlet the pip resolver pick the latest version that does not conflict with any of\nmy dependencies for me.\u003c/p\u003e\n\u003ch2 id=\"build-reqs\"\u003ebuild-reqs \u003ca href=\"#build-reqs\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe command \u003ccode\u003ekedro build-reqs\u003c/code\u003e will tell kedro to recompile the\n\u003ccode\u003erequirements.txt\u003c/code\u003e file that has all of our dependencies pinned down to exact\nversions.  This ensures that all of our teammates and production workflows use\nthe same exact versions of packages even if new ones are released after we\ninstalled on our development machines.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ekedro build-reqs\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"git-add\"\u003egit add \u003ca href=\"#git-add\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNow that we have our new dependencies ready to go commit those to git, and\nsubmit a PR for them if you are working on a team.  This is a good way to\ndocument the discussion of adding new dependencies to your teams project.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit add requirements.in\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit add requirements.txt\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit status\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit commit -m \u003cspan class=\"s2\"\u003e\u0026#34;FEAT updated dependencies with rich\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit push\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# go make a pr\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egh pr create --title \u003cspan class=\"s2\"\u003e\u0026#34;feat add rich to dependencies\u0026#34;\u003c/span\u003e --body \u003cspan class=\"s2\"\u003e\u0026#34;I added rich as a dependency, and ran pip-compile\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nAs you work on your kedro projects you are bound to need to add more\ndependencies to the project eventually.  Kedro uses a fantastic command\n`pip-compile` under the hood to ensure that everyone is on the same version of\npackages at all times, and able to easily upgrade them.  It might be a bit\ndifferent workflow than what you have seen, let's take a look at it.\n\n## git status\n\nBefore you start mucking around with any changes to dependencies make sure that\nyour git status is clean.  I'd even reccomend starting a new branch for this,\nand if you are working on a team potentially submit this as its own PR for\nclarity.\n\n``` bash\ngit status\ngit checkout main\ngit checkout -b add-rich-dependency\n```\n\n## requirements.in\n\nNew requirements get added to a requirements.in file.  If you need to specify\nan exact version, or a minimum version you can do that, but if all versions\ngenerally work you can leave it open.\n\n``` bash\n# requirements.in\nrich\n```\n\nHere I added the popular `rich` package to my `requirements.in` file.  Since\nI am ok with the latest version I am not going to pin anything, I am going to\nlet the pip resolver pick the latest version that does not conflict with any of\nmy dependencies for me.\n\n## build-reqs\n\nThe command `kedro build-reqs` will tell kedro to recompile the\n`requirements.txt` file that has all of our dependencies pinned down to exact\nversions.  This ensures that all of our teammates and production workflows use\nthe same exact versions of packages even if new ones are released after we\ninstalled on our development machines.\n\n``` bash\nkedro build-reqs\n```\n\n## git add\n\nNow that we have our new dependencies ready to go commit those to git, and\nsubmit a PR for them if you are working on a team.  This is a good way to\ndocument the discussion of adding new dependencies to your teams project.\n\n``` bash\ngit add requirements.in\ngit add requirements.txt\ngit status\ngit commit -m \"FEAT updated dependencies with rich\"\ngit push\n# go make a pr\ngh pr create --title \"feat add rich to dependencies\" --body \"I added rich as a dependency, and ran pip-compile\"\n```\n",
      "summary": "As you work on your kedro projects you are bound to need to add more dependencies to the project eventually. Kedro uses a fantastic command under the hood to...",
      "date_published": "2022-01-28T21:30:48Z",
      "date_modified": "2022-01-28T21:30:48Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "kedro",
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/practice-kedro/",
      "url": "https://go.waylonwalker.com/practice-kedro/",
      "title": "Practice making pipelines with kedro",
      "content_html": "\u003cp\u003eI am a huge believer in practicing your craft.  Professional athletes\nspend most of their time honing their skills and making themsleves\nbetter.  In Engineering many spend nearly 0 time practicing.  I am not\nsaying that you need to spend all your free time practicing, but a few\nminutes trying new things can go a long way in how you understand what\nyou are doing and make a hue impact on your long term productivity.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/what-is-kedro/\" class=\"wikilink\" data-title=\"What is Kedro\" data-description=\"Kedro is an unopinionated Data Engineering framework that comes with a somewhat opinionated template. It gives the user a way to build pipelines that...\" data-date=\"2021-08-17\" data-preview=\"Kedro is an unopinionated Data Engineering framework that comes with a somewhat opinionated template. It gives the user a way to build pipelines that...\"\u003eWhat is Kedro\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"start-practicing\"\u003eStart practicing \u003ca href=\"#start-practicing\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003epractice\u003c/strong\u003e building pipelines with \u003cem\u003e#kedro\u003c/em\u003e today\u003c/p\u003e\n\u003cp\u003eGo to your playground directory, and if you don’t have one, make one.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003ecd\u003c/span\u003e ~/playground\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"get-pipx\"\u003eget pipx \u003ca href=\"#get-pipx\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eInstall pipx in your system python.  This is one of the very few, and\npossibly the only python library that deserves to be installed in your\nsystem directory, primarily because its used to sanbox clis in their own\n\u003ca href=\"/virtual-environment/\" class=\"glossary-term\" title=\"Virtual Environment is term for a sandboxed environment commonly associated with the python programming language. If you are installing any sort of python...\"\u003evirtual environment\u003c/a\u003e automatically for you.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epip install pipx\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"make-a-new-project\"\u003emake a new project \u003ca href=\"#make-a-new-project\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eFrom inside your \u003ccode\u003eplayground\u003c/code\u003e directory, start your new kedro project.\nThis is quite simple and painless.  So much so that if you mess this one\nup doing something wild, it might be easier to make a new one that\nfixing the wild one.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epipx run kedro new\n# answer the questions it asks\n\u003c/code\u003e\u003c/pre\u003e\n\u003cblockquote\u003e\n\u003cp\u003eI use this quite often to try out new things in a safe place.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"make-a-virtual-environment\"\u003eMake a virtual environment \u003ca href=\"#make-a-virtual-environment\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch3 id=\"using-conda\"\u003eUsing Conda \u003ca href=\"#using-conda\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eConda is a fine choice to manage your virtual environments.  It used to\nmake things so much easier on windows that it was almost required.\nNowadays getting python running on windows has become so much easier\nthat this is less so.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003econda\u003c/span\u003e \u003cspan class=\"n\"\u003ecreate\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003en\u003c/span\u003e \u003cspan class=\"n\"\u003emy\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eproject\u003c/span\u003e \u003cspan class=\"n\"\u003epython\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"mf\"\u003e3.8\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003ey\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003econda\u003c/span\u003e \u003cspan class=\"n\"\u003eactivate\u003c/span\u003e \u003cspan class=\"n\"\u003emy\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eproject\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epython\u003c/span\u003e  \u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003em\u003c/span\u003e \u003cspan class=\"n\"\u003epip\u003c/span\u003e \u003cspan class=\"n\"\u003einstall\u003c/span\u003e \u003cspan class=\"o\"\u003e--\u003c/span\u003e\u003cspan class=\"n\"\u003eupgrade\u003c/span\u003e \u003cspan class=\"n\"\u003epip\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epip\u003c/span\u003e \u003cspan class=\"n\"\u003einstall\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003ee\u003c/span\u003e \u003cspan class=\"n\"\u003esrc\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003eone great benefit of conda is that it lets you choose the interpreter\nto go with your virtual environment.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eYour new environment will be listed in your list of conda env here.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003econda\u003c/span\u003e \u003cspan class=\"n\"\u003einfo\u003c/span\u003e \u003cspan class=\"o\"\u003e--\u003c/span\u003e\u003cspan class=\"n\"\u003eenvs\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"using-venv\"\u003eUsing venv \u003ca href=\"#using-venv\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003evenv\u003c/code\u003e is what I use now.  Nothing against conda, it works great.\n\u003ccode\u003evenv\u003c/code\u003e just feels a bit lighter and more common.  I’ve actually grown to\nappreciate that the \u003ccode\u003evenv\u003c/code\u003e is right where I put it, most often in the\nproject directory.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m venv .venv\nsource ./.venv/bin/activate\npython  -m pip install --upgrade pip\npip install -e src\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3 id=\"using-pipenv\"\u003eusing pipenv \u003ca href=\"#using-pipenv\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003epipenv\u003c/code\u003e is another fine choice.  I like how in one command it makes the\nenvironment and activates it for you.  \u003ccode\u003epipenv\u003c/code\u003e also puts virtual\nenvironments in the global directory.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epipx run pipenv shell\npython  -m pip install --upgrade pip\npip install -e src\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2 id=\"make-pipelines\"\u003eMake pipelines \u003ca href=\"#make-pipelines\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNow go make some pipelines with your new project, try something wild,\nbreak it, and make another.\u003c/p\u003e\n",
      "content_text": "\nI am a huge believer in practicing your craft.  Professional athletes\nspend most of their time honing their skills and making themsleves\nbetter.  In Engineering many spend nearly 0 time practicing.  I am not\nsaying that you need to spend all your free time practicing, but a few\nminutes trying new things can go a long way in how you understand what\nyou are doing and make a hue impact on your long term productivity.\n\n\u003ca href=\"/what-is-kedro/\" class=\"wikilink\" data-title=\"What is Kedro\" data-description=\"Kedro is an unopinionated Data Engineering framework that comes with a somewhat opinionated template. It gives the user a way to build pipelines that...\" data-date=\"2021-08-17\"\u003eWhat is Kedro\u003c/a\u003e\n\n## Start practicing\n\n**practice** building pipelines with _#kedro_ today\n\nGo to your playground directory, and if you don't have one, make one.\n\n``` bash\ncd ~/playground\n```\n\n## get pipx\n\nInstall pipx in your system python.  This is one of the very few, and\npossibly the only python library that deserves to be installed in your\nsystem directory, primarily because its used to sanbox clis in their own\nvirtual environment automatically for you.\n\n``` bash\npip install pipx\n```\n\n## make a new project\n\nFrom inside your `playground` directory, start your new kedro project.\nThis is quite simple and painless.  So much so that if you mess this one\nup doing something wild, it might be easier to make a new one that\nfixing the wild one.\n\n```\npipx run kedro new\n# answer the questions it asks\n```\n\n\u003e I use this quite often to try out new things in a safe place.\n\n## Make a virtual environment\n\n### Using Conda\n\nConda is a fine choice to manage your virtual environments.  It used to\nmake things so much easier on windows that it was almost required.\nNowadays getting python running on windows has become so much easier\nthat this is less so.\n\n``` python\nconda create -n my-project python=3.8 -y\nconda activate my-project\npython  -m pip install --upgrade pip\npip install -e src\n```\n\n\u003e one great benefit of conda is that it lets you choose the interpreter\n\u003e to go with your virtual environment.\n\nYour new environment will be listed in your list of conda env here.\n\n``` python\nconda info --envs\n```\n\n### Using venv\n\n`venv` is what I use now.  Nothing against conda, it works great.\n`venv` just feels a bit lighter and more common.  I've actually grown to\nappreciate that the `venv` is right where I put it, most often in the\nproject directory.\n\n```\npython -m venv .venv\nsource ./.venv/bin/activate\npython  -m pip install --upgrade pip\npip install -e src\n```\n\n### using pipenv\n\n`pipenv` is another fine choice.  I like how in one command it makes the\nenvironment and activates it for you.  `pipenv` also puts virtual\nenvironments in the global directory.\n\n```\npipx run pipenv shell\npython  -m pip install --upgrade pip\npip install -e src\n```\n\n## Make pipelines\n\nNow go make some pipelines with your new project, try something wild,\nbreak it, and make another.\n",
      "summary": "I am a huge believer in practicing your craft. Professional athletes spend most of their time honing their skills and making themsleves better. In...",
      "date_published": "2022-01-27T21:07:37Z",
      "date_modified": "2022-01-27T21:07:37Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "kedro"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/ubuntu-terminal-clipboard/",
      "url": "https://go.waylonwalker.com/ubuntu-terminal-clipboard/",
      "title": "Tmux and Vim Clipboard for Ubuntu",
      "content_html": "\u003cp\u003eOne of the first things I noticed broken in my terminal based workflow moving\nfrom Windows wsl to ubuntu was that my clipboard was all messed up and not\nworking with my terminal apps.  Luckily setting tmux and neovim to work with\nthe system clipboard was much easier than it was on windows.\u003c/p\u003e\n\u003cp\u003eFirst off you need to get \u003ccode\u003exclip\u003c/code\u003e if you don’t already have it provided by your\ndistro.  I found it in the apt repositories.  I have used it between Ubuntu\n18.04 and 21.10 and they all work flawlessly for me.\u003c/p\u003e\n\u003cp\u003eI have tmux setup to automatically copy any selection I make to the clipboard\nby setting the following in my \u003ccode\u003e~/.tmux.conf\u003c/code\u003e. While I have neovim open I need\nto be in insert mode for this to pick up.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# ~/tmux.conf\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003ebind\u003c/span\u003e -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel \u003cspan class=\"s2\"\u003e\u0026#34;xclip -i -f -selection primary | xclip -i -selection clipboard\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ebind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel \u003cspan class=\"s2\"\u003e\u0026#34;xclip -selection clipboard -i\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eTo get my yanks to go to the system clipboard in neovim, I just added\nunnamedplus to my existing clipboard variable.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e# \u003cspan class=\"p\"\u003e~\u003c/span\u003e\u003cspan class=\"sr\"\u003e/.config/\u003c/span\u003e\u003cspan class=\"nx\"\u003envim\u003c/span\u003e/\u003cspan class=\"nx\"\u003einit\u003c/span\u003e.\u003cspan class=\"nx\"\u003evim\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eset\u003c/span\u003e \u003cspan class=\"nx\"\u003eclipboard\u003c/span\u003e\u003cspan class=\"p\"\u003e+=\u003c/span\u003e\u003cspan class=\"nx\"\u003eunnamedplus\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eIf you need to copy something right from the terminal you can use xclip\ndirectly.  I do this semi-often to send someone a message in chat.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecat file.txt \u003cspan class=\"p\"\u003e|\u003c/span\u003e clip -sel copy\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eI set up some alias’s for doing this a bit more efficiently, but don’t find\nmyself using them very often.  This helps me grab commands from history and\ncopy them.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003ealias\u003c/span\u003e \u003cspan class=\"nv\"\u003ehclip\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;history | tail -n1 | cut -c 8- | xclip -sel clip\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003ealias\u003c/span\u003e \u003cspan class=\"nv\"\u003efclip\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;history -n 1000 | fzf | cut -c 8- | xclip -sel clip\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003ealias\u003c/span\u003e \u003cspan class=\"nv\"\u003efclip\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;history -n 1000 | fzf | xclip -sel clip\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nOne of the first things I noticed broken in my terminal based workflow moving\nfrom Windows wsl to ubuntu was that my clipboard was all messed up and not\nworking with my terminal apps.  Luckily setting tmux and neovim to work with\nthe system clipboard was much easier than it was on windows.\n\nFirst off you need to get `xclip` if you don't already have it provided by your\ndistro.  I found it in the apt repositories.  I have used it between Ubuntu\n18.04 and 21.10 and they all work flawlessly for me.\n\nI have tmux setup to automatically copy any selection I make to the clipboard\nby setting the following in my `~/.tmux.conf`. While I have neovim open I need\nto be in insert mode for this to pick up.\n\n``` bash\n# ~/tmux.conf\nbind -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel \"xclip -i -f -selection primary | xclip -i -selection clipboard\"\nbind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel \"xclip -selection clipboard -i\"\n```\n\nTo get my yanks to go to the system clipboard in neovim, I just added\nunnamedplus to my existing clipboard variable.\n\n``` vim\n# ~/.config/nvim/init.vim\nset clipboard+=unnamedplus\n```\n\nIf you need to copy something right from the terminal you can use xclip\ndirectly.  I do this semi-often to send someone a message in chat.\n\n``` bash\ncat file.txt | clip -sel copy\n```\n\nI set up some alias's for doing this a bit more efficiently, but don't find\nmyself using them very often.  This helps me grab commands from history and\ncopy them.\n\n``` bash\nalias hclip=\"history | tail -n1 | cut -c 8- | xclip -sel clip\"\nalias fclip=\"history -n 1000 | fzf | cut -c 8- | xclip -sel clip\"\nalias fclip=\"history -n 1000 | fzf | xclip -sel clip\"\n```\n",
      "summary": "One of the first things I noticed broken in my terminal based workflow moving from Windows wsl to ubuntu was that my clipboard was all messed up and not...",
      "date_published": "2022-01-26T02:50:56Z",
      "date_modified": "2022-01-26T02:50:56Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux",
        "vim",
        "tmux"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/nix-install-java8/",
      "url": "https://go.waylonwalker.com/nix-install-java8/",
      "title": "nix rescues modded minecraft night",
      "content_html": "\u003cp\u003eWith the latest version of minecraft it requires a very new, possibly\nthe latest, version of java.  Lately we have been getting into modded\nminecraft and I maintain the server for us.  It’s been tricky to say the\nleast.  One hurdle I recently hit involves having the wrong version of\njava.\u003c/p\u003e\n\u003cp\u003eI was getting this error trying to get a 1.12.2 forge server running.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eCaused by: java.lang.ClassCastException: class jdk.internal.loader.ClassLoaders$AppClassLoader cannot be cast to class java.net.URLClassLoader (jdk.internal.loader.ClassLoaders$AppClassLoader and java.net.URLClassLoader are in module java.base of loader ‘bootstrap’)\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eIn researching our errors, I found this on a forum.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ePre-1.13 Forge only works with Java 8.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eI don’t write java, or really know how to manage different versions of\njava, but I have nixpkgs installed and it has a ton of odd stuff like\nthis readily available, so\n\u003ca href=\"https://search.nixos.org/packages?channel=21.05\u0026amp;show=jdk8\u0026amp;from=0\u0026amp;size=50\u0026amp;sort=relevance\u0026amp;type=packages\u0026amp;query=java+8\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/search.nixos.org.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/search.nixos.org.png\" class=\"has-avatar  has-avatar-before\"\u003esearching nixpkgs\u003c/a\u003e\nlanded me with this.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003enix-env -iA nixpkgs.jdk8\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eonce I had this installed I then just changed out java for the full path\nto my new nixpkgs.jdk8 java and it worked.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e/home/walkers/.nix-profile/bin/java -server -Xms\u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"nv\"\u003eMIN_RAM\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e -Xmx\u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"nv\"\u003eMAX_RAM\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e \u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"nv\"\u003eJAVA_PARAMETERS\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e -jar \u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"nv\"\u003eSERVER_JAR\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e nogui\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eI don’t write java or do anything other than host minecraft servers wtih\nit.  There is probably a better way of maintaining java versions than\nthis, but this worked for me.\u003c/p\u003e\n",
      "content_text": "\nWith the latest version of minecraft it requires a very new, possibly\nthe latest, version of java.  Lately we have been getting into modded\nminecraft and I maintain the server for us.  It's been tricky to say the\nleast.  One hurdle I recently hit involves having the wrong version of\njava.\n\nI was getting this error trying to get a 1.12.2 forge server running.\n\n\u003e Caused by: java.lang.ClassCastException: class jdk.internal.loader.ClassLoaders$AppClassLoader cannot be cast to class java.net.URLClassLoader (jdk.internal.loader.ClassLoaders$AppClassLoader and java.net.URLClassLoader are in module java.base of loader 'bootstrap')\n\nIn researching our errors, I found this on a forum.\n\n\u003e Pre-1.13 Forge only works with Java 8.\n\nI don't write java, or really know how to manage different versions of\njava, but I have nixpkgs installed and it has a ton of odd stuff like\nthis readily available, so\n[searching nixpkgs](https://search.nixos.org/packages?channel=21.05\u0026show=jdk8\u0026from=0\u0026size=50\u0026sort=relevance\u0026type=packages\u0026query=java+8)\nlanded me with this.\n\n``` bash\nnix-env -iA nixpkgs.jdk8\n```\n\nonce I had this installed I then just changed out java for the full path\nto my new nixpkgs.jdk8 java and it worked.\n\n``` bash\n/home/walkers/.nix-profile/bin/java -server -Xms${MIN_RAM} -Xmx${MAX_RAM} ${JAVA_PARAMETERS} -jar ${SERVER_JAR} nogui\n```\n\nI don't write java or do anything other than host minecraft servers wtih\nit.  There is probably a better way of maintaining java versions than\nthis, but this worked for me.\n",
      "summary": "With the latest version of minecraft it requires a very new, possibly the latest, version of java. Lately we have been getting into modded minecraft and I...",
      "date_published": "2022-01-25T03:07:39Z",
      "date_modified": "2022-01-25T03:07:39Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "cli",
        "cli",
        "cli"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/tmux-copier-templates/",
      "url": "https://go.waylonwalker.com/tmux-copier-templates/",
      "title": "Tmux hotkey for copier templates",
      "content_html": "\u003cp\u003eI have added a hotkey to my copier template setup to quickly access all my\ntemplates at any time from tmux.  At any point I can hit \u003ccode\u003e\u0026lt;c-b\u0026gt;\u0026lt;c-b\u0026gt;\u003c/code\u003e, thats\nholding control and hitting \u003ccode\u003ebb\u003c/code\u003e, and I will get a popup list of all of my\ntemplates directory names.  Its an fzf list, which means that I can fuzzy\nsearch through it for the template I want, or arrow key to the one I want if I\nam feeling insane.  I even setup it up so that the preview is a list of the\nfiles that come with the template in tree view.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ebind-key c-b popup -E -w 80% -d \u003cspan class=\"s1\"\u003e\u0026#39;#{pane_current_path}\u0026#39;\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e    pipx run copier copy ~/.copier-templates/`ls ~/.copier-templates |\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e    fzf --header \u003c/span\u003e\u003cspan class=\"k\"\u003e$(\u003c/span\u003e\u003cspan class=\"nb\"\u003epwd\u003c/span\u003e\u003cspan class=\"k\"\u003e)\u003c/span\u003e\u003cspan class=\"s2\"\u003e --preview=\u0026#39;tree ~/.copier-templates/{} |\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e    lolcat\u0026#39;` . \\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e    \u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eI’ve had this on my systems for a few weeks now and I am constantly using it\nfor my \u003ca href=\"https://waylonwalker.com/til/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003etils\u003c/a\u003e,\n\u003ca href=\"https://waylonwalker.com/archive\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eblogs\u003c/a\u003e, and my .envrc file that goes into\nall of my projects to make sure that I have a \u003ca href=\"/virtual-environment/\" class=\"glossary-term\" title=\"Virtual Environment is term for a sandboxed environment commonly associated with the python programming language. If you are installing any sort of python...\"\u003evirtual environment\u003c/a\u003e installed and\nrunning any time I open it.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://images.waylonwalker.com/copier-templates-tmux-popup.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://images.waylonwalker.com/copier-templates-tmux-popup.png\" alt=\"this is what it looks like when I open my copier templates popup\"/ data-glightbox=\"description: this is what it looks like when I open my copier templates popup\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\nI have added a hotkey to my copier template setup to quickly access all my\ntemplates at any time from tmux.  At any point I can hit `\u003cc-b\u003e\u003cc-b\u003e`, thats\nholding control and hitting `bb`, and I will get a popup list of all of my\ntemplates directory names.  Its an fzf list, which means that I can fuzzy\nsearch through it for the template I want, or arrow key to the one I want if I\nam feeling insane.  I even setup it up so that the preview is a list of the\nfiles that come with the template in tree view.\n\n``` bash\nbind-key c-b popup -E -w 80% -d '#{pane_current_path}' \"\\\n    pipx run copier copy ~/.copier-templates/`ls ~/.copier-templates |\\\n    fzf --header $(pwd) --preview='tree ~/.copier-templates/{} |\\\n    lolcat'` . \\\n    \"\n```\n\nI've had this on my systems for a few weeks now and I am constantly using it\nfor my [tils](https://waylonwalker.com/til/),\n[blogs](https://waylonwalker.com/archive), and my .envrc file that goes into\nall of my projects to make sure that I have a virtual environment installed and\nrunning any time I open it.\n\n![this is what it looks like when I open my copier templates popup](https://images.waylonwalker.com/copier-templates-tmux-popup.png)\n",
      "summary": "I have added a hotkey to my copier template setup to quickly access all my templates at any time from tmux. At any point I can hit , thats holding control...",
      "date_published": "2022-01-24T02:22:53Z",
      "date_modified": "2022-01-24T02:22:53Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "linux",
        "tmux",
        "copier"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/markata-telescope-picker/",
      "url": "https://go.waylonwalker.com/markata-telescope-picker/",
      "title": "Markata Filters as Telescope Pickers in Neovim",
      "content_html": "\u003cp\u003eI often pop into my blog from neovim with the intent to look at just a\nsingle series of posts, \u003ccode\u003etil\u003c/code\u003e, \u003ccode\u003egratitude\u003c/code\u003e, or just see todays posts.\n\u003ca href=\"https://markata.dev/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/markata.dev.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/markata.dev.ico\" class=\"has-avatar  has-avatar-before\"\u003eMarkata\u003c/a\u003e has a great way of mapping over posts\nand returning their path that is designe exactly for this use case.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://images.waylonwalker.com/markta-list-todays-posts.png\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://images.waylonwalker.com/markta-list-todays-posts.png\" alt=\"Markata listing out posts from the command line\" class=\"wide glightbox\"/ data-glightbox=\"description: Markata listing out posts from the command line\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eTo tie these into a Telescope picker you add the command as the\nfind_command, and comma separate the words of the command, with no\nspaces.  I did also \u003ccode\u003e--sort,date,--reverse\u003c/code\u003e in there so that the newest\nposts are closest to the cursor.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ennoremap\u003c/span\u003e \u003cspan class=\"n\"\u003egeit\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003ecmd\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"n\"\u003eTelescope\u003c/span\u003e \u003cspan class=\"n\"\u003efind_files\u003c/span\u003e \u003cspan class=\"n\"\u003efind_command\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003emarkata\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"nb\"\u003elist\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"o\"\u003e--\u003c/span\u003e\u003cspan class=\"nb\"\u003emap\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"n\"\u003epath\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"o\"\u003e--\u003c/span\u003e\u003cspan class=\"nb\"\u003efilter\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"n\"\u003edate\u003c/span\u003e\u003cspan class=\"o\"\u003e==\u003c/span\u003e\u003cspan class=\"n\"\u003etoday\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003ecr\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ennoremap\u003c/span\u003e \u003cspan class=\"n\"\u003egeil\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003ecmd\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"n\"\u003eTelescope\u003c/span\u003e \u003cspan class=\"n\"\u003efind_files\u003c/span\u003e \u003cspan class=\"n\"\u003efind_command\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003emarkata\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"nb\"\u003elist\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"o\"\u003e--\u003c/span\u003e\u003cspan class=\"nb\"\u003emap\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"n\"\u003epath\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"o\"\u003e--\u003c/span\u003e\u003cspan class=\"nb\"\u003efilter\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"n\"\u003etemplateKey\u003c/span\u003e\u003cspan class=\"o\"\u003e==\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;til\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"o\"\u003e--\u003c/span\u003e\u003cspan class=\"n\"\u003esort\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"n\"\u003edate\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"o\"\u003e--\u003c/span\u003e\u003cspan class=\"n\"\u003ereverse\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003ecr\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ennoremap\u003c/span\u003e \u003cspan class=\"n\"\u003egeig\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003ecmd\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"n\"\u003eTelescope\u003c/span\u003e \u003cspan class=\"n\"\u003efind_files\u003c/span\u003e \u003cspan class=\"n\"\u003efind_command\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003emarkata\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"nb\"\u003elist\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"o\"\u003e--\u003c/span\u003e\u003cspan class=\"nb\"\u003emap\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"n\"\u003epath\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"o\"\u003e--\u003c/span\u003e\u003cspan class=\"nb\"\u003efilter\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"n\"\u003etemplateKey\u003c/span\u003e\u003cspan class=\"o\"\u003e==\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;gratitude\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"o\"\u003e--\u003c/span\u003e\u003cspan class=\"n\"\u003esort\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"n\"\u003edate\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"o\"\u003e--\u003c/span\u003e\u003cspan class=\"n\"\u003ereverse\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003ecr\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003eNOTE telescope treates each word as a string, do not wrap an extra\nlayer of quotes around your words, it gets messy.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e\u003ca href=\"https://images.waylonwalker.com/markata-list-telescope-picker.png\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://images.waylonwalker.com/markata-list-telescope-picker.png\" alt=\"using this picker in neovim\" class=\"wide glightbox\"/ data-glightbox=\"description: using this picker in neovim\"\u003e\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\nI often pop into my blog from neovim with the intent to look at just a\nsingle series of posts, `til`, `gratitude`, or just see todays posts.\n[Markata](https://markata.dev/) has a great way of mapping over posts\nand returning their path that is designe exactly for this use case.\n\n![Markata listing out posts from the command line](https://images.waylonwalker.com/markta-list-todays-posts.png){.wide}\n\nTo tie these into a Telescope picker you add the command as the\nfind_command, and comma separate the words of the command, with no\nspaces.  I did also `--sort,date,--reverse` in there so that the newest\nposts are closest to the cursor.\n\n``` python\nnnoremap geit \u003ccmd\u003eTelescope find_files find_command=markata,list,--map,path,--filter,date==today\u003ccr\u003e\nnnoremap geil \u003ccmd\u003eTelescope find_files find_command=markata,list,--map,path,--filter,templateKey=='til',--sort,date,--reverse\u003ccr\u003e\nnnoremap geig \u003ccmd\u003eTelescope find_files find_command=markata,list,--map,path,--filter,templateKey=='gratitude',--sort,date,--reverse\u003ccr\u003e\n```\n\n\u003e NOTE telescope treates each word as a string, do not wrap an extra\n\u003e layer of quotes around your words, it gets messy.\n\n![using this picker in neovim](https://images.waylonwalker.com/markata-list-telescope-picker.png){.wide}\n",
      "summary": "I often pop into my blog from neovim with the intent to look at just a single series of posts, , , or just see todays posts. Markata has a great way of...",
      "date_published": "2022-01-23T04:52:20Z",
      "date_modified": "2022-01-23T04:52:20Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "cli",
        "vim",
        "markata"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/copier-tasks/",
      "url": "https://go.waylonwalker.com/copier-tasks/",
      "title": "Copier Tasks | Python templating post run task",
      "content_html": "\u003cp\u003eCopier allows you to run post render tasks, just like cookiecutter. These are\ndefined as a list of \u003ccode\u003etasks\u003c/code\u003e in your \u003ccode\u003ecopier.yml\u003c/code\u003e.  They are simply shell\ncommands to run.\u003c/p\u003e\n\u003cp\u003eThe example I have below runs an \u003ccode\u003eupdate-gratitude\u003c/code\u003e bash script after the\ncopier template has been rendered.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c\"\u003e# copier.yml\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003enum\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"m\"\u003e128\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003e_answers_file\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003e.gratitude-copier-answers.yml\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003e_tasks\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e- \u003cspan class=\"s2\"\u003e\u0026#34;update-gratitude\u0026#34;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eI have put the script in \u003ccode\u003e~/.local/bin\u003c/code\u003e so that I know it’s always on my\n\u003ccode\u003e$PATH\u003c/code\u003e.  It will reach back into the \u003ccode\u003ecopier.yml\u003c/code\u003e and update the default\nnumber.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"cp\"\u003e#!/bin/bash\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"cp\"\u003e\u003c/span\u003e\u003cspan class=\"c1\"\u003e# ~/.local/bin/update-gratitude\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003ecurrent\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"sb\"\u003e`\u003c/span\u003eawk \u003cspan class=\"s1\"\u003e\u0026#39;{print $2}\u0026#39;\u003c/span\u003e ~/.copier-templates/gratitude/copier.yml \u003cspan class=\"p\"\u003e|\u003c/span\u003e head -n 1\u003cspan class=\"sb\"\u003e`\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003enew\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"sb\"\u003e`\u003c/span\u003eexpr \u003cspan class=\"nv\"\u003e$current\u003c/span\u003e + 1\u003cspan class=\"sb\"\u003e`\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eecho\u003c/span\u003e \u003cspan class=\"nv\"\u003e$current\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eecho\u003c/span\u003e \u003cspan class=\"nv\"\u003e$new\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esed -i \u003cspan class=\"s2\"\u003e\u0026#34;s/\u003c/span\u003e\u003cspan class=\"nv\"\u003e$current\u003c/span\u003e\u003cspan class=\"s2\"\u003e/\u003c/span\u003e\u003cspan class=\"nv\"\u003e$new\u003c/span\u003e\u003cspan class=\"s2\"\u003e/g\u0026#34;\u003c/span\u003e ~/.copier-templates/gratitude/copier.yml\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nCopier allows you to run post render tasks, just like cookiecutter. These are\ndefined as a list of `tasks` in your `copier.yml`.  They are simply shell\ncommands to run.\n\nThe example I have below runs an `update-gratitude` bash script after the\ncopier template has been rendered.\n\n``` yaml\n# copier.yml\nnum: 128\n_answers_file: .gratitude-copier-answers.yml\n_tasks:\n  - \"update-gratitude\"\n```\n\nI have put the script in `~/.local/bin` so that I know it's always on my\n`$PATH`.  It will reach back into the `copier.yml` and update the default\nnumber.\n\n``` bash\n#!/bin/bash\n# ~/.local/bin/update-gratitude\ncurrent=`awk '{print $2}' ~/.copier-templates/gratitude/copier.yml | head -n 1`\nnew=`expr $current + 1`\necho $current\necho $new\nsed -i \"s/$current/$new/g\" ~/.copier-templates/gratitude/copier.yml\n```\n",
      "summary": "Copier allows you to run post render tasks, just like cookiecutter. These are defined as a list of in your . They are simply shell commands to run.",
      "date_published": "2022-01-22T04:49:12Z",
      "date_modified": "2022-01-22T04:49:12Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "cli",
        "linux",
        "copier"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/gradual-typing-python/",
      "url": "https://go.waylonwalker.com/gradual-typing-python/",
      "title": "Gradual Typing in Python",
      "content_html": "\u003cp\u003eI’ve referenced a video from Anthony Sotile in passing conversation several\ntimes.  Walking through his gradual typing process has really helped me\nunderstand typing better, and has helped me make some projects better over time\nrather than getting slammed with typing errors.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://youtu.be/Rk-Y71P_9KE\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/youtu.be.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/youtu.be.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://youtu.be/Rk-Y71P_9KE\u003c/a\u003e\u003c/p\u003e\n\u003ch1 id=\"step-1\"\u003eStep 1\u003c/h1\u003e\n\u003cp\u003eRun Mypy as is, don’t get fancy yet.  This will not reach into any functions\nunless they are alreay explicitly typed.  It will not enforce you to type them\neither.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epip install mypy\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emypy .\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# or your specific project to avoid .venvs\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emypy src\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# or a single file\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emypy my-script.py\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"step-2\"\u003eStep 2 \u003ca href=\"#step-2\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNext we will add \u003ccode\u003echeck-untyped-defs\u003c/code\u003e, this will start checking inside\nfunctions that are not typed.  To add this to your config create a\n\u003ccode\u003esetup.cfg\u003c/code\u003e with the following.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nx\"\u003emypy\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003echeck_untyped_defs\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"nx\"\u003eTrue\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"step-3\"\u003eStep 3 \u003ca href=\"#step-3\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe final stage to this series is to add \u003ccode\u003edisallow_untyped_defs\u003c/code\u003e.  This will\nstart requiring all of your functions to be type hinted.  This one is probably\nthe toughest, because as you type functions mypy can uncover more issues for\nyou to fix.  Often times the list of errors grows before it shrinks.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nx\"\u003emypy\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003echeck_untyped_defs\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"nx\"\u003eTrue\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003edisallow_untyped_defs\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"nx\"\u003eTrue\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"anthonys-video\"\u003eAnthony’s video \u003ca href=\"#anthonys-video\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eMake sure that you watch Anthony’s video, give him a sub, he deserves it\nfor all the great things he is doing for the python community.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://www.youtube.com/watch?v=Rk-Y71P_9KE\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://www.youtube.com/watch?v=Rk-Y71P_9KE\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\nI've referenced a video from Anthony Sotile in passing conversation several\ntimes.  Walking through his gradual typing process has really helped me\nunderstand typing better, and has helped me make some projects better over time\nrather than getting slammed with typing errors.\n\nhttps://youtu.be/Rk-Y71P_9KE\n\n# Step 1\n\nRun Mypy as is, don't get fancy yet.  This will not reach into any functions\nunless they are alreay explicitly typed.  It will not enforce you to type them\neither.\n\n``` bash\npip install mypy\nmypy .\n# or your specific project to avoid .venvs\nmypy src\n# or a single file\nmypy my-script.py\n```\n\n## Step 2\n\nNext we will add `check-untyped-defs`, this will start checking inside\nfunctions that are not typed.  To add this to your config create a\n`setup.cfg` with the following.\n\n``` toml\n[mypy]\ncheck_untyped_defs = True\n```\n\n## Step 3\n\nThe final stage to this series is to add `disallow_untyped_defs`.  This will\nstart requiring all of your functions to be type hinted.  This one is probably\nthe toughest, because as you type functions mypy can uncover more issues for\nyou to fix.  Often times the list of errors grows before it shrinks.\n\n``` toml\n[mypy]\ncheck_untyped_defs = True\ndisallow_untyped_defs = True\n```\n\n## Anthony's video\n\nMake sure that you watch Anthony's video, give him a sub, he deserves it\nfor all the great things he is doing for the python community.\n\nhttps://www.youtube.com/watch?v=Rk-Y71P_9KE\n",
      "summary": "I've referenced a video from Anthony Sotile in passing conversation several times. Walking through his gradual typing process has really helped me understand...",
      "date_published": "2022-01-21T14:27:32Z",
      "date_modified": "2022-01-21T14:27:32Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/python-reverse-sluggify/",
      "url": "https://go.waylonwalker.com/python-reverse-sluggify/",
      "title": "Python Reverse Sluggify",
      "content_html": "\u003cp\u003eIn order to make an auto title plugin for markata I needed to come up\nwith a way to reverse the slug of a post to create a title for one that\ndoes not explicitly have a title.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eslugs\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e a slug is generally all lowercase and free of spaces, and is a way to\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003emake website routes (urls)\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003eHere I have  a \u003ccode\u003epath\u003c/code\u003e available that gives me the articles path, ex.\n\u003ccode\u003epython-reverse-sluggify.md\u003c/code\u003e.  An easy way to get rid of the file\nextension, is to pass it into pathlib.Path and ask for the stem, which\nreturns \u003ccode\u003epython-reverse-sluggify\u003c/code\u003e.  Then from There I chose to replace\n\u003ccode\u003e-\u003c/code\u003e and \u003ccode\u003e_\u003c/code\u003e with a space.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003earticle\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;title\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003ePath\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003earticle\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;path\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e])\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003estem\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ereplace\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;-\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34; \u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ereplace\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;_\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34; \u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003etitle\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eTo turn this into a markata plugin I put it into a pre_render hook.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003epathlib\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003ePath\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003emarkata.hookspec\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003ehook_impl\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eregister_attr\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nd\"\u003e@hook_impl\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nd\"\u003e@register_attr\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;articles\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003epre_render\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003emarkata\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u0026gt;\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003earticle\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003emarkata\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003efilter\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;title==\u0026#34;\u0026#34;\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003earticle\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;title\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003ePath\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003earticle\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;path\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e])\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003estem\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ereplace\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;-\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34; \u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ereplace\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;_\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34; \u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003etitle\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nIn order to make an auto title plugin for markata I needed to come up\nwith a way to reverse the slug of a post to create a title for one that\ndoes not explicitly have a title.\n\n!!! Note \"slugs\"\n     a slug is generally all lowercase and free of spaces, and is a way to\n     make website routes (urls)\n\nHere I have  a `path` available that gives me the articles path, ex.\n`python-reverse-sluggify.md`.  An easy way to get rid of the file\nextension, is to pass it into pathlib.Path and ask for the stem, which\nreturns `python-reverse-sluggify`.  Then from There I chose to replace\n`-` and `_` with a space.\n\n``` python\narticle[\"title\"] = (\n    Path(article[\"path\"]).stem.replace(\"-\", \" \").replace(\"_\", \" \").title()\n)\n```\n\nTo turn this into a markata plugin I put it into a pre_render hook.\n\n``` python\nfrom pathlib import Path\n\nfrom markata.hookspec import hook_impl, register_attr\n\n\n@hook_impl\n@register_attr(\"articles\")\ndef pre_render(markata) -\u003e None:\n    for article in markata.filter('title==\"\"'):\n        article[\"title\"] = (\n            Path(article[\"path\"]).stem.replace(\"-\", \" \").replace(\"_\", \" \").title()\n        )\n```\n",
      "summary": "In order to make an auto title plugin for markata I needed to come up with a way to reverse the slug of a post to create a title for one that does not...",
      "date_published": "2022-01-20T01:24:43Z",
      "date_modified": "2022-01-20T01:24:43Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/fzf-wallpaper/",
      "url": "https://go.waylonwalker.com/fzf-wallpaper/",
      "title": "fuzzy wallpaper with fzf",
      "content_html": "\u003cp\u003eI really appreciate that in linux anything can be scripted, including\nsetting the wallpaper.  So everytime I disconnect a monitor I can just\nrerun my script and fix my wallpaper without digging deep into the ui\nand fussing through a bunch of settings.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003efeh --bg-scale ~/.config/awesome/wallpaper/my_wallpaper.png\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003eI set my default wallpaper with \u003ccode\u003efeh\u003c/code\u003e using the command above.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eLeaning in on feh, we can use fzf to pick a wallpaper from a directory\nfull of wallpapers with very few keystrokes.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ealias wallpaper=\u0026#39;ls ~/.config/awesome/wallpaper | fzf --preview=\u0026#34;feh --bg-scale ~/.config/awesome/wallpaper/{}\u0026#34; | xargs -I {} feh --bg-scale ~/.config/awesome/wallpaper/{}\u0026#39;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cblockquote\u003e\n\u003cp\u003eI have mine alias’d to \u003ccode\u003ewallpaper\u003c/code\u003e so that I can quickly run it from\nmy terminal.\u003c/p\u003e\n\u003c/blockquote\u003e\n",
      "content_text": "\nI really appreciate that in linux anything can be scripted, including\nsetting the wallpaper.  So everytime I disconnect a monitor I can just\nrerun my script and fix my wallpaper without digging deep into the ui\nand fussing through a bunch of settings.\n\n``` bash\nfeh --bg-scale ~/.config/awesome/wallpaper/my_wallpaper.png\n```\n\n\u003e I set my default wallpaper with `feh` using the command above.\n\nLeaning in on feh, we can use fzf to pick a wallpaper from a directory\nfull of wallpapers with very few keystrokes.\n\n```\nalias wallpaper='ls ~/.config/awesome/wallpaper | fzf --preview=\"feh --bg-scale ~/.config/awesome/wallpaper/{}\" | xargs -I {} feh --bg-scale ~/.config/awesome/wallpaper/{}'\n```\n\n\u003e I have mine alias'd to `wallpaper` so that I can quickly run it from\n\u003e my terminal.\n",
      "summary": "I really appreciate that in linux anything can be scripted, including setting the wallpaper. So everytime I disconnect a monitor I can just rerun my script...",
      "date_published": "2022-01-19T01:17:26Z",
      "date_modified": "2022-01-19T01:17:26Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux",
        "cli",
        "bash"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/python-docstring-ast/",
      "url": "https://go.waylonwalker.com/python-docstring-ast/",
      "title": "Get Python docstring with ast",
      "content_html": "\u003cp\u003eGetting docstrings from python’s ast is far simpler and more reliable than any\nmethod of regex or brute force searching.  It’s also much less intimidating\nthan I originally thought.\u003c/p\u003e\n\u003ch2 id=\"parsing\"\u003eParsing \u003ca href=\"#parsing\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eFirst you need to load in some python code as a string, and parse it with\n\u003ccode\u003east.parse\u003c/code\u003e.  This gives you a tree like object, like an \u003ca href=\"/html/\" class=\"glossary-term\" title=\"HTML (HyperText Markup Language) is the standard markup language used to create and design documents on the World Wide Web. It structures web content by...\"\u003ehtml\u003c/a\u003e dom.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epy_file\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003ePath\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;plugins/auto_publish.py\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eraw_tree\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epy_file\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eread_text\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003etree\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003east\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eparse\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eraw_tree\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"getting-the-docstring\"\u003eGetting the Docstring \u003ca href=\"#getting-the-docstring\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eYou can then use \u003ccode\u003east.get_docstring\u003c/code\u003e to get the docstring of the node you are\ncurrently looking at.  In the case of freshly loading in a file, this will be\nthe module level doctring that is at the very top of a file.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003emodule_docstring\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003east\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eget_docstring\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003etree\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"walking-for-all-functions\"\u003eWalking for all functions \u003ca href=\"#walking-for-all-functions\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eTo get all of the functions docstrings we can use \u003ccode\u003east.walk\u003c/code\u003e to look for nodes\nthat are an instance of \u003ccode\u003east.FunctionDef\u003c/code\u003e, then run \u003ccode\u003eget_docstring\u003c/code\u003e on those\nnodes.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003efunctions\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"n\"\u003ef\u003c/span\u003e \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003ef\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003east\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ewalk\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003etree\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"nb\"\u003eisinstance\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ef\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003east\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eFunctionDef\u003c/span\u003e\u003cspan class=\"p\"\u003e)]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003efunction_docs\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"n\"\u003east\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eget_docstring\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ef\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003ef\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003efunctions\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003east.walk docs: Recursively yield all descendant nodes in the tree starting at \u003cem\u003enode\u003c/em\u003e\n(including \u003cem\u003enode\u003c/em\u003e itself), in no specified order.  This is useful if you\nonly want to modify nodes in place and don’t care about the context.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"example\"\u003eExample \u003ca href=\"#example\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eHere is an image of me running this example through \u003ccode\u003eipython\u003c/code\u003e.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://images.waylonwalker.com/ast-get-docstring.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://images.waylonwalker.com/ast-get-docstring.png\" alt=\"getting docstrings from the ast in python\"/ data-glightbox=\"description: getting docstrings from the ast in python\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\nGetting docstrings from python's ast is far simpler and more reliable than any\nmethod of regex or brute force searching.  It's also much less intimidating\nthan I originally thought.\n\n## Parsing\n\nFirst you need to load in some python code as a string, and parse it with\n`ast.parse`.  This gives you a tree like object, like an html dom.\n\n``` python\npy_file = Path(\"plugins/auto_publish.py\")\nraw_tree = py_file.read_text()\ntree = ast.parse(raw_tree)\n```\n\n## Getting the Docstring\n\nYou can then use `ast.get_docstring` to get the docstring of the node you are\ncurrently looking at.  In the case of freshly loading in a file, this will be\nthe module level doctring that is at the very top of a file.\n\n``` python\nmodule_docstring = ast.get_docstring(tree)\n```\n\n## Walking for all functions\n\nTo get all of the functions docstrings we can use `ast.walk` to look for nodes\nthat are an instance of `ast.FunctionDef`, then run `get_docstring` on those\nnodes.\n\n```python\nfunctions = [f for f in ast.walk(tree) if isinstance(f, ast.FunctionDef)]\nfunction_docs = [ast.get_docstring(f) for f in functions]\n```\n\n\u003e ast.walk docs: Recursively yield all descendant nodes in the tree starting at *node*\n(including *node* itself), in no specified order.  This is useful if you\nonly want to modify nodes in place and don't care about the context.\n\n## Example\n\nHere is an image of me running this example through `ipython`.\n\n![getting docstrings from the ast in python](https://images.waylonwalker.com/ast-get-docstring.png)\n",
      "summary": "Getting docstrings from python's ast is far simpler and more reliable than any method of regex or brute force searching. It's also much less intimidating...",
      "date_published": "2022-01-18T20:13:32Z",
      "date_modified": "2022-01-18T20:13:32Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/gitignore-python/",
      "url": "https://go.waylonwalker.com/gitignore-python/",
      "title": "Python Respect the .gitignore",
      "content_html": "\u003cp\u003eMany tools such as ripgrep respect the \u003ccode\u003e.gitignore\u003c/code\u003e file in the directory\nit’s searching in.  This helps make it incredibly faster and generally\nmore intuitive for the user as it just searches files that are part of\nthier project and not things like their virtual environments, node\nmodules, or compiled builds.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eEditors like vscode often do not include files that are .gitignored in\ntheir search either.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e\u003ccode\u003epathspec\u003c/code\u003e is a pattern matching library that implements \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e’s wildmatch\npattern so that you can ignore files included in your \u003ccode\u003e.gitignore\u003c/code\u003e\npatterns.  You might want this to help make your libraries more\nperformant, or more intuitive for you users.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003epathspec\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003epathlib\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003ePath\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003emarkdown_files\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003ePath\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eglob\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;**/*.md\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ePath\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;.gitignore\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eexists\u003c/span\u003e\u003cspan class=\"p\"\u003e():\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003elines\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003ePath\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;.gitignore\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eread_text\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003esplitlines\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003espec\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epathspec\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ePathSpec\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003efrom_lines\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;gitwildmatch\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003elines\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003emarkdown_files\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003efile\u003c/span\u003e \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003efile\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003emarkdown_files\u003c/span\u003e \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"ow\"\u003enot\u003c/span\u003e \u003cspan class=\"n\"\u003espec\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ematch_file\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"nb\"\u003estr\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003efile\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003ccode\u003epathspec\u003c/code\u003e \u003ca href=\"https://github.com/cpburnz/python-path-specification\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehome page\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\nMany tools such as ripgrep respect the `.gitignore` file in the directory\nit's searching in.  This helps make it incredibly faster and generally\nmore intuitive for the user as it just searches files that are part of\nthier project and not things like their virtual environments, node\nmodules, or compiled builds.\n\n\u003e Editors like vscode often do not include files that are .gitignored in\n\u003e their search either.\n\n`pathspec` is a pattern matching library that implements git's wildmatch\npattern so that you can ignore files included in your `.gitignore`\npatterns.  You might want this to help make your libraries more\nperformant, or more intuitive for you users.\n\n```python\nimport pathspec\nfrom pathlib import Path\n\nmarkdown_files = Path().glob('**/*.md')\nif (Path(\".gitignore\").exists():\n    lines = Path(\".gitignore\").read_text().splitlines()\n\n    spec = pathspec.PathSpec.from_lines(\"gitwildmatch\", lines)\n\n    markdown_files = [\n        file for file in markdown_files if not spec.match_file(str(file))\n    ]\n```\n\n`pathspec` [home page](https://github.com/cpburnz/python-path-specification)\n",
      "summary": "Many tools such as ripgrep respect the file in the directory it's searching in. This helps make it incredibly faster and generally more intuitive for the...",
      "date_published": "2022-01-17T15:16:33Z",
      "date_modified": "2022-01-17T15:16:33Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/nvim-rename-python/",
      "url": "https://go.waylonwalker.com/nvim-rename-python/",
      "title": "Rename Python Variables with nvim",
      "content_html": "\u003cp\u003eI don’t use refactoring tools as much as I probably should.  mostly\nbecause I work with small functions with unique names, but I recently\nhad a case where a variable name \u003ccode\u003em\u003c/code\u003e was everywhere and I wanted it\nnamed better.  This was not possible with find and replace, because\nthere were other \u003ccode\u003em\u003c/code\u003e’s in this region.\u003c/p\u003e\n\u003cp\u003eI first tried the nvim lsp rename, and it failed, Then I pip installed\nrope, a refactoring tool for python, and it just worked!\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epip install rope\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eOnce you have rope installed you can call rename on the variable.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"nx\"\u003elua\u003c/span\u003e \u003cspan class=\"nx\"\u003evim\u003c/span\u003e.\u003cspan class=\"nx\"\u003elsp\u003c/span\u003e.\u003cspan class=\"nx\"\u003ebuf\u003c/span\u003e.\u003cspan class=\"nx\"\u003erename\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nI don't use refactoring tools as much as I probably should.  mostly\nbecause I work with small functions with unique names, but I recently\nhad a case where a variable name `m` was everywhere and I wanted it\nnamed better.  This was not possible with find and replace, because\nthere were other `m`'s in this region.\n\n\nI first tried the nvim lsp rename, and it failed, Then I pip installed\nrope, a refactoring tool for python, and it just worked!\n\n```bash\npip install rope\n```\n\nOnce you have rope installed you can call rename on the variable.\n\n```vim\n:lua vim.lsp.buf.rename()\n```\n",
      "summary": "I don't use refactoring tools as much as I probably should. mostly because I work with small functions with unique names, but I recently had a case where a...",
      "date_published": "2022-01-16T15:27:22Z",
      "date_modified": "2022-01-16T15:27:22Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "vim",
        "vim"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/python-find-available-port/",
      "url": "https://go.waylonwalker.com/python-find-available-port/",
      "title": "Python Find Available Port",
      "content_html": "\u003cp\u003eWhen running a python process that requires a port it’s handy if there is an\noption for it to just run on the next avaialble port.  To do this we can use\nthe socket module to determine if the port is in use or not before starting our\nprocess.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003esocket\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003efind_port\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eport\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"mi\"\u003e8000\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u0026#34;Find a port not in ues starting at given port\u0026#34;\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003ewith\u003c/span\u003e \u003cspan class=\"n\"\u003esocket\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003esocket\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003esocket\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eAF_INET\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003esocket\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eSOCK_STREAM\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"k\"\u003eas\u003c/span\u003e \u003cspan class=\"n\"\u003es\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"n\"\u003es\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003econnect_ex\u003c/span\u003e\u003cspan class=\"p\"\u003e((\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;localhost\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eport\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e \u003cspan class=\"o\"\u003e==\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"n\"\u003efind_port\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eport\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003eport\u003c/span\u003e \u003cspan class=\"o\"\u003e+\u003c/span\u003e \u003cspan class=\"mi\"\u003e1\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003eelse\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"n\"\u003eport\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nWhen running a python process that requires a port it's handy if there is an\noption for it to just run on the next avaialble port.  To do this we can use\nthe socket module to determine if the port is in use or not before starting our\nprocess.\n\n``` python\nimport socket\n\ndef find_port(port=8000):\n    \"\"\"Find a port not in ues starting at given port\"\"\"\n    with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:\n        if s.connect_ex((\"localhost\", port)) == 0:\n            return find_port(port=port + 1)\n        else:\n            return port\n```\n",
      "summary": "When running a python process that requires a port it's handy if there is an option for it to just run on the next avaialble port. To do this we can use the...",
      "date_published": "2022-01-15T23:47:27Z",
      "date_modified": "2022-01-15T23:47:27Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/python-auto-pdb/",
      "url": "https://go.waylonwalker.com/python-auto-pdb/",
      "title": "Implement --pdb in a python cli",
      "content_html": "\u003cp\u003eAdding a \u003ccode\u003e--pdb\u003c/code\u003e flag to your applications can make them much easier for\nthose using it to debug your application, especially if your applicatoin\nis a cli application where the user has much fewer options to start this\nfor themselves.  To add a pdb flag \u003ccode\u003e--pdb\u003c/code\u003e to your applications you will\nneed to wrap your function call in a try/except, and start a post_mortem\ndebugger. I give credit to\n\u003ca href=\"https://stackoverflow.com/questions/242485/starting-python-debugger-automatically-on-error\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/stackoverflow.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/stackoverflow.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ethis stack overflow post\u003c/a\u003e\nfor helping me figure this out.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003epdb\u003c/span\u003e\u003cspan class=\"o\"\u003e,\u003c/span\u003e \u003cspan class=\"nn\"\u003etraceback\u003c/span\u003e\u003cspan class=\"o\"\u003e,\u003c/span\u003e \u003cspan class=\"nn\"\u003esys\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003ebombs\u003c/span\u003e\u003cspan class=\"p\"\u003e():\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003ea\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ea\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e])\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"vm\"\u003e__name__\u003c/span\u003e \u003cspan class=\"o\"\u003e==\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;__main__\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;--pdb\u0026#34;\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003esys\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eargv\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003etry\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003ebombs\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003eexcept\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003eextype\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003evalue\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003etb\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003esys\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eexc_info\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003etraceback\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eprint_exc\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003epdb\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003epost_mortem\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003etb\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003eelse\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003ebombs\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"using---pdb\"\u003eUsing –pdb \u003ca href=\"#using---pdb\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epython\u003c/span\u003e \u003cspan class=\"n\"\u003eyourfile\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003epy\u003c/span\u003e \u003cspan class=\"o\"\u003e--\u003c/span\u003e\u003cspan class=\"n\"\u003epdb\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cfigure\u003e\n\u003ca href=\"https://images.waylonwalker.com/using-pdb-flag-from-cli.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://images.waylonwalker.com/using-pdb-flag-from-cli.png\" alt=\"running this example with and without –pdb flag\"/ data-glightbox=\"description: running this example with and without –pdb flag\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\nAdding a `--pdb` flag to your applications can make them much easier for\nthose using it to debug your application, especially if your applicatoin\nis a cli application where the user has much fewer options to start this\nfor themselves.  To add a pdb flag `--pdb` to your applications you will\nneed to wrap your function call in a try/except, and start a post_mortem\ndebugger. I give credit to\n[this stack overflow post](https://stackoverflow.com/questions/242485/starting-python-debugger-automatically-on-error)\nfor helping me figure this out.\n\n``` python\nimport pdb, traceback, sys\n\n\ndef bombs():\n    a = []\n    print(a[0])\n\n\nif __name__ == \"__main__\":\n    if \"--pdb\" in sys.argv:\n        try:\n            bombs()\n        except:\n            extype, value, tb = sys.exc_info()\n            traceback.print_exc()\n            pdb.post_mortem(tb)\n    else:\n        bombs()\n```\n\n## Using --pdb\n\n``` python\npython yourfile.py --pdb\n```\n\n![running this example with and without --pdb flag](https://images.waylonwalker.com/using-pdb-flag-from-cli.png)\n",
      "summary": "Adding a flag to your applications can make them much easier for those using it to debug your application, especially if your applicatoin is a cli...",
      "date_published": "2022-01-13T00:09:20Z",
      "date_modified": "2022-01-13T00:09:20Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/convert-markdown-pdf-linux/",
      "url": "https://go.waylonwalker.com/convert-markdown-pdf-linux/",
      "title": "Converting markdown to pdf with pandoc on linux",
      "content_html": "\u003cp\u003eConverting markdown posts to pdf on ubuntu takes a few packages from the\nstandard repos.  I had to go through a few stack overflow posts, and\nnothing seemed to have all the fonts and packages that I needed to\nconvert markdown, but this is what ended up working for me.\u003c/p\u003e\n\u003ch2 id=\"installing-all-the-packages\"\u003eInstalling all the packages \u003ca href=\"#installing-all-the-packages\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo apt install \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"se\"\u003e\u003c/span\u003e  pandoc \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"se\"\u003e\u003c/span\u003e  texlive-latex-base \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"se\"\u003e\u003c/span\u003e  texlive-fonts-recommended \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"se\"\u003e\u003c/span\u003e  texlive-extra-utils \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"se\"\u003e\u003c/span\u003e  texlive-latex-extra \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"se\"\u003e\u003c/span\u003e  texlive-xetex\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"using-pandoc-to-convert-markdown-to-a-pdf\"\u003eUsing pandoc to convert markdown to a pdf \u003ca href=\"#using-pandoc-to-convert-markdown-to-a-pdf\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# older versions of pandoc, I needed this one on ubuntu 18.04\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epandoc\u003c/span\u003e \u003cspan class=\"n\"\u003epages\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003etil\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003econvert\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003emarkdown\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003epdf\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003elinux\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003emd\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eo\u003c/span\u003e \u003cspan class=\"n\"\u003econvert\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003emarkdown\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003epdf\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003epdf\u003c/span\u003e \u003cspan class=\"o\"\u003e--\u003c/span\u003e\u003cspan class=\"n\"\u003elatex\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eengine\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003exelatex\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# newer versions of pandoc, I needed this one on ubuntu 21.04\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epandoc\u003c/span\u003e \u003cspan class=\"n\"\u003epages\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003etil\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003econvert\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003emarkdown\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003epdf\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003elinux\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003emd\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eo\u003c/span\u003e \u003cspan class=\"n\"\u003econvert\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003emarkdown\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003epdf\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003epdf\u003c/span\u003e \u003cspan class=\"o\"\u003e--\u003c/span\u003e\u003cspan class=\"n\"\u003epdf\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eengine\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003exelatex\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cfigure\u003e\n\u003ca href=\"https://images.waylonwalker.com/convert-markdown-pdf-linux-result.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://images.waylonwalker.com/convert-markdown-pdf-linux-result.png\" alt=\"results of converting this post to a pdf\"/ data-glightbox=\"description: results of converting this post to a pdf\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cblockquote\u003e\n\u003cp\u003eHere is an image of what converting this article over to a pdf looks\nlike.  The raw markdown is\n\u003ca href=\"https://waylonwalker.com/convert-markdown-pdf-linux.md\" title=\"a link to the raw markdown of this post\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003c/blockquote\u003e\n",
      "content_text": "\nConverting markdown posts to pdf on ubuntu takes a few packages from the\nstandard repos.  I had to go through a few stack overflow posts, and\nnothing seemed to have all the fonts and packages that I needed to\nconvert markdown, but this is what ended up working for me.\n\n## Installing all the packages\n\n``` bash\nsudo apt install \\\n  pandoc \\\n  texlive-latex-base \\\n  texlive-fonts-recommended \\\n  texlive-extra-utils \\\n  texlive-latex-extra \\\n  texlive-xetex\n```\n\n## Using pandoc to convert markdown to a pdf\n\n``` python\n# older versions of pandoc, I needed this one on ubuntu 18.04\npandoc pages/til/convert-markdown-pdf-linux.md -o convert-markdown-pdf.pdf --latex-engine=xelatex\n# newer versions of pandoc, I needed this one on ubuntu 21.04\npandoc pages/til/convert-markdown-pdf-linux.md -o convert-markdown-pdf.pdf --pdf-engine=xelatex\n```\n\n![results of converting this post to a pdf](https://images.waylonwalker.com/convert-markdown-pdf-linux-result.png)\n\n\u003e Here is an image of what converting this article over to a pdf looks\n\u003e like.  The raw markdown is\n\u003e [here](https://waylonwalker.com/convert-markdown-pdf-linux.md \"a link to the raw markdown of this post\").\n",
      "summary": "Converting markdown posts to pdf on ubuntu takes a few packages from the standard repos. I had to go through a few stack overflow posts, and nothing seemed...",
      "date_published": "2022-01-12T03:25:36Z",
      "date_modified": "2022-01-12T03:25:36Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux",
        "blog",
        "cli"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/python-enum/",
      "url": "https://go.waylonwalker.com/python-enum/",
      "title": "Python Enum",
      "content_html": "\u003cp\u003ePython comes with an enum module for creating enums.  You can make your\nown enum by inheriting importing and inheriting from Enum.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003efrom enum import Enum\n\n\nclass LifeCycle(Enum):\n    configure = 1\n    glob = 2\n    pre_render = 3\n    render = 4\n    post_render = 5\n    save = 6\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2 id=\"auto-incrementing\"\u003eauto incrementing \u003ca href=\"#auto-incrementing\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eEnum values can be auto incremented by importing auto, and calling\n\u003ccode\u003eauto()\u003c/code\u003e as their value.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003eenum\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eEnum\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eauto\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eclass\u003c/span\u003e \u003cspan class=\"nc\"\u003eLifeCycle\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eEnum\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003econfigure\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eauto\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003eglob\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eauto\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003epre_render\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eauto\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003erender\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eauto\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003epost_render\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eauto\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003esave\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eauto\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"using-the-enum\"\u003eusing the enum \u003ca href=\"#using-the-enum\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eEnum’s are accessed directy under the class itself, and have primarily\ntwo methods underneath each thing you make, \u003ccode\u003e.name\u003c/code\u003e and \u003ccode\u003e.value\u003c/code\u003e.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eLifecycle\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eglob\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eLifecycle\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eglob\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003evalue\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eLifecycle\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eglob\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ename\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cfigure\u003e\n\u003ca href=\"https://images.waylonwalker.com/using-lifecycle-enum.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://images.waylonwalker.com/using-lifecycle-enum.png\" alt=\"using the Lifecycle Enum\"/ data-glightbox=\"description: using the Lifecycle Enum\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\nPython comes with an enum module for creating enums.  You can make your\nown enum by inheriting importing and inheriting from Enum.\n\n```\nfrom enum import Enum\n\n\nclass LifeCycle(Enum):\n    configure = 1\n    glob = 2\n    pre_render = 3\n    render = 4\n    post_render = 5\n    save = 6\n```\n\n## auto incrementing\n\nEnum values can be auto incremented by importing auto, and calling\n`auto()` as their value.\n\n``` python\nfrom enum import Enum, auto\n\n\nclass LifeCycle(Enum):\n    configure = auto()\n    glob = auto()\n    pre_render = auto()\n    render = auto()\n    post_render = auto()\n    save = auto()\n```\n\n## using the enum\n\nEnum's are accessed directy under the class itself, and have primarily\ntwo methods underneath each thing you make, `.name` and `.value`.\n\n``` python\nLifecycle.glob\nLifecycle.glob.value\nLifecycle.glob.name\n```\n\n![using the Lifecycle Enum](https://images.waylonwalker.com/using-lifecycle-enum.png)\n",
      "summary": "Python comes with an enum module for creating enums. You can make your own enum by inheriting importing and inheriting from Enum.",
      "date_published": "2022-01-11T15:03:34Z",
      "date_modified": "2022-01-11T15:03:34Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/installing-pipx-on-ubuntu/",
      "url": "https://go.waylonwalker.com/installing-pipx-on-ubuntu/",
      "title": "Installing Pipx on Ubuntu",
      "content_html": "\u003cp\u003eI recently paired up with another dev running windows with Ubuntu running in\nwsl, and we had a bit of a stuggle to get our project off the ground because\nthey were missing com system dependencies to get going.\u003c/p\u003e\n\u003ch2 id=\"straight-in-the-terminal\"\u003eStraight in the terminal \u003ca href=\"#straight-in-the-terminal\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eOpen up a terminal and get your required system dependencies using the apt\npackage manager and the standard ubuntu repos.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo apt update\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo apt upgrade\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo apt install \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"se\"\u003e\u003c/span\u003e      python3-dev \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"se\"\u003e\u003c/span\u003e      python3-pip \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"se\"\u003e\u003c/span\u003e      python3-venv \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"se\"\u003e\u003c/span\u003e      python3-virtualenv\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epip install pipx\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"using-an-ansible-playbook\"\u003eUsing an Ansible-Playbook \u003ca href=\"#using-an-ansible-playbook\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI like running things like this through an ansible-playbook as it give me some\nextra control and repeatability next time I have a new machine to setup.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e- \u003cspan class=\"nt\"\u003ehosts\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003elocalhost\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003egather_facts\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"kc\"\u003etrue\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003ebecome\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"kc\"\u003etrue\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003ebecome_user\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;{{ lookup(\u0026#39;env\u0026#39;, \u0026#39;USER\u0026#39;) }}\u0026#34;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003epre_tasks\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e- \u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eupdate repositories\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003eapt\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eupdate_cache=yes\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003ebecome_user\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eroot\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003echanged_when\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"kc\"\u003eFalse\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003evars\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003euser\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;{{ ansible_user_id }}\u0026#34;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003etasks\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e- \u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eInstall System Packages 1 (terminal)\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003ebecome_user\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eroot\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003eapt\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e          \u003c/span\u003e- \u003cspan class=\"l\"\u003ebuild-essential\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e          \u003c/span\u003e- \u003cspan class=\"l\"\u003epython3-dev\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e          \u003c/span\u003e- \u003cspan class=\"l\"\u003epython3-pip\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e          \u003c/span\u003e- \u003cspan class=\"l\"\u003epython3-venv\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e          \u003c/span\u003e- \u003cspan class=\"l\"\u003epython3-virtualenv\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e- \u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003echeck is pipx installed\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003eshell\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ecommand -v pipx\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003eregister\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003epipx_exists\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003eignore_errors\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"kc\"\u003eyes\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e- \u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003epipx\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003ewhen\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003epipx_exists is failed\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003epip\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003epipx\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003etags\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e- \u003cspan class=\"l\"\u003epipx\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"video-clip\"\u003evideo clip \u003ca href=\"#video-clip\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eHere is a clip of me getting pipx running on ubuntu 21.10, and running a few of\nmy favorite pipx commands.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://images.waylonwalker.com/pipx-install-ubuntu.gif\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://images.waylonwalker.com/pipx-install-ubuntu.gif\" alt=\"installation video\"/ data-glightbox=\"description: installation video\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\nI recently paired up with another dev running windows with Ubuntu running in\nwsl, and we had a bit of a stuggle to get our project off the ground because\nthey were missing com system dependencies to get going.\n\n## Straight in the terminal\n\nOpen up a terminal and get your required system dependencies using the apt\npackage manager and the standard ubuntu repos.\n\n``` bash\nsudo apt update\nsudo apt upgrade\nsudo apt install \\\n      python3-dev \\\n      python3-pip \\\n      python3-venv \\\n      python3-virtualenv\npip install pipx\n```\n\n## Using an Ansible-Playbook\n\nI like running things like this through an ansible-playbook as it give me some\nextra control and repeatability next time I have a new machine to setup.\n\n``` yaml\n- hosts: localhost\n  gather_facts: true\n  become: true\n  become_user: \"{{ lookup('env', 'USER') }}\"\n\n  pre_tasks:\n    - name: update repositories\n      apt: update_cache=yes\n      become_user: root\n      changed_when: False\n  vars:\n    user: \"{{ ansible_user_id }}\"\n  tasks:\n    - name: Install System Packages 1 (terminal)\n      become_user: root\n      apt:\n        name:\n          - build-essential\n          - python3-dev\n          - python3-pip\n          - python3-venv\n          - python3-virtualenv\n    - name: check is pipx installed\n      shell: command -v pipx\n      register: pipx_exists\n      ignore_errors: yes\n\n    - name: pipx\n      when: pipx_exists is failed\n      pip:\n        name: pipx\n      tags:\n        - pipx\n```\n\n## video clip\n\nHere is a clip of me getting pipx running on ubuntu 21.10, and running a few of\nmy favorite pipx commands.\n\n![installation video](https://images.waylonwalker.com/pipx-install-ubuntu.gif)\n",
      "summary": "I recently paired up with another dev running windows with Ubuntu running in wsl, and we had a bit of a stuggle to get our project off the ground because...",
      "date_published": "2022-01-10T23:14:05Z",
      "date_modified": "2022-01-10T23:14:05Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "linux",
        "cli"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/2-minutes-to-stow/",
      "url": "https://go.waylonwalker.com/2-minutes-to-stow/",
      "title": "2 minutes to stow",
      "content_html": "\u003cp\u003eStow is an incredible way to manage your dotfiles.  It works by managing\nsymlinks between your dotfiles directory and the rest of the system.  You can\nthen make your dotfiles directory a \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e repo and have it version controlled.  In\nmy honest opinion, when I was trying to get started the docs straight into deep\ndetail of things I frankly don’t really care about and jumped right over how to\nuse it.\u003c/p\u003e\n\u003cp\u003eWhen using stow its easiest to keep your dotfiles directory (you may name it\nwhat you want) in your home directory, with application directories inside of\nit.\u003c/p\u003e\n\u003cp\u003eThen each application directory should reflet the same diretory structure as you\nwant in your home directory.\u003c/p\u003e\n\u003ch2 id=\"zsh\"\u003ezsh \u003ca href=\"#zsh\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eHere is a simple example with my zshrc.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emkdir ~/dotfiles\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003ecd\u003c/span\u003e ~/dotfiles\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emkdir zsh\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emv ~/.zshrc zsh\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003estow --simulate zsh\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eYou can pass in the –simulate if you wish, it will tell you if there are going\nto be any more errors or not, but it wont give much more than that.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eWARNING: in simulation mode so not modifying filesystem.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOnce your ready you can stow your zsh application.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003estow zsh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2 id=\"nvim\"\u003envim \u003ca href=\"#nvim\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eA slightly more complicated example is neovim since its diretory structure does\nnot put configuration files directly in your home directory, but rather at a\ndeeper level.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emkdir ~/dotfiles/nvim/.config/nvim/ -p\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003ecd\u003c/span\u003e ~/dotfiles\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emv ~/.config/nvim/ ~/dotfiles/nvim/.config/nvim/\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003estow zsh\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003e!notice how the nvim directory inside of dotfiles is structured like it would\nbe in your $HOME directory.\u003c/p\u003e\n\u003c/blockquote\u003e\n",
      "content_text": "\nStow is an incredible way to manage your dotfiles.  It works by managing\nsymlinks between your dotfiles directory and the rest of the system.  You can\nthen make your dotfiles directory a git repo and have it version controlled.  In\nmy honest opinion, when I was trying to get started the docs straight into deep\ndetail of things I frankly don't really care about and jumped right over how to\nuse it.\n\nWhen using stow its easiest to keep your dotfiles directory (you may name it\nwhat you want) in your home directory, with application directories inside of\nit.\n\nThen each application directory should reflet the same diretory structure as you\nwant in your home directory.\n\n## zsh\n\nHere is a simple example with my zshrc.\n\n``` bash\nmkdir ~/dotfiles\ncd ~/dotfiles\nmkdir zsh\nmv ~/.zshrc zsh\nstow --simulate zsh\n```\n\nYou can pass in the --simulate if you wish, it will tell you if there are going\nto be any more errors or not, but it wont give much more than that.\n\n```\nWARNING: in simulation mode so not modifying filesystem.\n```\n\nOnce your ready you can stow your zsh application.\n\n```\nstow zsh\n```\n\n## nvim\n\nA slightly more complicated example is neovim since its diretory structure does\nnot put configuration files directly in your home directory, but rather at a\ndeeper level.\n\n``` bash\nmkdir ~/dotfiles/nvim/.config/nvim/ -p\ncd ~/dotfiles\nmv ~/.config/nvim/ ~/dotfiles/nvim/.config/nvim/\nstow zsh\n```\n\n\u003e !notice how the nvim directory inside of dotfiles is structured like it would\n\u003e be in your $HOME directory.\n",
      "summary": "Stow is an incredible way to manage your dotfiles. It works by managing symlinks between your dotfiles directory and the rest of the system. You can then...",
      "date_published": "2022-01-09T00:33:58Z",
      "date_modified": "2022-01-09T00:33:58Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux",
        "cli",
        "bash"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/copier-answers/",
      "url": "https://go.waylonwalker.com/copier-answers/",
      "title": "Using Copier Answers to rerun templates quickly",
      "content_html": "\u003cp\u003eThe copier answers file is a key component to making your templates\nre-runnable.  Let’s look at the example for my setup.py.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ tree ~/.copier-templates/setup.py\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e/home/walkers/.copier-templates/setup.py\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e├── \u003cspan class=\"o\"\u003e[[\u003c/span\u003e _copier_conf.answers_file \u003cspan class=\"o\"\u003e]]\u003c/span\u003e.tmpl\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e├── copier.yml\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e├── setup.cfg\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e└── setup.py.tmpl\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"m\"\u003e0\u003c/span\u003e directories, \u003cspan class=\"m\"\u003e4\u003c/span\u003e files\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eInside of my \u003ccode\u003e[[ _copier_conf.answers_file ]].tmpl\u003c/code\u003e file is this, a\nmessage not to muck around with it, and the ansers in yaml form.  The\nfirst line is just a helper for the blog post.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c\"\u003e# ~/.copier-templates/setup.py/\\[\\[\\ _copier_conf.answers_file\\ \\]\\].tmpl\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"c\"\u003e# Changes here will be overwritten by Copier; NEVER EDIT MANUALLY\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"p\"\u003e[[\u003c/span\u003e\u003cspan class=\"l\"\u003e_copier_answers|to_nice_yaml]]\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eInside my copier.yml I have setup my _answers_file to point to a special\nfile.  This is because this is not a whole projet template, but one just\nfor a single file.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c\"\u003e# copier.yml\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"c\"\u003e# ...\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003e_answers_file\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003e.setup-py-copier-answers.yml\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003eOnce I change the _answers_file I was incredibly stuck\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"run-it\"\u003eRun it \u003ca href=\"#run-it\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI’m making a library of personal copier templates in my\n\u003ccode\u003e~/.copier-templates\u003c/code\u003e directory and I am going to run it from there.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecopier copy ~/.copier-templates/setup.py\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"results\"\u003eResults \u003ca href=\"#results\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAfter rendering the template we have the following content in our\n\u003ccode\u003e.setup.setup-py-copier-answers.yml\u003c/code\u003e file.  This will allow us to update\nquick if we ever change our template.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c\"\u003e# .setup-py-copier-answers.yml\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"c\"\u003e# Changes here will be overwritten by Copier; NEVER EDIT MANUALLY\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003e_src_path\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003e/home/walkers/.copier-templates/setup.py\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003eauthor_github\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ewaylonwalker\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003eauthor_name\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eWaylon Walker\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003edescription\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eawesomeness\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003eframework\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"kc\"\u003enull\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003ekeywords\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"kc\"\u003enull\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003epackage_name\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003emy-package\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"update-it\"\u003eUpdate it \u003ca href=\"#update-it\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis is where I was most stuck, primarily becuase \u003ccode\u003e-a \u0026lt;answers_file\u0026gt;\u003c/code\u003e\nmust come exactly after the base command \u003ccode\u003ecopier\u003c/code\u003e.  This felt a bit odd\nto and not where I expected it so it.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecopier -a .setup-py-copier-answers.yml update\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"stop-asking-all-these-damn-questions\"\u003eStop asking all these damn questions \u003ca href=\"#stop-asking-all-these-damn-questions\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eSo the defaults are now changed to our previous results, but it keeps\nasking for them.  To stop asking we can simply add a \u003ccode\u003e-f\u003c/code\u003e flag.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecopier -fa .setup-py-copier-answers.yml update\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nThe copier answers file is a key component to making your templates\nre-runnable.  Let's look at the example for my setup.py.\n\n``` bash\n❯ tree ~/.copier-templates/setup.py\n/home/walkers/.copier-templates/setup.py\n├── [[ _copier_conf.answers_file ]].tmpl\n├── copier.yml\n├── setup.cfg\n└── setup.py.tmpl\n\n0 directories, 4 files\n```\n\nInside of my `[[ _copier_conf.answers_file ]].tmpl` file is this, a\nmessage not to muck around with it, and the ansers in yaml form.  The\nfirst line is just a helper for the blog post.\n\n``` yaml\n# ~/.copier-templates/setup.py/\\[\\[\\ _copier_conf.answers_file\\ \\]\\].tmpl\n# Changes here will be overwritten by Copier; NEVER EDIT MANUALLY\n[[_copier_answers|to_nice_yaml]]\n```\n\nInside my copier.yml I have setup my _answers_file to point to a special\nfile.  This is because this is not a whole projet template, but one just\nfor a single file.\n\n``` yaml\n# copier.yml\n# ...\n_answers_file: .setup-py-copier-answers.yml\n```\n\n\u003e Once I change the _answers_file I was incredibly stuck\n\n## Run it\n\nI'm making a library of personal copier templates in my\n`~/.copier-templates` directory and I am going to run it from there.\n\n``` bash\ncopier copy ~/.copier-templates/setup.py\n```\n\n## Results\n\nAfter rendering the template we have the following content in our\n`.setup.setup-py-copier-answers.yml` file.  This will allow us to update\nquick if we ever change our template.\n\n``` yaml\n# .setup-py-copier-answers.yml\n# Changes here will be overwritten by Copier; NEVER EDIT MANUALLY\n_src_path: /home/walkers/.copier-templates/setup.py\nauthor_github: waylonwalker\nauthor_name: Waylon Walker\ndescription: awesomeness\nframework: null\nkeywords: null\npackage_name: my-package\n```\n\n## Update it\n\nThis is where I was most stuck, primarily becuase `-a \u003canswers_file\u003e`\nmust come exactly after the base command `copier`.  This felt a bit odd\nto and not where I expected it so it.\n\n``` bash\ncopier -a .setup-py-copier-answers.yml update\n```\n\n## Stop asking all these damn questions\n\nSo the defaults are now changed to our previous results, but it keeps\nasking for them.  To stop asking we can simply add a `-f` flag.\n\n``` bash\ncopier -fa .setup-py-copier-answers.yml update\n```\n",
      "summary": "The copier answers file is a key component to making your templates re-runnable. Let's look at the example for my setup.py.",
      "date_published": "2022-01-08T01:16:52Z",
      "date_modified": "2022-01-08T01:16:52Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "linux",
        "cli",
        "copier"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/simple-textual-widget/",
      "url": "https://go.waylonwalker.com/simple-textual-widget/",
      "title": "Making a Textual Widget from a Rich Renderable",
      "content_html": "\u003cp\u003eOnce you have made your sick looking cli apps with rich, eventually you are\ngoing to want to add some keybindings to them.  Currently Textual, also written\nby \u003ca href=\"https://twitter.com/willmcgugan\"\u003e@willmcgugan\u003c/a\u003e, does this extremely well.\nFair Warning it is in super beta mode and expected to change a bunch.  So take\nit easy with hopping on the train so fast.\u003c/p\u003e\n\u003ch2 id=\"get-the-things\"\u003eGet the things \u003ca href=\"#get-the-things\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eInstall them from the command line.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epip install textual\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epip install rich\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eImport make a .py file and import them in it.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003etextual.app\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eApp\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003etextual.widget\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eWidget\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003erich.panel\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003ePanel\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"make-what-you-have-a-widget\"\u003eMake what you have a widget \u003ca href=\"#make-what-you-have-a-widget\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIf you return your rich renderable out of class that inherits from\n\u003ccode\u003etextual.widget.Widget\u003c/code\u003e, you can then dock this inside of an app class\ninheriting from \u003ccode\u003etextual.app.App\u003c/code\u003e.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eclass\u003c/span\u003e \u003cspan class=\"nc\"\u003eMyWidget\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eWidget\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003erender\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003emy_renderable\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003ePanel\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;press q to quit\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"n\"\u003emy_renderable\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eclass\u003c/span\u003e \u003cspan class=\"nc\"\u003eMyApp\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eApp\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003easync\u003c/span\u003e \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003eon_mount\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u0026gt;\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003eawait\u003c/span\u003e \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eview\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003edock\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eMyWidget\u003c/span\u003e\u003cspan class=\"p\"\u003e(),\u003c/span\u003e \u003cspan class=\"n\"\u003eedge\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;top\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003eawait\u003c/span\u003e \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ebind\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;q\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;quit\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"run-it\"\u003erun it \u003ca href=\"#run-it\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eYou’ve made a TUI (text user interface).  Run the classmethod \u003ccode\u003erun\u003c/code\u003e to display\nthe it in its full screen glory.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eMyApp\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003erun\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003elog\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;textual.log\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"final-result\"\u003eFinal result \u003ca href=\"#final-result\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAt this point It probably does not look much different, but it can be\ninteractive by binding keys to any method on your app that starts with the word\n\u003ccode\u003eaction_\u003c/code\u003e, this includes the built-in actions such as \u003ccode\u003eaction_quit\u003c/code\u003e.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003etextual.app\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eApp\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003etextual.widget\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eWidget\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003erich.panel\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003ePanel\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eclass\u003c/span\u003e \u003cspan class=\"nc\"\u003eMyWidget\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eWidget\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003erender\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003emy_renderable\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003ePanel\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;press q to quit\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"n\"\u003emy_renderable\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eclass\u003c/span\u003e \u003cspan class=\"nc\"\u003eMyApp\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eApp\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003easync\u003c/span\u003e \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003eon_mount\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u0026gt;\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003eawait\u003c/span\u003e \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eview\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003edock\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eMyWidget\u003c/span\u003e\u003cspan class=\"p\"\u003e(),\u003c/span\u003e \u003cspan class=\"n\"\u003eedge\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;top\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003eawait\u003c/span\u003e \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ebind\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;q\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;quit\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"vm\"\u003e__name__\u003c/span\u003e \u003cspan class=\"o\"\u003e==\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;__main__\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003eMyApp\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003erun\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003elog\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;textual.log\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nOnce you have made your sick looking cli apps with rich, eventually you are\ngoing to want to add some keybindings to them.  Currently Textual, also written\nby [@willmcgugan](https://twitter.com/willmcgugan), does this extremely well.\nFair Warning it is in super beta mode and expected to change a bunch.  So take\nit easy with hopping on the train so fast.\n\n## Get the things\n\n\nInstall them from the command line.\n\n``` bash\npip install textual\npip install rich\n```\n\nImport make a .py file and import them in it.\n\n``` python\nfrom textual.app import App\nfrom textual.widget import Widget\nfrom rich.panel import Panel\n```\n\n## Make what you have a widget\n\nIf you return your rich renderable out of class that inherits from\n`textual.widget.Widget`, you can then dock this inside of an app class\ninheriting from `textual.app.App`.\n\n``` python\nclass MyWidget(Widget):\n    def render(self):\n        my_renderable = Panel(\"press q to quit\")\n        return my_renderable\n\nclass MyApp(App):\n    async def on_mount(self) -\u003e None:\n        await self.view.dock(MyWidget(), edge=\"top\")\n        await self.bind(\"q\", \"quit\")\n```\n\n## run it\n\nYou've made a TUI (text user interface).  Run the classmethod `run` to display\nthe it in its full screen glory.\n\n``` python\nMyApp.run(log=\"textual.log\")\n```\n\n## Final result\n\nAt this point It probably does not look much different, but it can be\ninteractive by binding keys to any method on your app that starts with the word\n`action_`, this includes the built-in actions such as `action_quit`.\n\n``` python\nfrom textual.app import App\nfrom textual.widget import Widget\nfrom rich.panel import Panel\n\n\nclass MyWidget(Widget):\n    def render(self):\n        my_renderable = Panel(\"press q to quit\")\n        return my_renderable\n\n\nclass MyApp(App):\n    async def on_mount(self) -\u003e None:\n        await self.view.dock(MyWidget(), edge=\"top\")\n        await self.bind(\"q\", \"quit\")\n\n\nif __name__ == \"__main__\":\n    MyApp.run(log=\"textual.log\")\n```\n",
      "summary": "Once you have made your sick looking cli apps with rich, eventually you are going to want to add some keybindings to them. Currently Textual, also written by...",
      "date_published": "2022-01-07T03:25:36Z",
      "date_modified": "2022-01-07T03:25:36Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "cli"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/pipx-examples/",
      "url": "https://go.waylonwalker.com/pipx-examples/",
      "title": "pipx examples",
      "content_html": "\u003ch2 id=\"count-lines-of-code\"\u003ecount lines of code \u003ca href=\"#count-lines-of-code\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epipx run pygount markata\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epipx run pygount markata --format\u003cspan class=\"o\"\u003e=\u003c/span\u003esummary\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epipx run pygount markata --suffix\u003cspan class=\"o\"\u003e=\u003c/span\u003ecfg,py,yml\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n## count lines of code\n\n``` bash\npipx run pygount markata\npipx run pygount markata --format=summary\npipx run pygount markata --suffix=cfg,py,yml\n```\n",
      "date_published": "2022-01-07T03:04:57Z",
      "date_modified": "2022-01-07T03:04:57Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "linux",
        "cli",
        "markata"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/remove-vim-tab-characters/",
      "url": "https://go.waylonwalker.com/remove-vim-tab-characters/",
      "title": "Remove Vim Tab Characters",
      "content_html": "\u003cp\u003eI’ve been stuck many times looking at a vim buffer with little question\nmarks at the beginning of each line and trying to get rid of them.  for\nso long I didn’t know what they were so trying to get rid of them was\nimpossible.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://images.waylonwalker.com/vim-tab-characters.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://images.waylonwalker.com/vim-tab-characters.png\" alt=\"example of what the tab character renders as in my editor\"/ data-glightbox=\"description: example of what the tab character renders as in my editor\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eIt turns out they are tabs, and you can get rid of the little leading\nquestion marks with this substitution command.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e%\u003cspan class=\"nx\"\u003es\u003c/span\u003e\u003cspan class=\"sr\"\u003e/\\t/\u003c/span\u003e    /\u003cspan class=\"nx\"\u003eg\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nI've been stuck many times looking at a vim buffer with little question\nmarks at the beginning of each line and trying to get rid of them.  for\nso long I didn't know what they were so trying to get rid of them was\nimpossible.\n\n![example of what the tab character renders as in my editor](https://images.waylonwalker.com/vim-tab-characters.png)\n\nIt turns out they are tabs, and you can get rid of the little leading\nquestion marks with this substitution command.\n\n``` vim\n:%s/\\t/    /g\n```\n",
      "summary": "I've been stuck many times looking at a vim buffer with little question marks at the beginning of each line and trying to get rid of them. for so long I...",
      "date_published": "2022-01-06T01:49:31Z",
      "date_modified": "2022-01-06T01:49:31Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "vim",
        "linux"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/tmux-pop-size/",
      "url": "https://go.waylonwalker.com/tmux-pop-size/",
      "title": "Tmux Pop size",
      "content_html": "\u003cp\u003etmux popups can be sized how you like based on the % width of the\nterminal on creation by using the flags (h, w, x, y) for height, width,\nand position.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# normal popup\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003etmux popup figlet \u003cspan class=\"s2\"\u003e\u0026#34;Hello\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# fullscreen popup\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003etmux popup -h 100% -w 100% figlet \u003cspan class=\"s2\"\u003e\u0026#34;Hello\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 75% centered popup\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003etmux popup -h 100% -w 75% figlet \u003cspan class=\"s2\"\u003e\u0026#34;Hello\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 75% popup on left side\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003etmux popup -h 100% -w 75% -x 0% figlet \u003cspan class=\"s2\"\u003e\u0026#34;Hello\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cvideo autoplay=\"\" controls=\"\" loop=\"true\" muted=\"\" playsinline=\"\" width=\"100%\" class=\"rounded-xl border-pink-900 border-2\"\u003e\n     \u003csource src=\"https://dropper.waylonwalker.com/api/file/c0e80bc5-a03d-40ad-a431-20436b82cf3b.mp4\" type=\"video/mp4\"/\u003e\n     Sorry, your browser doesn\u0026#39;t support embedded videos.\n\u003c/video\u003e\n\u003cblockquote\u003e\n\u003cp\u003eexample running these commands\u003c/p\u003e\n\u003c/blockquote\u003e\n",
      "content_text": "\ntmux popups can be sized how you like based on the % width of the\nterminal on creation by using the flags (h, w, x, y) for height, width,\nand position.\n\n``` bash\n# normal popup\ntmux popup figlet \"Hello\"\n# fullscreen popup\ntmux popup -h 100% -w 100% figlet \"Hello\"\n# 75% centered popup\ntmux popup -h 100% -w 75% figlet \"Hello\"\n# 75% popup on left side\ntmux popup -h 100% -w 75% -x 0% figlet \"Hello\"\n```\n\n\u003cvideo autoplay=\"\" controls=\"\" loop=\"true\" muted=\"\" playsinline=\"\" width=\"100%\" class=\"rounded-xl border-pink-900 border-2\"\u003e\n     \u003csource\n      src=\"https://dropper.waylonwalker.com/api/file/c0e80bc5-a03d-40ad-a431-20436b82cf3b.mp4\"\n      type=\"video/mp4\"\u003e\n     Sorry, your browser doesn't support embedded videos.\n\u003c/video\u003e\n\n\u003e example running these commands\n",
      "summary": "tmux popups can be sized how you like based on the % width of the terminal on creation by using the flags (h, w, x, y) for height, width, and position.",
      "date_published": "2022-01-05T17:37:26Z",
      "date_modified": "2022-01-05T17:37:26Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "tmux",
        "linux",
        "bash"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/copier-templates/",
      "url": "https://go.waylonwalker.com/copier-templates/",
      "title": "Copier Templates",
      "content_html": "\u003cp\u003e%%include til/copier_endops\u003c/p\u003e\n\u003cp\u003e%%include til/copier-template-variables\u003c/p\u003e\n\u003cp\u003e%%include til/copier-answers\u003c/p\u003e\n",
      "content_text": "\n\n%%include til/copier_endops\n\n%%include til/copier-template-variables\n\n%%include til/copier-answers\n",
      "summary": "%%include til/copier_endops",
      "date_published": "2022-01-05T01:54:07Z",
      "date_modified": "2022-01-05T01:54:07Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "linux",
        "cli",
        "copier"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/copier_endops/",
      "url": "https://go.waylonwalker.com/copier_endops/",
      "title": "Changing copier template strings (_endops)",
      "content_html": "\u003cp\u003eI was completely stuck for awhile.  copier was not replacing my template\nvariables.  I found out that adding all these \u003ccode\u003e_endops\u003c/code\u003e fixed it.  Now\nIt will support all of these types of variable wrappers\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c\"\u003e# copier.yml\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003e_templates_suffix\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003e.jinja\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003e_envops\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003eblock_end_string\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;%}\u0026#34;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003eblock_start_string\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;{%\u0026#34;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003ecomment_end_string\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;#}\u0026#34;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003ecomment_start_string\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;{#\u0026#34;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003ekeep_trailing_newline\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"kc\"\u003etrue\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003evariable_end_string\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;}}\u0026#34;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003evariable_start_string\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;{{\u0026#34;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003e!RTFM: Later I read the docs and realized that copier defaults to using \u003ccode\u003e[[\u003c/code\u003e\nand \u003ccode\u003e]]\u003c/code\u003e for its templates unlike other tools like cookiecutter.\u003c/p\u003e\n\u003c/blockquote\u003e\n",
      "content_text": "\nI was completely stuck for awhile.  copier was not replacing my template\nvariables.  I found out that adding all these `_endops` fixed it.  Now\nIt will support all of these types of variable wrappers\n\n``` yaml\n# copier.yml\n_templates_suffix: .jinja\n_envops:\n  block_end_string: \"%}\"\n  block_start_string: \"{%\"\n  comment_end_string: \"#}\"\n  comment_start_string: \"{#\"\n  keep_trailing_newline: true\n  variable_end_string: \"}}\"\n  variable_start_string: \"{{\"\n```\n\n\u003e !RTFM: Later I read the docs and realized that copier defaults to using `[[`\n\u003e and `]]` for its templates unlike other tools like cookiecutter.\n",
      "summary": "I was completely stuck for awhile. copier was not replacing my template variables. I found out that adding all these fixed it. Now It will support all of...",
      "date_published": "2022-01-04T10:55:12Z",
      "date_modified": "2022-01-04T10:55:12Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "bash",
        "copier"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/copier-template-variables/",
      "url": "https://go.waylonwalker.com/copier-template-variables/",
      "title": "copier template variables",
      "content_html": "\u003cp\u003eI’ve been looking for a templating tool for awhile that works well with\nsingle files.  My go to templating tool \u003ccode\u003ecookiecutter\u003c/code\u003e does not work for\nsingle files, it needs to put files into a directory underneath of it.\u003c/p\u003e\n\u003ch2 id=\"template-variables\"\u003etemplate variables \u003ca href=\"#template-variables\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eBy default copier uses double square brackets for its variables.\nvariables in files, directory_names, or file_names will be substituted\nfor their value once you render them.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# hello-py/hello.py.tmpl\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;hello-[[name]]\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003enote! by default copier will not inject variables into your\n\u003ccode\u003etemplate-strings\u003c/code\u003e unless you use a .tmpl suffix.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eBefore running copier we need to tell copier what variables to ask for,\nwe do this with a copier.yml file.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c\"\u003e# copier.yml\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003edefault\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003emy_name\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003etype\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003estr\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003ehelp\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eWhat is your name\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"installing-copier\"\u003einstalling copier \u003ca href=\"#installing-copier\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI prefer to install cli tools that I need globally with pipx, this\nalways gives me access to the tool without worrying about dependency\nconflicts, bloating my system site-packages, or managing a separate\n\u003ca href=\"/virtual-environment/\" class=\"glossary-term\" title=\"Virtual Environment is term for a sandboxed environment commonly associated with the python programming language. If you are installing any sort of python...\"\u003evirtual environment\u003c/a\u003e for it myself.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epipx install copier\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"running-copier\"\u003erunning copier \u003ca href=\"#running-copier\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWhen running \u003ccode\u003ecopier copy\u003c/code\u003e we pass in the directory of the template, and\nthe directory that we want to render the template into.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecopier copy hello-py .\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003enote! the directory ‘.’ is often referred to in cli programs to\nrepresent the current working directory that we are calling the\ncommand from.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"results\"\u003eresults \u003ca href=\"#results\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe resulting files will have your variables injected into them if you have\nsetup your template and copier.yml up correctly.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;hello-you\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nI've been looking for a templating tool for awhile that works well with\nsingle files.  My go to templating tool `cookiecutter` does not work for\nsingle files, it needs to put files into a directory underneath of it.\n\n## template variables\n\nBy default copier uses double square brackets for its variables.\nvariables in files, directory_names, or file_names will be substituted\nfor their value once you render them.\n\n``` python\n# hello-py/hello.py.tmpl\nprint('hello-[[name]]')\n```\n\n\u003e note! by default copier will not inject variables into your\n\u003e `template-strings` unless you use a .tmpl suffix.\n\nBefore running copier we need to tell copier what variables to ask for,\nwe do this with a copier.yml file.\n\n``` yaml\n# copier.yml\nname:\n  default: my_name\n  type: str\n  help: What is your name\n```\n\n## installing copier\n\nI prefer to install cli tools that I need globally with pipx, this\nalways gives me access to the tool without worrying about dependency\nconflicts, bloating my system site-packages, or managing a separate\nvirtual environment for it myself.\n\n``` bash\npipx install copier\n```\n\n## running copier\n\nWhen running `copier copy` we pass in the directory of the template, and\nthe directory that we want to render the template into.\n\n``` bash\ncopier copy hello-py .\n```\n\n\u003e note! the directory '.' is often referred to in cli programs to\n\u003e represent the current working directory that we are calling the\n\u003e command from.\n\n## results\n\nThe resulting files will have your variables injected into them if you have\nsetup your template and copier.yml up correctly.\n\n``` python\nprint('hello-you')\n```\n",
      "summary": "I've been looking for a templating tool for awhile that works well with single files. My go to templating tool does not work for single files, it needs to...",
      "date_published": "2022-01-03T12:37:32Z",
      "date_modified": "2022-01-03T12:37:32Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "bash",
        "copier"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/kedro-ubuntu-impish/",
      "url": "https://go.waylonwalker.com/kedro-ubuntu-impish/",
      "title": "Running Kedro on Ubuntu 21.10 Impish Indri",
      "content_html": "\u003cp\u003eI just installed a brand new Ubuntu 21.10 Impish Indri, and wanted a\nkedro project to play with so I did what any good kedroid would do, I\nwent to my command line and ran\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epipx run kedro new --starter spaceflights\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eBut what I got back was not what I expected!\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eFatal error from pip prevented installation. Full pip output in file:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    /home/walkers/.local/pipx/logs/cmd_2022-01-01_20.42.16_pip_errors.log\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSome possibly relevant errors from pip install:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    ERROR: Could not find a version that satisfies the requirement kedro \u003cspan class=\"o\"\u003e(\u003c/span\u003efrom versions: none\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    ERROR: No matching distribution found \u003cspan class=\"k\"\u003efor\u003c/span\u003e kedro\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eError installing kedro.\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eThis is weird, why cant I run kedro new with pipx?  Lets try pip.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epip install kedro\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eSame issue.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eERROR: Could not find a version that satisfies the requirement kedro \u003cspan class=\"o\"\u003e(\u003c/span\u003efrom versions: none\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eERROR: No matching distribution found \u003cspan class=\"k\"\u003efor\u003c/span\u003e kedro\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003ca href=\"/what-is-kedro/\" class=\"wikilink\" data-title=\"What is Kedro\" data-description=\"Kedro is an unopinionated Data Engineering framework that comes with a somewhat opinionated template. It gives the user a way to build pipelines that...\" data-date=\"2021-08-17\" data-preview=\"Kedro is an unopinionated Data Engineering framework that comes with a somewhat opinionated template. It gives the user a way to build pipelines that...\"\u003eWhat is Kedro\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eCurious what kedro is?  Check out this article.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"whats-up\"\u003eWhat’s up \u003ca href=\"#whats-up\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003ewrong python version\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eThe issue is that kedro only runs on up to \u003ccode\u003epython 3.8\u003c/code\u003e, and on Ubuntu\n21.10 when you \u003ccode\u003eapt install python3\u003c/code\u003e you get \u003ccode\u003epython 3.9\u003c/code\u003e and the\nstandard repos don’t have an old enough version to run kedro.\u003c/p\u003e\n\u003ch2 id=\"how-to-fix-this\"\u003eHow to fix this? \u003ca href=\"#how-to-fix-this\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eTheres a couple of ways you can fix this?  They all involve installing a\ndistribution that does not come from the standard repo.\u003c/p\u003e\n\u003ch2 id=\"where-can-i-get-the-right-version\"\u003eWhere Can I get the right version \u003ca href=\"#where-can-i-get-the-right-version\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAnaconda\u003c/li\u003e\n\u003cli\u003ePython.org\u003c/li\u003e\n\u003cli\u003edeadsnakes\u003c/li\u003e\n\u003cli\u003epyenv\u003c/li\u003e\n\u003cli\u003eminiconda\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"i-have-two-articles-that-can-help-you\"\u003eI have two articles that can help you \u003ca href=\"#i-have-two-articles-that-can-help-you\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/install-miniconda/\" class=\"wikilink\" data-title=\"How to Install miniconda on linux (from the command line only)\" data-description=\"Installing miniconda from only the command line can be a bit of an intimidating task your first time. Lets walk through how to do it.\" data-date=\"2020-08-10\" data-preview=\"Installing miniconda from only the command line can be a bit of an intimidating task your first time. Lets walk through how to do it.\"\u003eHow to Install miniconda on linux (from the command line only)\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eUsing miniconda\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003econda create -n myenv \u003cspan class=\"nv\"\u003epython\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e3.8\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003ca href=\"/pyenv-first-impressions/\" class=\"wikilink\" data-title=\"My first impressions with pyenv\" data-description=\"pyenv provides an easy way to install almost any version of python from a large list of distributions. I have simply been using the version of python from...\" data-date=\"2021-12-30\" data-preview=\"pyenv provides an easy way to install almost any version of python from a large list of distributions. I have simply been using the version of python from...\"\u003eMy first impressions with pyenv\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eUsing pyenv\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epyenv install 3.8.12\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nI just installed a brand new Ubuntu 21.10 Impish Indri, and wanted a\nkedro project to play with so I did what any good kedroid would do, I\nwent to my command line and ran\n\n```\npipx run kedro new --starter spaceflights\n```\n\nBut what I got back was not what I expected!\n\n``` bash\nFatal error from pip prevented installation. Full pip output in file:\n    /home/walkers/.local/pipx/logs/cmd_2022-01-01_20.42.16_pip_errors.log\n\nSome possibly relevant errors from pip install:\n    ERROR: Could not find a version that satisfies the requirement kedro (from versions: none)\n    ERROR: No matching distribution found for kedro\nError installing kedro.\n```\n\nThis is weird, why cant I run kedro new with pipx?  Lets try pip.\n\n``` bash\npip install kedro\n```\n\nSame issue.\n\n``` bash\nERROR: Could not find a version that satisfies the requirement kedro (from versions: none)\nERROR: No matching distribution found for kedro\n```\n\n\u003ca href=\"/what-is-kedro/\" class=\"wikilink\" data-title=\"What is Kedro\" data-description=\"Kedro is an unopinionated Data Engineering framework that comes with a somewhat opinionated template. It gives the user a way to build pipelines that...\" data-date=\"2021-08-17\"\u003eWhat is Kedro\u003c/a\u003e\n\n\u003e Curious what kedro is?  Check out this article.\n\n## What's up\n\n_wrong python version_\n\nThe issue is that kedro only runs on up to `python 3.8`, and on Ubuntu\n21.10 when you `apt install python3` you get `python 3.9` and the\nstandard repos don't have an old enough version to run kedro.\n\n## How to fix this?\n\nTheres a couple of ways you can fix this?  They all involve installing a\ndistribution that does not come from the standard repo.\n\n## Where Can I get the right version\n\n* Anaconda\n* Python.org\n* deadsnakes\n* pyenv\n* miniconda\n\n## I have two articles that can help you\n\n\u003ca href=\"/install-miniconda/\" class=\"wikilink\" data-title=\"How to Install miniconda on linux (from the command line only)\" data-description=\"Installing miniconda from only the command line can be a bit of an intimidating task your first time. Lets walk through how to do it.\" data-date=\"2020-08-10\"\u003eHow to Install miniconda on linux (from the command line only)\u003c/a\u003e\n\n\u003e Using miniconda\n\n``` bash\nconda create -n myenv python=3.8\n```\n\n\u003ca href=\"/pyenv-first-impressions/\" class=\"wikilink\" data-title=\"My first impressions with pyenv\" data-description=\"pyenv provides an easy way to install almost any version of python from a large list of distributions. I have simply been using the version of python from...\" data-date=\"2021-12-30\"\u003eMy first impressions with pyenv\u003c/a\u003e\n\n\u003e Using pyenv\n\n``` bash\npyenv install 3.8.12\n```\n",
      "summary": "I just installed a brand new Ubuntu 21.10 Impish Indri, and wanted a kedro project to play with so I did what any good kedroid would do, I went to my command...",
      "date_published": "2022-01-02T20:24:48Z",
      "date_modified": "2022-01-02T20:24:48Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "kedro",
        "python",
        "datascience"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/pluggy-minimal-example/",
      "url": "https://go.waylonwalker.com/pluggy-minimal-example/",
      "title": "A Minimal Pluggy Example",
      "content_html": "\u003cp\u003ePluggy makes it so easy to allow users to modify the behavior of a framework\nwithout thier specific feature needing to be implemented in the framework\nitself.\u003c/p\u003e\n\u003cp\u003eI’ve really been loving the workflow of frameworks built with pluggy.  The first\none that many python devs have experience with is pytest.  I’ve never created a\npytest plugin, and honestly at the time I looked into how they were made was a\nlong time ago and it went over my head.  I use a data pipelining framework\ncalled kedro, and have build many plugins for it.\u003c/p\u003e\n\u003ch2 id=\"making-a-plugin\"\u003eMaking a plugin \u003ca href=\"#making-a-plugin\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003esuper easy to do\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eAs long as the framework document the hooks that are available and what it\npasses to them it’s so easy to make a plugin.  Its just importing the\n\u003ccode\u003ehook_impl\u003c/code\u003e, making a class with a function that represents one of the hooks,\nand decorating it.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003eframework\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003ehook_impl\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eclass\u003c/span\u003e \u003cspan class=\"nc\"\u003eLowerHook\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nd\"\u003e@hook_impl\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003estart\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003epluggy_example\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003epluggy_example\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003emessage\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epluggy_example\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003emessage\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003elower\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"installing-pluggy\"\u003einstalling pluggy \u003ca href=\"#installing-pluggy\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eInstalling pluggy is just like most python applications, install python, make\nyour \u003ca href=\"/virtual-environment/\" class=\"glossary-term\" title=\"Virtual Environment is term for a sandboxed environment commonly associated with the python programming language. If you are installing any sort of python...\"\u003evirtual environment\u003c/a\u003e, and pip install it.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epip install pluggy\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"making-a-plugin-driven-framework\"\u003eMaking a plugin driven framework \u003ca href=\"#making-a-plugin-driven-framework\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003emuch less easy\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eAt the time I started playing with pluggy, their docs were less\ncomplete, or I was just plain blind, but this was a huge part of the\ndocs that were missing for me that now actually appear to be there.  But\nto get some more examples out there, here is my version.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003epluggy\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# These don\u0026#39;t need to match\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eHOOK_NAMESPACE\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;pluggy_example\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ePROJECT_NAME\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;pluggy_example\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ehook_spec\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epluggy\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eHookspecMarker\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eHOOK_NAMESPACE\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ehook_impl\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epluggy\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eHookimplMarker\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eHOOK_NAMESPACE\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eclass\u003c/span\u003e \u003cspan class=\"nc\"\u003ePluggyExampleSpecs\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e    This is where we spec out our frameworks hooks, I like to refer to them as\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e    the lifecycle.  Each of these functions is a hook that we are exposing to\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e    our users, with the kwargs that we expect to pass them.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e    \u0026#34;\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nd\"\u003e@hook_spec\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003estart\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003epluggy_example\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003ePluggyExample\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u0026gt;\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e        The first hook that runs.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e        \u0026#34;\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003epass\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nd\"\u003e@hook_spec\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003estop\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003epluggy_example\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003ePluggyExample\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u0026gt;\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e        The last hook that runs.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e        \u0026#34;\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003epass\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eclass\u003c/span\u003e \u003cspan class=\"nc\"\u003ePluggyExample\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e    This may not need to be a class, but I wanted a container where all the\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e    hooks had access to the message.  This made sense to me to do as a class.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e    \u0026#34;\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"fm\"\u003e__init__\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003emessage\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ehooks\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u0026gt;\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e        Setup the plugin manager and register all the hooks.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e        \u0026#34;\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003e_pm\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epluggy\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ePluginManager\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ePROJECT_NAME\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003e_pm\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eadd_hookspecs\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ePluggyExampleSpecs\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003emessage\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003emessage\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ehooks\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003ehooks\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"n\"\u003ehooks\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003e_register_hooks\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003e_register_hooks\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u0026gt;\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003ehook\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ehooks\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003e_pm\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eregister\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ehook\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003erun\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e        Run the hooks in the documented order, and pass in any kwargs the hook\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e        needs access to.  Here I am storing the message within this same class.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e        \u0026#34;\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003e_pm\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ehook\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003estart\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003epluggy_example\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003e_pm\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ehook\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003estop\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003epluggy_example\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003emessage\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eclass\u003c/span\u003e \u003cspan class=\"nc\"\u003eDefaultHook\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e    These are some hooks that run by default, maybe these are created by the\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e    framework author.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e    \u0026#34;\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nd\"\u003e@hook_impl\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003estart\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003epluggy_example\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003epluggy_example\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003emessage\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epluggy_example\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003emessage\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eupper\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nd\"\u003e@hook_impl\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003estop\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003epluggy_example\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003epluggy_example\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003emessage\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"vm\"\u003e__name__\u003c/span\u003e \u003cspan class=\"o\"\u003e==\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;__main__\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e    The user of this framework can apply the hook in their own code without\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e    changing the behavior of the framework, but the library has\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e    implemented it\u0026#39;s own default hooks.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e    \u0026#34;\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003epe\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003ePluggyExample\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003emessage\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;hello world\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003ehooks\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003eDefaultHook\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"p\"\u003e],\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003epe\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003erun\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"modifying-behavior\"\u003eModifying behavior \u003ca href=\"#modifying-behavior\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eas a user of PluggyExample\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eNow Lets pretent the user of this library likes everything about it,\nexcept, they don’t like all the shouting.  They can either search for a\nplugin on Google, github, or pypi and find one, or make it themself. the\nmagic here is that they do not need to have the package maintainer patch\nthe core library itself.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nclass LowerHook:\n    \u0026#34;\u0026#34;\u0026#34;\n    This is a new hook that a plugin author has created to modify the behavior\n    of the framework to lowercase the message.\n    \u0026#34;\u0026#34;\u0026#34;\n    @hook_impl\n    def start(pluggy_example):\n        pluggy_example.message = pluggy_example.message.lower()\n\nfrom pluggy_example import PluggyExample\npe = PluggyExample(\n    message=\u0026#34;hello world\u0026#34;,\n    hooks=[\n        DefaultHook,\n        LowerHook\n    ],\n)\npe.run()\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2 id=\"running-pluggy-example\"\u003eRunning Pluggy Example \u003ca href=\"#running-pluggy-example\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eHere is a short clip of me running the pluggy example in it’s default\nstate, then adding the LowerHook, and running a second time.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://images.waylonwalker.com/til-pluggy-example.gif\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://images.waylonwalker.com/til-pluggy-example.gif\" alt=\"example video\"/ data-glightbox=\"description: example video\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\nPluggy makes it so easy to allow users to modify the behavior of a framework\nwithout thier specific feature needing to be implemented in the framework\nitself.\n\nI've really been loving the workflow of frameworks built with pluggy.  The first\none that many python devs have experience with is pytest.  I've never created a\npytest plugin, and honestly at the time I looked into how they were made was a\nlong time ago and it went over my head.  I use a data pipelining framework\ncalled kedro, and have build many plugins for it.\n\n## Making a plugin\n_super easy to do_\n\nAs long as the framework document the hooks that are available and what it\npasses to them it's so easy to make a plugin.  Its just importing the\n`hook_impl`, making a class with a function that represents one of the hooks,\nand decorating it.\n\n``` python\nfrom framework import hook_impl\n\nclass LowerHook:\n    @hook_impl\n    def start(pluggy_example):\n        pluggy_example.message = pluggy_example.message.lower()\n```\n\n## installing pluggy\n\nInstalling pluggy is just like most python applications, install python, make\nyour virtual environment, and pip install it.\n\n``` bash\npip install pluggy\n```\n\n## Making a plugin driven framework\n_much less easy_\n\nAt the time I started playing with pluggy, their docs were less\ncomplete, or I was just plain blind, but this was a huge part of the\ndocs that were missing for me that now actually appear to be there.  But\nto get some more examples out there, here is my version.\n\n``` python\nimport pluggy\n\n# These don't need to match\nHOOK_NAMESPACE = \"pluggy_example\"\nPROJECT_NAME = \"pluggy_example\"\n\nhook_spec = pluggy.HookspecMarker(HOOK_NAMESPACE)\nhook_impl = pluggy.HookimplMarker(HOOK_NAMESPACE)\n\n\nclass PluggyExampleSpecs:\n    \"\"\"\n    This is where we spec out our frameworks hooks, I like to refer to them as\n    the lifecycle.  Each of these functions is a hook that we are exposing to\n    our users, with the kwargs that we expect to pass them.\n    \"\"\"\n    @hook_spec\n    def start(self, pluggy_example: PluggyExample) -\u003e None:\n        \"\"\"\n        The first hook that runs.\n        \"\"\"\n        pass\n\n    @hook_spec\n    def stop(self, pluggy_example: PluggyExample) -\u003e None:\n        \"\"\"\n        The last hook that runs.\n        \"\"\"\n        pass\n\n\nclass PluggyExample:\n    \"\"\"\n    This may not need to be a class, but I wanted a container where all the\n    hooks had access to the message.  This made sense to me to do as a class.\n    \"\"\"\n\n    def __init__(self, message=\"\", hooks=None) -\u003e None:\n        \"\"\"\n        Setup the plugin manager and register all the hooks.\n        \"\"\"\n        self._pm = pluggy.PluginManager(PROJECT_NAME)\n        self._pm.add_hookspecs(PluggyExampleSpecs)\n        self.message = message\n        self.hooks = hooks\n        if hooks:\n            self._register_hooks()\n\n    def _register_hooks(self) -\u003e None:\n        for hook in self.hooks:\n            self._pm.register(hook)\n\n    def run(self):\n        \"\"\"\n        Run the hooks in the documented order, and pass in any kwargs the hook\n        needs access to.  Here I am storing the message within this same class.\n        \"\"\"\n        self._pm.hook.start(pluggy_example=self)\n        self._pm.hook.stop(pluggy_example=self)\n        return self.message\n\n\nclass DefaultHook:\n    \"\"\"\n    These are some hooks that run by default, maybe these are created by the\n    framework author.\n    \"\"\"\n    @hook_impl\n    def start(pluggy_example):\n        pluggy_example.message = pluggy_example.message.upper()\n\n    @hook_impl\n    def stop(pluggy_example):\n        print(pluggy_example.message)\n\n\nif __name__ == \"__main__\":\n    \"\"\"\n    The user of this framework can apply the hook in their own code without\n    changing the behavior of the framework, but the library has\n    implemented it's own default hooks.\n    \"\"\"\n    pe = PluggyExample(\n        message=\"hello world\",\n        hooks=[\n            DefaultHook,\n        ],\n    )\n    pe.run()\n```\n\n## Modifying behavior\n_as a user of PluggyExample_\n\nNow Lets pretent the user of this library likes everything about it,\nexcept, they don't like all the shouting.  They can either search for a\nplugin on Google, github, or pypi and find one, or make it themself. the\nmagic here is that they do not need to have the package maintainer patch\nthe core library itself.\n\n```\n\nclass LowerHook:\n    \"\"\"\n    This is a new hook that a plugin author has created to modify the behavior\n    of the framework to lowercase the message.\n    \"\"\"\n    @hook_impl\n    def start(pluggy_example):\n        pluggy_example.message = pluggy_example.message.lower()\n\nfrom pluggy_example import PluggyExample\npe = PluggyExample(\n    message=\"hello world\",\n    hooks=[\n        DefaultHook,\n        LowerHook\n    ],\n)\npe.run()\n```\n\n## Running Pluggy Example\n\nHere is a short clip of me running the pluggy example in it's default\nstate, then adding the LowerHook, and running a second time.\n\n![example video](https://images.waylonwalker.com/til-pluggy-example.gif)\n",
      "summary": "Pluggy makes it so easy to allow users to modify the behavior of a framework without thier specific feature needing to be implemented in the framework itself.",
      "date_published": "2022-01-01T20:35:27Z",
      "date_modified": "2022-01-01T20:35:27Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/list-all-files-containing-phrase/",
      "url": "https://go.waylonwalker.com/list-all-files-containing-phrase/",
      "title": "List all the files containing a phrase",
      "content_html": "\u003cp\u003eOne of the most useful skills you can acquire to make you faster at\nalmost any job that uses a computer is getting good at finding text in\nyour current working diretory and identifying the files that its in.  I\noften use the silver searcher \u003ccode\u003eag\u003c/code\u003e or ripgrep \u003ccode\u003erg\u003c/code\u003e to find files in\nlarge directories quickly.  Both have a sane set of defaults that ignore\nhidden and gitignored files, but getting them to list only the filenames\nand not the matched was not trivial to me.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eI’ve searched throught he help/man pages many times looking for these\nflags and they always seem to evade me.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"ag\"\u003eag \u003ca href=\"#ag\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003ePassing the flag \u003ccode\u003e-l\u003c/code\u003e to ag will get it to list only the filepath, and\nnot the match. Here I gave it a \u003ccode\u003e--md\u003c/code\u003e as well to only return markdown\nfiletypes.  \u003ccode\u003eag\u003c/code\u003e supports a number of filetypes in a very similar way.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eag nvim --md -l\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"rg\"\u003erg \u003ca href=\"#rg\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eGiving \u003ccode\u003erg\u003c/code\u003e the \u003ccode\u003e--files-with-matches\u003c/code\u003e flag will yield you a similar set\nof results, giving only the filepaths themselves and not the match\nstatement.  Also passing in the \u003ccode\u003e-g \u0026#34;*.md\u0026#34;\u003c/code\u003e will similarly yield only\nresults from markdown files.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003erg --files-with-matches you -g \u003cspan class=\"s2\"\u003e\u0026#34;*.md\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nOne of the most useful skills you can acquire to make you faster at\nalmost any job that uses a computer is getting good at finding text in\nyour current working diretory and identifying the files that its in.  I\noften use the silver searcher `ag` or ripgrep `rg` to find files in\nlarge directories quickly.  Both have a sane set of defaults that ignore\nhidden and gitignored files, but getting them to list only the filenames\nand not the matched was not trivial to me.\n\n\u003e I've searched throught he help/man pages many times looking for these\n\u003e flags and they always seem to evade me.\n\n## ag\n\nPassing the flag `-l` to ag will get it to list only the filepath, and\nnot the match. Here I gave it a `--md` as well to only return markdown\nfiletypes.  `ag` supports a number of filetypes in a very similar way.\n\n``` bash\nag nvim --md -l\n```\n\n## rg\n\nGiving `rg` the `--files-with-matches` flag will yield you a similar set\nof results, giving only the filepaths themselves and not the match\nstatement.  Also passing in the `-g \"*.md\"` will similarly yield only\nresults from markdown files.\n\n``` bash\nrg --files-with-matches you -g \"*.md\"\n```\n",
      "summary": "One of the most useful skills you can acquire to make you faster at almost any job that uses a computer is getting good at finding text in your current...",
      "date_published": "2021-12-31T20:24:48Z",
      "date_modified": "2021-12-31T20:24:48Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "vim",
        "linux",
        "bash"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/pyenv-first-impressions/",
      "url": "https://go.waylonwalker.com/pyenv-first-impressions/",
      "title": "My first impressions with pyenv",
      "content_html": "\u003cp\u003epyenv provides an easy way to install almost any version of python from\na large list of distributions. I have simply been using the version of\npython from the os package manager for awhile, but recently I bumped my\nhome system to Ubuntu 21.10 impish, and it is only 3.9+ while the\nlibraries I needed were only compatable with up to 3.8.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eI needed to install an older version of python on ubuntu\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eI’ve been wanting to check out pyenv for awhile now, but without a\nburning need to do so.\u003c/p\u003e\n\u003ch2 id=\"installing\"\u003einstalling \u003ca href=\"#installing\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eBased on the Readme it looked like I needed to install using homebrew,so this\nis what I did, but I later realized that there is a pyenv-installer repo that\nmay have saved me this need.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/installing-homebrew-linux/\" class=\"wikilink\" data-title=\"Installing Homebrew on Linux\" data-description=\"Installing brew on linux proved quite easy and got pyenv running for me within 4 commands.\" data-date=\"2021-12-29\" data-preview=\"Installing brew on linux proved quite easy and got pyenv running for me within 4 commands.\"\u003eInstalling Homebrew on Linux\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"list-out-install-candidates\"\u003eList out install candidates \u003ca href=\"#list-out-install-candidates\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eYou can list all of the available versions to install with\n\u003ccode\u003epyenv install --list\u003c/code\u003e.  It does reccomend updating pyenv if you suspect\nthat it is missing one.  At the time of writing this comes out to 532\ndifferent versions!\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epyenv install --list\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"lets-install-the-latest-38-patch\"\u003eLet’s install the latest 3.8 patch \u003ca href=\"#lets-install-the-latest-38-patch\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eInstalling a version is as easy as \u003ccode\u003epyenv install 3.8.12\u003c/code\u003e.  This will\ninstall it, but not make it active anywhere.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epyenv install 3.8.12\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2 id=\"lets-use-python-3812-while-in-this-directory\"\u003elet’s use python 3.8.12 while in this directory \u003ca href=\"#lets-use-python-3812-while-in-this-directory\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eRunning \u003ccode\u003epyenv local\u003c/code\u003e will set the version of python that we wish to use\nwhile in this directory and any directory underneath of it while using\nthe pyenv command.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epyenv \u003cspan class=\"nb\"\u003elocal\u003c/span\u003e python3.8.12\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"python-version-file\"\u003e.python-version file \u003ca href=\"#python-version-file\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis creates a \u003ccode\u003e.python-version\u003c/code\u003e files in the directory I ran it in,\nthat contains simply the version number.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e3.8.12\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"using-with-pipx\"\u003eusing with pipx \u003ca href=\"#using-with-pipx\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI immediately ran into the same issue I was having before when trying to\nrun pipx, as pipx was running my system python.  I had to install pipx\nin the python3.8 environment to get it to use it.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epyenv \u003cspan class=\"nb\"\u003eexec\u003c/span\u003e pip install pipx\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epyenv \u003cspan class=\"nb\"\u003eexec\u003c/span\u003e pipx run kedro new\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"python-is-still-the-system-python\"\u003epython is still the system python \u003ca href=\"#python-is-still-the-system-python\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWhen I open a terminal and call \u003ccode\u003epython\u003c/code\u003e its still my system python that\nI installed and set with update-alternatives.  I am not sure if this is\nexpected or based on how I had installed the system python previously,\nbut it’s what happened on my system.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eupdate-alternatives --query python\n\nName: python\nLink: /home/walkers/.local/bin/python\nStatus: auto\nBest: /usr/bin/python3\nValue: /usr/bin/python3\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2 id=\"making-a-virtual-environment\"\u003emaking a \u003ca href=\"/virtual-environment/\" class=\"glossary-term\" title=\"Virtual Environment is term for a sandboxed environment commonly associated with the python programming language. If you are installing any sort of python...\"\u003evirtual environment\u003c/a\u003e \u003ca href=\"#making-a-virtual-environment\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eTo make a virtual environment, I simply ran \u003ccode\u003epyenv exec python\u003c/code\u003e in place\nof where I would normally run python and it worked for me.  There is a\nwhole package to get pyenv and venv to play nicely together, so I\nsuspect that there is more to it, but this worked well for me and I was\nhappy.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epyenv exec python -m venv .venv --prompt $(basename $PWD)\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eNow when my virtual environment is active it points to the python in\nthat virtual environment, and is the version of python that was used to\ncreate the environment.\u003c/p\u003e\n\u003ch2 id=\"links\"\u003eLinks \u003ca href=\"#links\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pyenv/pyenv#installation\" class=\"hoverlink  has-avatar has-avatar-before\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\"\u003ehttps://github.com/pyenv/pyenv#installation\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\npyenv provides an easy way to install almost any version of python from\na large list of distributions. I have simply been using the version of\npython from the os package manager for awhile, but recently I bumped my\nhome system to Ubuntu 21.10 impish, and it is only 3.9+ while the\nlibraries I needed were only compatable with up to 3.8.\n\n\u003e I needed to install an older version of python on ubuntu\n\nI've been wanting to check out pyenv for awhile now, but without a\nburning need to do so.\n\n## installing\n\nBased on the Readme it looked like I needed to install using homebrew,so this\nis what I did, but I later realized that there is a pyenv-installer repo that\nmay have saved me this need.\n\n\u003ca href=\"/installing-homebrew-linux/\" class=\"wikilink\" data-title=\"Installing Homebrew on Linux\" data-description=\"Installing brew on linux proved quite easy and got pyenv running for me within 4 commands.\" data-date=\"2021-12-29\"\u003eInstalling Homebrew on Linux\u003c/a\u003e\n\n## List out install candidates\n\nYou can list all of the available versions to install with\n`pyenv install --list`.  It does reccomend updating pyenv if you suspect\nthat it is missing one.  At the time of writing this comes out to 532\ndifferent versions!\n\n``` bash\npyenv install --list\n```\n\n## Let's install the latest 3.8 patch\n\nInstalling a version is as easy as `pyenv install 3.8.12`.  This will\ninstall it, but not make it active anywhere.\n\n```\npyenv install 3.8.12\n```\n\n## let's use python 3.8.12 while in this directory\n\nRunning `pyenv local` will set the version of python that we wish to use\nwhile in this directory and any directory underneath of it while using\nthe pyenv command.\n\n``` bash\npyenv local python3.8.12\n```\n\n## .python-version file\n\nThis creates a `.python-version` files in the directory I ran it in,\nthat contains simply the version number.\n\n``` bash\n3.8.12\n```\n\n## using with pipx\n\nI immediately ran into the same issue I was having before when trying to\nrun pipx, as pipx was running my system python.  I had to install pipx\nin the python3.8 environment to get it to use it.\n\n``` bash\npyenv exec pip install pipx\npyenv exec pipx run kedro new\n```\n\n## python is still the system python\n\nWhen I open a terminal and call `python` its still my system python that\nI installed and set with update-alternatives.  I am not sure if this is\nexpected or based on how I had installed the system python previously,\nbut it's what happened on my system.\n\n```\nupdate-alternatives --query python\n\nName: python\nLink: /home/walkers/.local/bin/python\nStatus: auto\nBest: /usr/bin/python3\nValue: /usr/bin/python3\n```\n\n## making a virtual environment\n\nTo make a virtual environment, I simply ran `pyenv exec python` in place\nof where I would normally run python and it worked for me.  There is a\nwhole package to get pyenv and venv to play nicely together, so I\nsuspect that there is more to it, but this worked well for me and I was\nhappy.\n\n```\npyenv exec python -m venv .venv --prompt $(basename $PWD)\n```\n\nNow when my virtual environment is active it points to the python in\nthat virtual environment, and is the version of python that was used to\ncreate the environment.\n\n## Links\n\n[https://github.com/pyenv/pyenv#installation](https://github.com/pyenv/pyenv#installation){.hoverlink}\n",
      "summary": "pyenv provides an easy way to install almost any version of python from a large list of distributions. I have simply been using the version of python from...",
      "date_published": "2021-12-30T15:26:01Z",
      "date_modified": "2021-12-30T15:26:01Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "linux",
        "bash"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/installing-homebrew-linux/",
      "url": "https://go.waylonwalker.com/installing-homebrew-linux/",
      "title": "Installing Homebrew on Linux",
      "content_html": "\u003cp\u003eInstalling brew on linux proved quite easy and got pyenv running for me\nwithin 4 commands.\u003c/p\u003e\n\u003cp\u003eI had never used homebrew before, honestly I thought it was a mac only\nthing for years.  Today I wanted to try out pyenv, and the reccommended\nway to install was using homebrew.  I am not yet sure if I want either\nin my normal workflow, so for now I am just going to pop open a new\nterminal and install homebrew and see how it goes.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e/bin/bash -c \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"k\"\u003e$(\u003c/span\u003ecurl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh\u003cspan class=\"k\"\u003e)\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eecho\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;eval \u0026#34;$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)\u0026#34;\u0026#39;\u003c/span\u003e \u0026gt;\u0026gt; /home/walkers/.zprofile\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eeval\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"k\"\u003e$(\u003c/span\u003e/home/linuxbrew/.linuxbrew/bin/brew shellenv\u003cspan class=\"k\"\u003e)\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eThat was it, now homebrew is working. Starting a new shell and running\nthe command to install pyenv worked.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ebrew install pyenv\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"links\"\u003eLinks \u003ca href=\"#links\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://brew.sh/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/brew.sh.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/brew.sh.ico\" class=\"has-avatar  has-avatar-before\"\u003ehomebrew\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\nInstalling brew on linux proved quite easy and got pyenv running for me\nwithin 4 commands.\n\nI had never used homebrew before, honestly I thought it was a mac only\nthing for years.  Today I wanted to try out pyenv, and the reccommended\nway to install was using homebrew.  I am not yet sure if I want either\nin my normal workflow, so for now I am just going to pop open a new\nterminal and install homebrew and see how it goes.\n\n\n``` bash\n/bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\"\necho 'eval \"$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)\"' \u003e\u003e /home/walkers/.zprofile\neval \"$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)\"\n```\n\nThat was it, now homebrew is working. Starting a new shell and running\nthe command to install pyenv worked.\n\n``` bash\nbrew install pyenv\n```\n\n## Links\n\n* [homebrew](https://brew.sh/)\n",
      "summary": "Installing brew on linux proved quite easy and got pyenv running for me within 4 commands.",
      "date_published": "2021-12-29T20:24:48Z",
      "date_modified": "2021-12-29T20:24:48Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux",
        "bash"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/serve-html-command-line/",
      "url": "https://go.waylonwalker.com/serve-html-command-line/",
      "title": "Serve html from your command line",
      "content_html": "\u003cp\u003eWhen I first moved to vim from and ide like vscode or sublime text one of my\nvery first issues was trying to preview my website at \u003ccode\u003elocalhost:8000\u003c/code\u003e.  There\nhad always just been a button there to do it in all of my other editors, not\nvim.  There are not many buttons for anything in vim.  While there is probably a\nplugin that can run a webserver for me in vim, it’s not necessary, we just need\nthe command line we are already in.\u003c/p\u003e\n\u003ch2 id=\"running-a-separate-process\"\u003erunning a separate process \u003ca href=\"#running-a-separate-process\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eYou will need a way to run another process alongside vim, here are a couple\nideas to get you going that are not the focus here.style\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003euse background jobs\n\u003cul\u003e\n\u003cli\u003ec-z to send a job to the background\u003c/li\u003e\n\u003cli\u003efg to bring it back\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003euse a second terminal\u003c/li\u003e\n\u003cli\u003euse a second tab\u003c/li\u003e\n\u003cli\u003euse tmux and run it in a separate split/window\u003c/li\u003e\n\u003cli\u003euse an embeded nvim terminal\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"running-a-development-webserver-from-the-command-line\"\u003erunning a development webserver from the command line \u003ca href=\"#running-a-development-webserver-from-the-command-line\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003ePython already exists on most linux systems by default, and most are now on\npython3.  If you are on windows typing python will take you directly to the\nwindows store to install it, or you can also use wsl.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# python3\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epython -m http.server\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# running on port 5000\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epython -m http.server --directory markout \u003cspan class=\"m\"\u003e5000\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre\u003e\u003ccode\u003e# for the low chance you are on python2\npython -m SimpleHTTPServer\n\n# running on port 5000\npython -m SimpleHTTPServer 5000\npython -m SimpleHTTPServer --directory markout 5000\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://images.waylonwalker.com/python-m-http-server.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://images.waylonwalker.com/python-m-http-server.png\" alt=\"running a python static webserver from the command line\"/ data-glightbox=\"description: running a python static webserver from the command line\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"using-nodejs\"\u003eusing nodejs \u003ca href=\"#using-nodejs\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIf you are a web developer it’s likely that you need nodejs and npm on your\nsystem anyways and may want to use one of the servers from npm.  I’ll admit with\nthese not being tied to the long term support of a language they are much more\nfeature rich with things like compression out of the box.  In my opinion they\nare nice things that you would want out of a production server, but may not\nbe necessary for development.\u003c/p\u003e\n\u003ch3 id=\"installing-npx\"\u003einstalling npx \u003ca href=\"#installing-npx\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# if you don\u0026#39;t alredy have npx\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003enpm i -g npx\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003enpx is a handy tool that lets you run command line applications straight from\nnpm without installing them.  It pulls the latest version every time you want\nto run, then executes it without it being installed.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3 id=\"running-the-http-server-with-npx\"\u003erunning the http-server with npx \u003ca href=\"#running-the-http-server-with-npx\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003enpx http-server\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# running on port 5000\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003enpx http-server -p \u003cspan class=\"m\"\u003e5000\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003enpx http-server markout -p \u003cspan class=\"m\"\u003e5000\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cfigure\u003e\n\u003ca href=\"https://images.waylonwalker.com/npx-http-server.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://images.waylonwalker.com/npx-http-server.png\" alt=\"running a nodejs static webserver from the command line\"/ data-glightbox=\"description: running a nodejs static webserver from the command line\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\nWhen I first moved to vim from and ide like vscode or sublime text one of my\nvery first issues was trying to preview my website at `localhost:8000`.  There\nhad always just been a button there to do it in all of my other editors, not\nvim.  There are not many buttons for anything in vim.  While there is probably a\nplugin that can run a webserver for me in vim, it's not necessary, we just need\nthe command line we are already in.\n\n## running a separate process\n\nYou will need a way to run another process alongside vim, here are a couple\nideas to get you going that are not the focus here.style\n\n* use background jobs\n  * c-z to send a job to the background\n  * fg to bring it back\n* use a second terminal\n* use a second tab\n* use tmux and run it in a separate split/window\n* use an embeded nvim terminal\n\n## running a development webserver from the command line\n\nPython already exists on most linux systems by default, and most are now on\npython3.  If you are on windows typing python will take you directly to the\nwindows store to install it, or you can also use wsl.\n\n``` bash\n# python3\npython -m http.server\n\n# running on port 5000\npython -m http.server --directory markout 5000\n```\n\n```\n# for the low chance you are on python2\npython -m SimpleHTTPServer\n\n# running on port 5000\npython -m SimpleHTTPServer 5000\npython -m SimpleHTTPServer --directory markout 5000\n\n```\n\n![running a python static webserver from the command line](https://images.waylonwalker.com/python-m-http-server.png)\n\n## using nodejs\n\nIf you are a web developer it's likely that you need nodejs and npm on your\nsystem anyways and may want to use one of the servers from npm.  I'll admit with\nthese not being tied to the long term support of a language they are much more\nfeature rich with things like compression out of the box.  In my opinion they\nare nice things that you would want out of a production server, but may not\nbe necessary for development.\n\n### installing npx\n\n``` bash\n# if you don't alredy have npx\nnpm i -g npx\n```\n\n\u003e npx is a handy tool that lets you run command line applications straight from\n\u003e npm without installing them.  It pulls the latest version every time you want\n\u003e to run, then executes it without it being installed.\n\n### running the http-server with npx\n\n``` bash\nnpx http-server\n\n# running on port 5000\nnpx http-server -p 5000\nnpx http-server markout -p 5000\n\n```\n\n![running a nodejs static webserver from the command line](https://images.waylonwalker.com/npx-http-server.png)\n",
      "summary": "When I first moved to vim from and ide like vscode or sublime text one of my very first issues was trying to preview my website at . There had always just...",
      "date_published": "2021-12-28T20:24:48Z",
      "date_modified": "2021-12-28T20:24:48Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "vim",
        "linux",
        "bash"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/nvim-telescope-custom-command/",
      "url": "https://go.waylonwalker.com/nvim-telescope-custom-command/",
      "title": "Opening files in vim from output of command",
      "content_html": "\u003cp\u003eMany command line tools can output a list of files, this is quite powerful.\nI often want to search for something, then open it from a fuzzy picker.  This\ncan be done with fzf in the terminal, but often I am already in vim and I want\nto open it inside my current session.\u003c/p\u003e\n\u003ch2 id=\"telescope\"\u003eTelescope \u003ca href=\"#telescope\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003ehow to pass a custom command to telescope\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eTelescope is the fuzzy file finder I use every day inside of neovim.  Its pretty\nfantastic and easy to extent like this.  This first example I am only passing in\nfiles from the current working directory by using \u003ccode\u003els\u003c/code\u003e.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"nx\"\u003eTelescope\u003c/span\u003e \u003cspan class=\"nx\"\u003efind_files\u003c/span\u003e \u003cspan class=\"nx\"\u003efind_command\u003c/span\u003e\u003cspan class=\"p\"\u003e=\u003c/span\u003e\u003cspan class=\"nx\"\u003els\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eThis brings up a normal Telescope picker with results from the \u003ccode\u003els\u003c/code\u003e command.\u003c/p\u003e\n\u003ch2 id=\"more-arguments\"\u003eMore arguments \u003ca href=\"#more-arguments\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003ehow to pass a muli-argument command to telescope\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eAdding more arguments can be done by comma separating them as shown in the\nexample below.  This command will run the silver-searcher, search for all\noccurences of nvim inside of a markdown file, and return only the filepaths so\nTelescope can pick from them.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"nx\"\u003eTelescope\u003c/span\u003e \u003cspan class=\"nx\"\u003efind_files\u003c/span\u003e \u003cspan class=\"nx\"\u003efind_command\u003c/span\u003e\u003cspan class=\"p\"\u003e=\u003c/span\u003e\u003cspan class=\"nx\"\u003eag\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"nx\"\u003envim\u003c/span\u003e\u003cspan class=\"p\"\u003e,--\u003c/span\u003e\u003cspan class=\"nx\"\u003emd\u003c/span\u003e\u003cspan class=\"p\"\u003e,-\u003c/span\u003e\u003cspan class=\"nx\"\u003el\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nMany command line tools can output a list of files, this is quite powerful.\nI often want to search for something, then open it from a fuzzy picker.  This\ncan be done with fzf in the terminal, but often I am already in vim and I want\nto open it inside my current session.\n\n## Telescope\n_how to pass a custom command to telescope_\n\nTelescope is the fuzzy file finder I use every day inside of neovim.  Its pretty\nfantastic and easy to extent like this.  This first example I am only passing in\nfiles from the current working directory by using `ls`.\n\n``` vim\n:Telescope find_files find_command=ls\n```\n\nThis brings up a normal Telescope picker with results from the `ls` command.\n\n## More arguments\n_how to pass a muli-argument command to telescope_\n\nAdding more arguments can be done by comma separating them as shown in the\nexample below.  This command will run the silver-searcher, search for all\noccurences of nvim inside of a markdown file, and return only the filepaths so\nTelescope can pick from them.\n\n```vim\n:Telescope find_files find_command=ag,nvim,--md,-l\n```\n",
      "summary": "Many command line tools can output a list of files, this is quite powerful. I often want to search for something, then open it from a fuzzy picker. This can...",
      "date_published": "2021-12-27T20:24:48Z",
      "date_modified": "2021-12-27T20:24:48Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "vim"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/nvim-telescope-hidden-files/",
      "url": "https://go.waylonwalker.com/nvim-telescope-hidden-files/",
      "title": "Finding hidden (dotfiles) using Telescope in neovim",
      "content_html": "\u003cp\u003eFinding hidden files using Telescope as you fuzzy file finder is not too\nhard, its a single flag passed in.  Then it will use whichever file\nfinder it can find [‘fd’, ‘fdfind’, ‘rg –files’, ‘find’, or ‘where’] in\nthat order.  These tools each have their own way of handling hidden\nfiles, but telescope takes care of that so all you need to do is pass in\n\u003ccode\u003ehidden=true\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eI have this keymap set to help me list out all files including hidden\nfiles using the pnumonic go edit hidden.  I use ge for quite a few\ndifferent things to take me directly to a specific file or picker.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ennoremap\u003c/span\u003e \u003cspan class=\"n\"\u003egeh\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003ecmd\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"n\"\u003eTelescope\u003c/span\u003e \u003cspan class=\"n\"\u003efind_files\u003c/span\u003e \u003cspan class=\"n\"\u003ehidden\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003etrue\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003ecr\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003esee the\n\u003ca href=\"https://github.com/nvim-telescope/telescope.nvim/blob/82e3cc322ad87b262aef092cb7475e769740e83a/lua/telescope/builtin/files.lua#L167-L184\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eimplementation\u003c/a\u003e\ntelescope finds your files.\u003c/p\u003e\n",
      "content_text": "\nFinding hidden files using Telescope as you fuzzy file finder is not too\nhard, its a single flag passed in.  Then it will use whichever file\nfinder it can find ['fd', 'fdfind', 'rg --files', 'find', or 'where'] in\nthat order.  These tools each have their own way of handling hidden\nfiles, but telescope takes care of that so all you need to do is pass in\n`hidden=true`.\n\nI have this keymap set to help me list out all files including hidden\nfiles using the pnumonic go edit hidden.  I use ge for quite a few\ndifferent things to take me directly to a specific file or picker.\n\n``` python\nnnoremap geh \u003ccmd\u003eTelescope find_files hidden=true\u003ccr\u003e\n```\n\n\nsee the\n[implementation](https://github.com/nvim-telescope/telescope.nvim/blob/82e3cc322ad87b262aef092cb7475e769740e83a/lua/telescope/builtin/files.lua#L167-L184)\ntelescope finds your files.\n",
      "summary": "Finding hidden files using Telescope as you fuzzy file finder is not too hard, its a single flag passed in. Then it will use whichever file finder it can...",
      "date_published": "2021-12-26T20:24:48Z",
      "date_modified": "2021-12-26T20:24:48Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "vim"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/ansible_install_fonts/",
      "url": "https://go.waylonwalker.com/ansible_install_fonts/",
      "title": "Installing system nerd-fonts with ansible",
      "content_html": "\u003cp\u003eLately I’ve been on a journey to really clean up my dotfiles, and I was\ncompletely missing fonts.  I noticed jumping into a new vm I had a bunch\nof broken devicons when using Telescope with the devicons plugins.\u003c/p\u003e\n\u003cp\u003eThis is one of those things that can be a total pain to get right on\nsome systems, and it’s so nice when it’s just there for you pretty much\nout of the box.\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003emake sure your user fonts directory exists\u003c/li\u003e\n\u003cli\u003echech if the font you want exists on your machine\u003c/li\u003e\n\u003cli\u003edownload and unzip fonts into the fonts directory\u003c/li\u003e\n\u003cli\u003erepeat 2-3 for all the fonts you use on your system\u003c/li\u003e\n\u003c/ol\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e- \u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eensure fonts directory\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003efile\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003epath\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;{{ lookup(\u0026#39;env\u0026#39;, \u0026#39;HOME\u0026#39;) }}/.fonts\u0026#34;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003estate\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003edirectory\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e- \u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eHack exists\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003eshell\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;ls {{ lookup(\u0026#39;env\u0026#39;, \u0026#39;HOME\u0026#39;) }}/.fonts/Hack*Nerd*Font*Complete*\u0026#34;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003eregister\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ehack_exists\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003eignore_errors\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"kc\"\u003eyes\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e- \u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eDownload Hack\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003ewhen\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ehack_exists is failed\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003eansible.builtin.unarchive\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003esrc\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ehttps://github.com/ryanoasis/nerd-fonts/releases/download/v2.1.0/Hack.zip\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003edest\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;{{ lookup(\u0026#39;env\u0026#39;, \u0026#39;HOME\u0026#39;) }}/.fonts/\u0026#34;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eremote_src\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"kc\"\u003eyes\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003ca href=\"https://www.youtube.com/watch?v=2MEmsinxRK4\" class=\"hoverlink  has-avatar has-avatar-before\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.youtube.com.png\"\u003ehttps://www.youtube.com/watch?v=2MEmsinxRK4\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eI made a YT based on this post\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"links\"\u003eLinks \u003ca href=\"#links\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eansible docs for \u003ca href=\"https://docs.ansible.com/ansible/latest/collections/ansible/builtin/unarchive_module.html\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/docs.ansible.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/docs.ansible.com.png\" class=\"has-avatar  has-avatar-before\"\u003ebuiltin.unarchive\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"/setup-yamlls/\" class=\"wikilink\" data-title=\"Setup a yaml schema | yamlls for a silky smooth setup\" data-description=\"I\u0026#39;ve gone far too long without a good setup for editing yaml files, I am missing out on autocomplete and proper diagnostics. This ends today as I setup...\" data-date=\"2021-12-03\" data-preview=\"I\u0026#39;ve gone far too long without a good setup for editing yaml files, I am missing out on autocomplete and proper diagnostics. This ends today as I setup...\"\u003eSetup a yaml schema | yamlls for a silky smooth setup\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003echeck out how I install yamlls using ansible\u003c/p\u003e\n\u003c/blockquote\u003e\n",
      "content_text": "\nLately I've been on a journey to really clean up my dotfiles, and I was\ncompletely missing fonts.  I noticed jumping into a new vm I had a bunch\nof broken devicons when using Telescope with the devicons plugins.\n\nThis is one of those things that can be a total pain to get right on\nsome systems, and it's so nice when it's just there for you pretty much\nout of the box.\n\n1. make sure your user fonts directory exists\n2. chech if the font you want exists on your machine\n3. download and unzip fonts into the fonts directory\n4. repeat 2-3 for all the fonts you use on your system\n\n``` yaml\n- name: ensure fonts directory\n  file:\n    path: \"{{ lookup('env', 'HOME') }}/.fonts\"\n    state: directory\n\n- name: Hack exists\n  shell: \"ls {{ lookup('env', 'HOME') }}/.fonts/Hack*Nerd*Font*Complete*\"\n  register: hack_exists\n  ignore_errors: yes\n\n- name: Download Hack\n  when: hack_exists is failed\n  ansible.builtin.unarchive:\n    src: https://github.com/ryanoasis/nerd-fonts/releases/download/v2.1.0/Hack.zip\n    dest: \"{{ lookup('env', 'HOME') }}/.fonts/\"\n    remote_src: yes\n\n```\n\n[https://www.youtube.com/watch?v=2MEmsinxRK4](https://www.youtube.com/watch?v=2MEmsinxRK4){.hoverlink}\n\n\u003e I made a YT based on this post\n\n## Links\n\n* ansible docs for [builtin.unarchive](https://docs.ansible.com/ansible/latest/collections/ansible/builtin/unarchive_module.html)\n\n\u003ca href=\"/setup-yamlls/\" class=\"wikilink\" data-title=\"Setup a yaml schema | yamlls for a silky smooth setup\" data-description=\"I\u0026#39;ve gone far too long without a good setup for editing yaml files, I am missing out on autocomplete and proper diagnostics. This ends today as I setup...\" data-date=\"2021-12-03\"\u003eSetup a yaml schema | yamlls for a silky smooth setup\u003c/a\u003e\n\n\u003e check out how I install yamlls using ansible\n",
      "summary": "Lately I've been on a journey to really clean up my dotfiles, and I was completely missing fonts. I noticed jumping into a new vm I had a bunch of broken...",
      "date_published": "2021-12-25T20:24:48Z",
      "date_modified": "2021-12-25T20:24:48Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dotfiles",
        "ansible"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/ansible_install_if_not_callable/",
      "url": "https://go.waylonwalker.com/ansible_install_if_not_callable/",
      "title": "Installing packages with ansible only if they do not exist",
      "content_html": "\u003cp\u003ePart of my neovim setup requires having the \u003ccode\u003eblack\u003c/code\u003e python formatter\ninstalled and callable.  I install it with \u003ccode\u003epipx\u003c/code\u003e so that I don’t have\nto manage a \u003ca href=\"/virtual-environment/\" class=\"glossary-term\" title=\"Virtual Environment is term for a sandboxed environment commonly associated with the python programming language. If you are installing any sort of python...\"\u003evirtual environment\u003c/a\u003e and have it available everywhere.  So\nfar this works well for me, if there are ever breaking changes I may\nneed to rethink this.\u003c/p\u003e\n\u003cp\u003ere-installing a bunch of things that are already installed can be quite\na waste and really add up to my ansible run time, so for most of my\nansible tasks that install a command like this I have been following\nthis pattern.\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003echeck if the command is installed with \u003ccode\u003ecommand -v \u0026lt;command\u0026gt;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eregister that step\u003c/li\u003e\n\u003cli\u003eignore if that step fails\u003c/li\u003e\n\u003cli\u003eadd a \u003ccode\u003ewhen: \u0026lt;xxx\u0026gt;_exists is failed\u003c/code\u003e condition to the step that\ninstalls that command.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e- \u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003echeck is black installed\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003eshell\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ecommand -v black\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003eregister\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eblack_exists\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003eignore_errors\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"kc\"\u003eyes\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e- \u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003einstall black\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003ewhen\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eblack_exists is failed\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003eshell\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003epipx install black\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003ca href=\"https://www.youtube.com/watch?v=MCFg6-W5SBI\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://www.youtube.com/watch?v=MCFg6-W5SBI\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eI made a video based on this post, check it out if its your thing\u003c/p\u003e\n\u003c/blockquote\u003e\n",
      "content_text": "\nPart of my neovim setup requires having the `black` python formatter\ninstalled and callable.  I install it with `pipx` so that I don't have\nto manage a virtual environment and have it available everywhere.  So\nfar this works well for me, if there are ever breaking changes I may\nneed to rethink this.\n\nre-installing a bunch of things that are already installed can be quite\na waste and really add up to my ansible run time, so for most of my\nansible tasks that install a command like this I have been following\nthis pattern.\n\n1. check if the command is installed with `command -v \u003ccommand\u003e`\n2. register that step\n3. ignore if that step fails\n4. add a `when: \u003cxxx\u003e_exists is failed` condition to the step that\n   installs that command.\n\n``` yaml\n- name: check is black installed\n  shell: command -v black\n  register: black_exists\n  ignore_errors: yes\n\n- name: install black\n  when: black_exists is failed\n  shell: pipx install black\n```\n\nhttps://www.youtube.com/watch?v=MCFg6-W5SBI\n\n\u003e I made a video based on this post, check it out if its your thing\n",
      "summary": "Part of my neovim setup requires having the python formatter installed and callable. I install it with so that I don't have to manage a virtual environment...",
      "date_published": "2021-12-24T20:24:48Z",
      "date_modified": "2021-12-24T20:24:48Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "ansible"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/dunder_rich/",
      "url": "https://go.waylonwalker.com/dunder_rich/",
      "title": "Adding __rich__ methods to python classes",
      "content_html": "\u003cp\u003eAdding a \u003ccode\u003e__render__\u003c/code\u003e method that returns a rich renderable to any python class\nmakes it display this output if printed with rich.  This also includes being\nnested inside a rich Layout.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003erich\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003erich.panel\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003ePanel\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eclass\u003c/span\u003e \u003cspan class=\"nc\"\u003eShowMe\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003e__rich__\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"n\"\u003ePanel\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;hello\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eborder_style\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;gold1\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"vm\"\u003e__name__\u003c/span\u003e \u003cspan class=\"o\"\u003e==\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;__main__\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003erich\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eShowMe\u003c/span\u003e\u003cspan class=\"p\"\u003e())\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cfigure\u003e\n\u003ca href=\"https://images.waylonwalker.com/dunder_rich_showme.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://images.waylonwalker.com/dunder_rich_showme.png\" alt=\"results of printing ShowMe with rich\"/ data-glightbox=\"description: results of printing ShowMe with rich\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\nAdding a `__render__` method that returns a rich renderable to any python class\nmakes it display this output if printed with rich.  This also includes being\nnested inside a rich Layout.\n\n\n``` python\nimport rich\nfrom rich.panel import Panel\n\n\nclass ShowMe:\n    def __rich__(self):\n        return Panel(\"hello\", border_style=\"gold1\")\n\n\nif __name__ == \"__main__\":\n    rich.print(ShowMe())\n```\n\n![results of printing ShowMe with rich](https://images.waylonwalker.com/dunder_rich_showme.png)\n",
      "summary": "Adding a method that returns a rich renderable to any python class makes it display this output if printed with rich. This also includes being nested inside...",
      "date_published": "2021-12-23T19:34:18Z",
      "date_modified": "2021-12-23T19:34:18Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "rich"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/fugitive-commit-verbose/",
      "url": "https://go.waylonwalker.com/fugitive-commit-verbose/",
      "title": "fugitive verbose commit",
      "content_html": "\u003cp\u003eFugitive comes with a pretty sick way to commit files and see the diff at the\nsame time with verbose commit.  Opening the fugitive menu with \u003ccode\u003e:G\u003c/code\u003e brings up\nyour \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e status, you can stage files with \u003ccode\u003es\u003c/code\u003e, unstage them with \u003ccode\u003eu\u003c/code\u003e, toggle\nthem with \u003ccode\u003e-\u003c/code\u003e, and toggle their diff with \u003ccode\u003e\u0026gt;\u003c/code\u003e.  Once you have staged your files\nfor commit, you can commit with \u003ccode\u003ecc\u003c/code\u003e, but today I found that you can commit\nverbose with \u003ccode\u003ecvc\u003c/code\u003e.  This brings up not only a commit widow with your git\nstatus shown, but the diff that you are about to commit.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://images.waylonwalker.com/fugitive-verbose-commit.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://images.waylonwalker.com/fugitive-verbose-commit.png\" alt=\"fugitive verbose commit example\"/ data-glightbox=\"description: fugitive verbose commit example\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cblockquote\u003e\n\u003cp\u003eexample of a verbose commit in fugitive\u003c/p\u003e\n\u003c/blockquote\u003e\n",
      "content_text": "\nFugitive comes with a pretty sick way to commit files and see the diff at the\nsame time with verbose commit.  Opening the fugitive menu with `:G` brings up\nyour git status, you can stage files with `s`, unstage them with `u`, toggle\nthem with `-`, and toggle their diff with `\u003e`.  Once you have staged your files\nfor commit, you can commit with `cc`, but today I found that you can commit\nverbose with `cvc`.  This brings up not only a commit widow with your git\nstatus shown, but the diff that you are about to commit.\n\n![fugitive verbose commit example](https://images.waylonwalker.com/fugitive-verbose-commit.png)\n\n\u003e example of a verbose commit in fugitive\n",
      "summary": "Fugitive comes with a pretty sick way to commit files and see the diff at the same time with verbose commit. Opening the fugitive menu with brings up your...",
      "date_published": "2021-12-22T19:34:18Z",
      "date_modified": "2021-12-22T19:34:18Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "git",
        "vim"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/kedro-course/",
      "url": "https://go.waylonwalker.com/kedro-course/",
      "title": "Kedro Course",
      "content_html": "\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003efind all nodes with raw in the name\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003euse parameters\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003emake and use a logger\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003euse find-kedro in spaceflights\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eslide in a new node\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003evizualize your pipeline\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efind slow nodes\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003emove the configuration directory\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ebuild kedro into docker and run it\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003epyinstrument\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003epdb\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003emake a new cli command\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003emake a hook\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eload catalog entries\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eslice a pipeline\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eby tag\u003c/li\u003e\n\u003cli\u003eby name\u003c/li\u003e\n\u003cli\u003efrom inputs\u003c/li\u003e\n\u003cli\u003eto outputs\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\n- find all nodes with raw in the name\n- use parameters\n- make and use a logger\n- use find-kedro in spaceflights\n- slide in a new node\n- vizualize your pipeline\n- find slow nodes\n- move the configuration directory\n- build kedro into docker and run it\n\n- pyinstrument\n- pdb\n- make a new cli command\n- make a hook\n- load catalog entries\n- slice a pipeline\n  - by tag\n  - by name\n  - from inputs\n  - to outputs\n",
      "summary": "find all nodes with raw in the name - use parameters - make and use a logger - use find-kedro in spaceflights - slide in a new node - vizualize your pipeline...",
      "date_published": "2021-12-04T11:34:47Z",
      "date_modified": "2021-12-04T11:34:47Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/uses/",
      "url": "https://go.waylonwalker.com/uses/",
      "title": "Uses",
      "content_html": "\u003cp\u003eThis is a listing of all the things that I use on a daily basis to build data\npipelines, lead my team, and build this website.\u003c/p\u003e\n\u003ch2 id=\"older-editions\"\u003eolder editions \u003ca href=\"#older-editions\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e[[ uses-2021 ]]\u003c/p\u003e\n\u003ch2 id=\"installation\"\u003eInstallation \u003ca href=\"#installation\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eEverything installed on my machines is done through ansible-playbooks.  It’s\nbeen a long transformation to get here, but its so satisfying to boot a brand\nnew system, run a single command a have every single thing cofigured exactly to\nmy liking.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# GET is available by default on Ubuntu\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGET waylonwalker.com/bootstrap \u003cspan class=\"p\"\u003e|\u003c/span\u003e bash\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# For debian based systems without GET by default\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo apt install curl\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecurl -F https://waylonwalker.com/bootstrap \u003cspan class=\"p\"\u003e|\u003c/span\u003e bash\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"os\"\u003eOS \u003ca href=\"#os\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI run Ubuntu, it works well for me without too much fuss.  For me the\ndistribution does not really matter too much, I’m more interested in what’s\ninside.\u003c/p\u003e\n\u003ch2 id=\"window-manager\"\u003eWindow Manager \u003ca href=\"#window-manager\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI use awesome wm.  Awesome is a tiling window manager that alows me to navigate\nthrough 9 workspaces (technically called tags in awesomewm). I can script out\ncertain applications to open in a certain tag, move it to different tags, and\njoin tags super easy.  I really dont see myself going back to a floating window\nmanager where you have to place all your windows with the mouse by hand.  This\nis probably one of the biggest selling points for me to move to a Linux\ndesktop.\u003c/p\u003e\n\u003ch2 id=\"terminal\"\u003eTerminal \u003ca href=\"#terminal\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch3 id=\"gnome-terminal\"\u003egnome-terminal \u003ca href=\"#gnome-terminal\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eFor the longest time I just used\n\u003ca href=\"https://help.gnome.org/users/gnome-terminal/stable/\"\u003egnome-terminal\u003c/a\u003e.  It\nworks, for the most part it gets out of the way and lets me do what I want.  I\njust want a terminal that runs tmux properly, runs without titltbars or\nscrollbars, and lets me theme it without much effort.\u003c/p\u003e\n\u003ch3 id=\"kitty\"\u003ekitty \u003ca href=\"#kitty\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://sw.kovidgoyal.net/kitty/\"\u003eKitty\u003c/a\u003e is my main terminal, these days, it’s\nnice, its easy to configure how I want it, but most of its fancier features do\nnot work inside of tmux.  It does render incredibly fast, If I accidently cat\nout a massive file, it typically just handles it, compared to other terminals\nthat will be printing for 30s or so.\u003c/p\u003e\n\u003ch3 id=\"windows-terminal\"\u003eWindows Terminal \u003ca href=\"#windows-terminal\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eWhen I am on a windows terminal I use the \u003cem\u003enew\u003c/em\u003e\n\u003ca href=\"https://github.com/microsoft/terminal\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eTerminal\u003c/a\u003e.  It’s a massive improvement\nover any other terminal that I have ever tired on windows.  Text looks good,\nthe built in themese look good, I use the One-Half-Dark Theme, and the built in\nCascadia Code font.  Also things like system clipboards, copy, and paste just\nseem to work better, and integrate well with wsl.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://images.waylonwalker.com/Windows-Terminal-0522.webp\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://images.waylonwalker.com/Windows-Terminal-0522.webp\" alt=\"My Windows Terminal from may 2022\"/ data-glightbox=\"description: My Windows Terminal from may 2022\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"shell\"\u003eShell \u003ca href=\"#shell\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe shell is the interpreter that interprets the commands that you send to it\nfrom the command line, unlike the terminal that displays the text.\u003c/p\u003e\n\u003ch3 id=\"zsh\"\u003ezsh \u003ca href=\"#zsh\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eI use \u003ca href=\"https://www.zsh.org/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.zsh.org.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.zsh.org.png\" class=\"has-avatar  has-avatar-before\"\u003ezsh\u003c/a\u003e as my shell of choice.  I don’t run\noh-my-zsh, I just need a few plugins for things like\n\u003ca href=\"https://github.com/zsh-users/zsh-autosuggestions\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eautosuggestions\u003c/a\u003e\n\u003ca href=\"https://github.com/zsh-users/zsh-syntax-highlighting\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003esyntax-highlighting\u003c/a\u003e\n\u003ca href=\"https://github.com/zsh-users/zsh-history-substring-search\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehistory-substring-search\u003c/a\u003e.\u003c/p\u003e\n\u003ch2 id=\"tmux\"\u003eTmux \u003ca href=\"#tmux\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"text-editor\"\u003eText Editor \u003ca href=\"#text-editor\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"presentation--slides\"\u003ePresentation / Slides \u003ca href=\"#presentation--slides\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"video-recording--streaming\"\u003eVideo Recording / Streaming \u003ca href=\"#video-recording--streaming\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"video-editing\"\u003eVideo Editing \u003ca href=\"#video-editing\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"pager\"\u003epager \u003ca href=\"#pager\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"image-editor\"\u003eImage Editor \u003ca href=\"#image-editor\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"virtual-environments\"\u003eVirtual Environments \u003ca href=\"#virtual-environments\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"node\"\u003enode \u003ca href=\"#node\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003chr/\u003e\n\u003ch2 id=\"desk\"\u003eDesk \u003ca href=\"#desk\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"monitor\"\u003eMonitor \u003ca href=\"#monitor\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"keyboard\"\u003eKeyboard \u003ca href=\"#keyboard\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"desktop-pc\"\u003eDesktop PC \u003ca href=\"#desktop-pc\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"keyboard-1\"\u003eKeyboard \u003ca href=\"#keyboard-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"microphone\"\u003eMicrophone \u003ca href=\"#microphone\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"audio-interface\"\u003eAudio Interface \u003ca href=\"#audio-interface\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"headphones\"\u003eHeadphones \u003ca href=\"#headphones\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"chair\"\u003eChair \u003ca href=\"#chair\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n",
      "content_text": "\nThis is a listing of all the things that I use on a daily basis to build data\npipelines, lead my team, and build this website.\n\n## older editions\n\n[[ uses-2021 ]]\n\n## Installation\n\nEverything installed on my machines is done through ansible-playbooks.  It's\nbeen a long transformation to get here, but its so satisfying to boot a brand\nnew system, run a single command a have every single thing cofigured exactly to\nmy liking.\n\n\n``` bash\n# GET is available by default on Ubuntu\nGET waylonwalker.com/bootstrap | bash\n\n# For debian based systems without GET by default\nsudo apt install curl\ncurl -F https://waylonwalker.com/bootstrap | bash\n```\n\n## OS\n\nI run Ubuntu, it works well for me without too much fuss.  For me the\ndistribution does not really matter too much, I'm more interested in what's\ninside.\n\n## Window Manager\n\nI use awesome wm.  Awesome is a tiling window manager that alows me to navigate\nthrough 9 workspaces (technically called tags in awesomewm). I can script out\ncertain applications to open in a certain tag, move it to different tags, and\njoin tags super easy.  I really dont see myself going back to a floating window\nmanager where you have to place all your windows with the mouse by hand.  This\nis probably one of the biggest selling points for me to move to a Linux\ndesktop.\n\n## Terminal\n\n### gnome-terminal\n\nFor the longest time I just used\n[gnome-terminal](https://help.gnome.org/users/gnome-terminal/stable/).  It\nworks, for the most part it gets out of the way and lets me do what I want.  I\njust want a terminal that runs tmux properly, runs without titltbars or\nscrollbars, and lets me theme it without much effort.\n\n### kitty\n\n[Kitty](https://sw.kovidgoyal.net/kitty/) is my main terminal, these days, it's\nnice, its easy to configure how I want it, but most of its fancier features do\nnot work inside of tmux.  It does render incredibly fast, If I accidently cat\nout a massive file, it typically just handles it, compared to other terminals\nthat will be printing for 30s or so.\n\n### Windows Terminal\n\nWhen I am on a windows terminal I use the _new_\n[Terminal](https://github.com/microsoft/terminal).  It's a massive improvement\nover any other terminal that I have ever tired on windows.  Text looks good,\nthe built in themese look good, I use the One-Half-Dark Theme, and the built in\nCascadia Code font.  Also things like system clipboards, copy, and paste just\nseem to work better, and integrate well with wsl.\n\n![My Windows Terminal from may 2022](https://images.waylonwalker.com/Windows-Terminal-0522.webp)\n\n## Shell\n\nThe shell is the interpreter that interprets the commands that you send to it\nfrom the command line, unlike the terminal that displays the text.\n\n### zsh\n\nI use [zsh](https://www.zsh.org/) as my shell of choice.  I don't run\noh-my-zsh, I just need a few plugins for things like\n[autosuggestions](https://github.com/zsh-users/zsh-autosuggestions)\n[syntax-highlighting](https://github.com/zsh-users/zsh-syntax-highlighting)\n[history-substring-search](https://github.com/zsh-users/zsh-history-substring-search).\n\n\n## Tmux\n\n## Text Editor\n\n## Presentation / Slides\n\n## Video Recording / Streaming\n\n## Video Editing\n\n## pager\n\n## Image Editor\n\n## Virtual Environments\n\n## node\n\n\n---\n\n## Desk\n\n## Monitor\n\n## Keyboard\n\n## Desktop PC\n\n## Keyboard\n\n## Microphone\n\n## Audio Interface\n\n## Headphones\n\n## Chair\n",
      "summary": "This is a listing of all the things that I use on a daily basis to build data pipelines, lead my team, and build this website.",
      "date_published": "2021-11-20T10:38:00Z",
      "date_modified": "2021-11-20T10:38:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "meta",
        "tmux"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/update-alternatives/",
      "url": "https://go.waylonwalker.com/update-alternatives/",
      "title": "Update Alternatives in Linux",
      "content_html": "\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eupdate-alternatives --query python\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eupdate-alternatives: error: no alternatives \u003cspan class=\"k\"\u003efor\u003c/span\u003e python\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo update-alternatives --install /usr/local/bin/python python \u003cspan class=\"sb\"\u003e`\u003c/span\u003ewhich python3.8\u003cspan class=\"sb\"\u003e`\u003c/span\u003e \u003cspan class=\"m\"\u003e2\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# update-alternatives: using /usr/bin/python3.8 to provide /usr/local/bin/python (python) in auto mode\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo update-alternatives --install /usr/local/bin/python python \u003cspan class=\"sb\"\u003e`\u003c/span\u003ewhich python2.7\u003cspan class=\"sb\"\u003e`\u003c/span\u003e \u003cspan class=\"m\"\u003e5\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# update-alternatives: using /usr/bin/python2.7 to provide /usr/local/bin/python (python) in auto mode\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eupdate-alternatives --query python\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Name: python\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Link: /usr/local/bin/python\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Status: auto\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Best: /usr/bin/python2.7\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Value: /usr/bin/python2.7\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Alternative: /usr/bin/python2.7\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Priority: 5\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Alternative: /usr/bin/python3.8\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Priority: 2\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo update-alternatives --install /usr/local/bin/python python \u003cspan class=\"sb\"\u003e`\u003c/span\u003ewhich python3.8\u003cspan class=\"sb\"\u003e`\u003c/span\u003e \u003cspan class=\"m\"\u003e20\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# update-alternatives: using /usr/bin/python3.8 to provide /usr/local/bin/python (python) in auto mode\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n```bash\nupdate-alternatives --query python\n```\n\n```bash\nupdate-alternatives: error: no alternatives for python\n```\n\n```bash\nsudo update-alternatives --install /usr/local/bin/python python `which python3.8` 2\n# update-alternatives: using /usr/bin/python3.8 to provide /usr/local/bin/python (python) in auto mode\n\nsudo update-alternatives --install /usr/local/bin/python python `which python2.7` 5\n# update-alternatives: using /usr/bin/python2.7 to provide /usr/local/bin/python (python) in auto mode\n\nupdate-alternatives --query python\n# Name: python\n# Link: /usr/local/bin/python\n# Status: auto\n# Best: /usr/bin/python2.7\n# Value: /usr/bin/python2.7\n#\n# Alternative: /usr/bin/python2.7\n# Priority: 5\n#\n# Alternative: /usr/bin/python3.8\n# Priority: 2\n\nsudo update-alternatives --install /usr/local/bin/python python `which python3.8` 20\n# update-alternatives: using /usr/bin/python3.8 to provide /usr/local/bin/python (python) in auto mode\n```\n",
      "date_published": "2021-11-20T10:38:00Z",
      "date_modified": "2021-11-20T10:38:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux",
        "bash"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/nix-python-interpreter/",
      "url": "https://go.waylonwalker.com/nix-python-interpreter/",
      "title": "Using Nix to manage my Python Interpreter",
      "content_html": "\u003cp\u003eI recently started playing with nix.\u003c/p\u003e\n\u003ch2 id=\"goals\"\u003egoals \u003ca href=\"#goals\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eautomatically select correct python version per project\u003c/li\u003e\n\u003cli\u003eactivating one doesn’t bleed into the other\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"installing-nix\"\u003eInstalling nix \u003ca href=\"#installing-nix\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecurl -L https://nixos.org/nix/install \u003cspan class=\"p\"\u003e|\u003c/span\u003e sh\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"controlling-nix-env\"\u003econtrolling nix-env \u003ca href=\"#controlling-nix-env\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003enix-env -iA nixpkgs.python310\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003enix-env -iA nixpkgs.python39\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003enix-env -iA nixpkgs.python38\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003enix-env -iA nixpkgs.python37\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"searching-for-packages\"\u003esearching for packages \u003ca href=\"#searching-for-packages\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://search.nixos.org/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/search.nixos.org.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/search.nixos.org.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://search.nixos.org/\u003c/a\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003enix-env -qaP .\\*python.\\*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003enix search nixpkgs python\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"shell\"\u003eshell \u003ca href=\"#shell\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre\u003e\u003ccode\u003enix-shell -p python39\n\u003c/code\u003e\u003c/pre\u003e\n",
      "content_text": "\nI recently started playing with nix.\n\n## goals\n\n* automatically select correct python version per project\n* activating one doesn't bleed into the other\n\n\n\n## Installing nix\n\n``` bash\ncurl -L https://nixos.org/nix/install | sh\n```\n\n## controlling nix-env\n\n``` bash\nnix-env -iA nixpkgs.python310\nnix-env -iA nixpkgs.python39\nnix-env -iA nixpkgs.python38\nnix-env -iA nixpkgs.python37\n```\n\n## searching for packages\n\nhttps://search.nixos.org/\n\n```\nnix-env -qaP .\\*python.\\*\n```\n\n``` bash\nnix search nixpkgs python\n```\n\n## shell\n\n```\nnix-shell -p python39\n```\n",
      "summary": "I recently started playing with nix.",
      "date_published": "2021-11-14T00:00:00Z",
      "date_modified": "2021-11-14T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/how-i-deploy-2022/",
      "url": "https://go.waylonwalker.com/how-i-deploy-2022/",
      "title": "How I deploy my blog in 2022",
      "content_html": "\u003ch2 id=\"how-i-continuously-deliver-content-to-my-blog-with-markdown-github-python-and-netlify\"\u003eHow I Continuously Deliver Content to my Blog with Markdown, GitHub, Python, and netlify \u003ca href=\"#how-i-continuously-deliver-content-to-my-blog-with-markdown-github-python-and-netlify\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eContent at the speed of thought.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ewell, as fast as I can type\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"me\"\u003eMe \u003ca href=\"#me\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMechanical Engineering\u003c/li\u003e\n\u003cli\u003eData Engineering\u003c/li\u003e\n\u003cli\u003eTerminal Junkie\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"ask-questions-in-slido\"\u003eAsk Questions in slido \u003ca href=\"#ask-questions-in-slido\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003ePlease ask questions in slido # 983 911 | App Dev 1 Track\u003c/p\u003e\n\u003ch2 id=\"slido-poll\"\u003eSlido Poll \u003ca href=\"#slido-poll\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eDo \u003cstrong\u003eyou\u003c/strong\u003e have a personal blog / notes / website?\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cul\u003e\n\u003cli\u003eYes - Static, built with python\u003c/li\u003e\n\u003cli\u003eYes - I manage a server running python\u003c/li\u003e\n\u003cli\u003eYes - Not python\u003c/li\u003e\n\u003cli\u003eNo\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003cp\u003ewe will circle back around in a few minutes\u003c/p\u003e\n\u003ch2 id=\"ill-give-away-my-answer\"\u003eI’ll give away my answer \u003ca href=\"#ill-give-away-my-answer\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eYes - Static, built with python\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"slack-channel-track-1-appdev\"\u003eSlack Channel: #track-1-appdev \u003ca href=\"#slack-channel-track-1-appdev\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIf you are in the slack give me a 🔥🔥🔥🔥🔥🔥🔥\u003c/p\u003e\n\u003cp\u003eLet’s light up slack 🔥🔥🔥🔥🔥🔥🔥\u003c/p\u003e\n\u003ch2 id=\"4-parts\"\u003e4 parts \u003ca href=\"#4-parts\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWhy\u003c/li\u003e\n\u003cli\u003eMy workflow\u003c/li\u003e\n\u003cli\u003eUnder the hood\u003c/li\u003e\n\u003cli\u003eOpen Source\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"part-1-why\"\u003ePart 1 WHY \u003ca href=\"#part-1-why\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"2016\"\u003e2016 \u003ca href=\"#2016\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"i-want-to-own-my-content\"\u003eI want to own my content \u003ca href=\"#i-want-to-own-my-content\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eTwitter is a great networking tool, but it’s rare to see anything more\nthan a few hours old.\u003c/p\u003e\n\u003ch2 id=\"i-want-to-own-my-content-1\"\u003eI want to own my content \u003ca href=\"#i-want-to-own-my-content-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNo one can take my domain or shut down the platform that my content is on.\u003c/p\u003e\n\u003ch2 id=\"some-of-my-stats\"\u003eSome of my Stats \u003ca href=\"#some-of-my-stats\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e48 Google top 10 ranking pages\u003c/li\u003e\n\u003cli\u003e6500 monthly clicks on google\u003c/li\u003e\n\u003cli\u003e12k page monthly views\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003efrom ahrefs and google search console\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"learn-in-publichttpswwwswyxiolearn-in-public\"\u003e\u003ca href=\"https://www.swyx.io/learn-in-public/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.swyx.io.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.swyx.io.png\" class=\"has-avatar  has-avatar-before\"\u003eLearn In Public\u003c/a\u003e \u003ca href=\"#learn-in-publichttpswwwswyxiolearn-in-public\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI’m creating learning exhaust.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eInspired by \u003ca href=\"https://www.swyx.io/learn-in-public/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.swyx.io.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.swyx.io.png\" class=\"has-avatar  has-avatar-before\"\u003eswyx\u003c/a\u003e\n\u003ca href=\"https://www.swyx.io/learn-in-public/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.swyx.io.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.swyx.io.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://www.swyx.io/learn-in-public/\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"from-swyx\"\u003efrom swyx \u003ca href=\"#from-swyx\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003eWhatever your thing is, make the thing you wish you had found when you\nwere learning. Don’t judge your results by “claps” or retweets or\nstars or upvotes - just talk to yourself from 3 months ago. I keep an\nalmost-daily dev blog written for no one else but me.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"focus-on-content\"\u003eFocus on content \u003ca href=\"#focus-on-content\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI could not do any of this if I was focused on Building rather than\nwriting.\u003c/p\u003e\n\u003ch2 id=\"focus-on-content-1\"\u003eFocus on content \u003ca href=\"#focus-on-content-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNo one needs elastic search navigate your first 50 posts.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ewhen you are starting\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"focus-on-content-2\"\u003eFocus on content \u003ca href=\"#focus-on-content-2\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNo one is going to make comments.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ewhen you are starting\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"write-for-yourself\"\u003eWrite for yourself \u003ca href=\"#write-for-yourself\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eYou are your biggest audience out of the gate.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eIf you continue writing others like you will find you\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"dont-worry-about-the-trolls\"\u003eDon’t worry about the Trolls \u003ca href=\"#dont-worry-about-the-trolls\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNo one is going to take your python keys away.\u003c/p\u003e\n\u003ch2 id=\"slido-check\"\u003eSlido Check \u003ca href=\"#slido-check\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003ePlease ask questions in slack/slido\u003c/p\u003e\n\u003ch2 id=\"part-2-workflow-and-tools\"\u003ePart 2 Workflow and tools \u003ca href=\"#part-2-workflow-and-tools\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003eTo the meat of the talk\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003col\u003e\n\u003cli\u003eLet’s start by making a post\u003c/li\u003e\n\u003cli\u003ethen show how it works under the hood\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"if-you-take-away-anything\"\u003eIf you take away anything \u003ca href=\"#if-you-take-away-anything\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eFocus on content that you want to consume.\u003c/p\u003e\n\u003ch2 id=\"my-flow\"\u003eMy Flow \u003ca href=\"#my-flow\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   ┌───────┐\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   │  TIL  │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   └─┬─────┘\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e     │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e     │  ┌─────────────┐\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e     │  │             │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e     └─►│    Posts    │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        │             │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        └─┬───────────┘\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          │   ┌────────────────┐\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          └──►│    YouTube     │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          │   └────────────────┘\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          │   ┌────────────────┐\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          └──►│    Conference  │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e              │    Talks       │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e              └────────────────┘\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"lets-start-with-a-til\"\u003eLet’s start with a Til \u003ca href=\"#lets-start-with-a-til\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003ethe process\u003c/em\u003e\u003c/p\u003e\n\u003ch3 id=\"shoutout-to-jbranchahttpstwittercomjbrancha\"\u003eshoutout to @\u003ca href=\"https://twitter.com/jbrancha\"\u003ejbrancha\u003c/a\u003e \u003ca href=\"#shoutout-to-jbranchahttpstwittercomjbrancha\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eCheck out his amazing \u003ca href=\"https://github.com/jbranchaud/til\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003etil repo\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eIf you ask google very many questions about \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e, you will end up\nfinding him on the top\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"copier\"\u003eCopier \u003ca href=\"#copier\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI use \u003ca href=\"https://copier.readthedocs.io/en/stable/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/copier.readthedocs.io.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/copier.readthedocs.io.png\" class=\"has-avatar  has-avatar-before\"\u003ecopier\u003c/a\u003e for single file\ntemplates.\u003c/p\u003e\n\u003ch2 id=\"copier-give-me-a-new-page\"\u003eCopier give me a new page \u003ca href=\"#copier-give-me-a-new-page\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eHow I Present from the terminal with lookatme\nlookatme-slides\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecopier copy ~/.copier-templates/\u003cspan class=\"sb\"\u003e`\u003c/span\u003els ~/.copier-templates \u003cspan class=\"p\"\u003e|\u003c/span\u003e\u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"se\"\u003e\u003c/span\u003e    fzf --header \u003cspan class=\"k\"\u003e$(\u003c/span\u003e\u003cspan class=\"nb\"\u003epwd\u003c/span\u003e\u003cspan class=\"k\"\u003e)\u003c/span\u003e --preview\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;tree ~/.copier-templates/{} |\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e    lolcat\u0026#39;\u003c/span\u003e\u003cspan class=\"sb\"\u003e`\u003c/span\u003e . \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"nvim-open-my-file\"\u003envim open my file \u003ca href=\"#nvim-open-my-file\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e!TIP Once it starts getting uncomfortable to find posts, its nice to have\ngood shortcuts to get around.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eI have about 700 files on my blog to sift through\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"nvim-open-my-file-1\"\u003envim open my file \u003ca href=\"#nvim-open-my-file-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emarkata list --map path --filter \u003cspan class=\"s1\"\u003e\u0026#39;templateKey==\u0026#34;til\u0026#34;\u0026#39;\u003c/span\u003e --sort date --reverse\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003ennoremap\u003c/span\u003e \u003cspan class=\"nx\"\u003egeil\u003c/span\u003e \u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nx\"\u003ecmd\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"nx\"\u003eTelescope\u003c/span\u003e \u003cspan class=\"nx\"\u003efind_files\u003c/span\u003e \u003cspan class=\"nx\"\u003efind_command\u003c/span\u003e\u003cspan class=\"p\"\u003e=\u003c/span\u003e\u003cspan class=\"nx\"\u003emarkata\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"nx\"\u003elist\u003c/span\u003e\u003cspan class=\"p\"\u003e,--\u003c/span\u003e\u003cspan class=\"k\"\u003emap\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"nx\"\u003epath\u003c/span\u003e\u003cspan class=\"p\"\u003e,--\u003c/span\u003e\u003cspan class=\"nx\"\u003efilter\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"nx\"\u003etemplateKey\u003c/span\u003e\u003cspan class=\"p\"\u003e==\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;til\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,--\u003c/span\u003e\u003cspan class=\"nx\"\u003esort\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"nx\"\u003edate\u003c/span\u003e\u003cspan class=\"p\"\u003e,--\u003c/span\u003e\u003cspan class=\"nx\"\u003ereverse\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nx\"\u003ecr\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"paste-in-a-snippet\"\u003ePaste in a snippet \u003ca href=\"#paste-in-a-snippet\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eOften times I am working away on some sort of project, and I just need\nto save a snippet for a later post.\u003c/p\u003e\n\u003ch2 id=\"write-the-content\"\u003eWrite the content \u003ca href=\"#write-the-content\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLater I come back and fill in the content.\u003c/p\u003e\n\u003ch2 id=\"git-push\"\u003egit push \u003ca href=\"#git-push\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI have a vim hotkey \u003ccode\u003egic\u003c/code\u003e to commit my current file, and \u003ccode\u003egpp\u003c/code\u003e to push\nit.\u003c/p\u003e\n\u003ch2 id=\"its-nearly-live\"\u003eIt’s nearly live \u003ca href=\"#its-nearly-live\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIt will be live within a few minutes.\u003c/p\u003e\n\u003ch2 id=\"cross-post\"\u003eCross Post \u003ca href=\"#cross-post\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI’ve tried to cross post to more, but it really gets overwhelming.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eTwitter\u003c/li\u003e\n\u003cli\u003edev.to\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"cross-post-1\"\u003eCross Post \u003ca href=\"#cross-post-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI have a plugin to convert my markdown to a more dev.to friendly format.\u003c/p\u003e\n\u003ch2 id=\"slido-check-1\"\u003eSlido Check \u003ca href=\"#slido-check-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLet’g grab a question from slack/slido\u003c/p\u003e\n\u003ch2 id=\"part-3-how-its-deployed\"\u003ePart 3 How it’s deployed \u003ca href=\"#part-3-how-its-deployed\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIn March of 2021 I made the big switch from a javascript based framework\nto my own ssg.\u003c/p\u003e\n\u003ch2 id=\"i-thought-it-would-be-easy\"\u003eI thought it would be easy \u003ca href=\"#i-thought-it-would-be-easy\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThere are a bunch of open source libraries that do all the things I need\nan ssg to do.\u003c/p\u003e\n\u003ch2 id=\"moving-to-python\"\u003eMoving to python \u003ca href=\"#moving-to-python\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eOne of the biggest selling points to moving back to python was that I\nuse it every day and know the ecosystem much better.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://ipython.org/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/ipython.org.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/ipython.org.png\" class=\"has-avatar  has-avatar-before\"\u003eipython\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joerick/pyinstrument\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003epyinstrument\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebreakpoint\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"part-3-how-its-deployed-1\"\u003ePart 3 How it’s deployed \u003ca href=\"#part-3-how-its-deployed-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eword of caution\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eThis part might be a lot of code coming quick.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eShow how it comes together\u003c/li\u003e\n\u003cli\u003eLink to the slides\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"everything-is-markdown\"\u003eEverything is markdown \u003ca href=\"#everything-is-markdown\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epymdown\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eextensions\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epython\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003efrontmatter\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"frontmatter\"\u003efrontmatter \u003ca href=\"#frontmatter\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAll the metadata is defined in yaml frontmatter and read in with the\n\u003ca href=\"https://github.com/eyeseast/python-frontmatter\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003epython-frontmatter\u003c/a\u003e\nlibrary.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nn\"\u003e---\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003etemplateKey\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eblog-post\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003etags\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;webdev\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;meta\u0026#39;\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003etitle\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eHow I deploy my blog in 2022\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003edate\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"ld\"\u003e2021-10-29\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003epublished\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"kc\"\u003efalse\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nn\"\u003e---\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"setting-up-extensions\"\u003esetting up extensions \u003ca href=\"#setting-up-extensions\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003emarkata supports \u003ca href=\"https://facelessuser.github.io/pymdown-extensions/\"\u003epymdown-extensions\u003c/a\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eDEFAULT_MD_EXTENSIONS\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;markdown.extensions.toc\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;markdown.extensions.admonition\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;markdown.extensions.tables\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;markdown.extensions.md_in_html\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;pymdownx.magiclink\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;pymdownx.betterem\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;pymdownx.tilde\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;pymdownx.emoji\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;pymdownx.tasklist\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;pymdownx.superfences\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;pymdownx.highlight\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;pymdownx.inlinehilite\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;pymdownx.keys\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;pymdownx.saneheaders\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;codehilite\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"setting-the-markdown-object\"\u003esetting the markdown object \u003ca href=\"#setting-the-markdown-object\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003emarkdown_extensions\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e*\u003c/span\u003e\u003cspan class=\"n\"\u003eDEFAULT_MD_EXTENSIONS\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e*\u003c/span\u003e\u003cspan class=\"n\"\u003emarkdown_extensions\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003emd\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003emarkdown\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eMarkdown\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003eextensions\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003emarkdown_extensions\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"pluggyhttpspluggyreadthedocsioenstable\"\u003e\u003ca href=\"https://pluggy.readthedocs.io/en/stable/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/pluggy.readthedocs.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/pluggy.readthedocs.io.ico\" class=\"has-avatar  has-avatar-before\"\u003ePluggy\u003c/a\u003e \u003ca href=\"#pluggyhttpspluggyreadthedocsioenstable\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ecomes from pytest\u003c/li\u003e\n\u003cli\u003eallows users to easily modify the framework to their liking\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003eone of the biggest reasons I started down this path is that I wanted\nto build my own plugins all the way down framework.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"pluggyhttpspluggyreadthedocsioenstable-1\"\u003e\u003ca href=\"https://pluggy.readthedocs.io/en/stable/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/pluggy.readthedocs.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/pluggy.readthedocs.io.ico\" class=\"has-avatar  has-avatar-before\"\u003ePluggy\u003c/a\u003e \u003ca href=\"#pluggyhttpspluggyreadthedocsioenstable-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pluggy.readthedocs.io/en/stable/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/pluggy.readthedocs.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/pluggy.readthedocs.io.ico\" class=\"has-avatar  has-avatar-before\"\u003ePluggy\u003c/a\u003e is what I use to\nimplement my lifecycle.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003econfigure\u003c/li\u003e\n\u003cli\u003eglob\u003c/li\u003e\n\u003cli\u003eload\u003c/li\u003e\n\u003cli\u003epre_render\u003c/li\u003e\n\u003cli\u003erender\u003c/li\u003e\n\u003cli\u003epost_render\u003c/li\u003e\n\u003cli\u003esave\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"pluggy\"\u003ePluggy \u003ca href=\"#pluggy\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003ePluggy allows the framework to crate a \u003ccode\u003ehook_spec\u003c/code\u003e and plugin authors to\nimplement hooks with the \u003ccode\u003ehook_impl\u003c/code\u003e.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u0026#34;Define hook specs.\u0026#34;\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003epluggy\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# the framework\u0026#39;s definition\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ehook_spec\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epluggy\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eHookspecMarker\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;markata\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# the plugin author\u0026#39;s implementation\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ehook_impl\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epluggy\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eHookimplMarker\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;markata\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"creating-the-hookspec\"\u003ecreating the hookspec \u003ca href=\"#creating-the-hookspec\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIt’s an empty class.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eclass\u003c/span\u003e \u003cspan class=\"nc\"\u003eMarkataSpecs\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e    Namespace that defines all specifications for Load hooks.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e    glob -\u0026gt; load -\u0026gt; render -\u0026gt; save\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e    \u0026#34;\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nd\"\u003e@hook_spec\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003eglob\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003emarkata\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Markata\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u0026gt;\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u0026#34;Glob for files to load.\u0026#34;\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003epass\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nd\"\u003e@hook_spec\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003eload\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003emarkata\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Markata\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u0026gt;\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u0026#34;Load list of files.\u0026#34;\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003epass\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nd\"\u003e@hook_spec\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003epre_render\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003emarkata\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Markata\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u0026gt;\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u0026#34;Pre render content from loaded data.\u0026#34;\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003epass\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nd\"\u003e@hook_spec\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003erender\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003emarkata\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Markata\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u0026gt;\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u0026#34;Render content from loaded data.\u0026#34;\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003epass\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nd\"\u003e@hook_spec\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003epost_render\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003emarkata\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Markata\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u0026gt;\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u0026#34;Post render content from loaded data.\u0026#34;\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003epass\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nd\"\u003e@hook_spec\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003esave\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003emarkata\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Markata\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u0026gt;\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u0026#34;Save content from data.\u0026#34;\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003epass\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"creating-the-plugin-manager\"\u003ecreating the plugin manager \u003ca href=\"#creating-the-plugin-manager\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epm\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epluggy\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ePluginManager\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;markata\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epm\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eadd_hookspecs\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ehookspec\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eMarkataSpecs\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# register hooks\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003ehook\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003econfig\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ehooks\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003eplugin\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eimportlib\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eimport_module\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ehook\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003epm\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eregister\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eplugin\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"diskcache\"\u003eDiskcache \u003ca href=\"#diskcache\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/grantjenks/python-diskcache/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eDiskcache\u003c/a\u003e allows you\nto setup a persistent cache layer.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ecache\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eFanoutCache\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eMARKATA_CACHE_DIR\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003estatistics\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"kc\"\u003eTrue\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"make-a-key\"\u003emake a key \u003ca href=\"#make-a-key\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eTo set soemthing to cache we need a unique identifier.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003emake_hash\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"o\"\u003e*\u003c/span\u003e\u003cspan class=\"n\"\u003ekeys\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"nb\"\u003estr\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u0026gt;\u003c/span\u003e \u003cspan class=\"nb\"\u003estr\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003estr_keys\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nb\"\u003estr\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ekey\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003ekey\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003ekeys\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"n\"\u003ehashlib\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003emd5\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ejoin\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003estr_keys\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eencode\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;utf-8\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ehexdigest\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"make-a-key-1\"\u003emake a key \u003ca href=\"#make-a-key-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eFrom my plugins I cache anything that the function I run touches.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eplugin code\u003c/li\u003e\n\u003cli\u003earticle content\u003c/li\u003e\n\u003cli\u003earticle frontmatter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003epathlib\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003ePath\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ekey\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003emake_hash\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ePath\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"vm\"\u003e__file__\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eread_text\u003c/span\u003e\u003cspan class=\"p\"\u003e(),\u003c/span\u003e \u003cspan class=\"n\"\u003earticle\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003econtent\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003earticle\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003emetadata\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;title\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e])\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"accessing-the-cache\"\u003eaccessing the cache \u003ca href=\"#accessing-the-cache\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNow that we have a cache and a key we can ask the cache for values.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ehtml_from_cache\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003ecache\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eget\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ekey\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"if-its-not-yet-been-set\"\u003eif it’s not yet been set \u003ca href=\"#if-its-not-yet-been-set\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIf the content is not yet set or has expired, you will get \u003ccode\u003eNone\u003c/code\u003e back and need\nto create the value.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ehtml_from_cache\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003ecache\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eget\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ekey\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"n\"\u003ehtml_from_cache\u003c/span\u003e \u003cspan class=\"ow\"\u003eis\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003ehtml\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003emarkata\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003emd\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003econvert\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003earticle\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003econtent\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003ecache\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eset\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ekey\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ehtml\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eexpire\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"mi\"\u003e15\u003c/span\u003e \u003cspan class=\"o\"\u003e*\u003c/span\u003e \u003cspan class=\"mi\"\u003e24\u003c/span\u003e \u003cspan class=\"o\"\u003e*\u003c/span\u003e \u003cspan class=\"mi\"\u003e60\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eelse\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003ehtml\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003ehtml_from_cache\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"configuration\"\u003eConfiguration \u003ca href=\"#configuration\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ssato/python-anyconfig\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eanyconfig\u003c/a\u003e is a great tool\nto pull your config from generic config files.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003emarkta.toml\u003c/li\u003e\n\u003cli\u003emarkta.yaml\u003c/li\u003e\n\u003cli\u003emarkta.ini\u003c/li\u003e\n\u003cli\u003epyproject.toml\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"configuration-1\"\u003eConfiguration \u003ca href=\"#configuration-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAnyconfig needs a \u003ccode\u003epath\u003c/code\u003e, \u003ccode\u003eparser\u003c/code\u003e, and \u003ccode\u003ekeys\u003c/code\u003e.  The key is your tools\nprefix\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003eanyconfig\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eanyconfig\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eload\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003epath_specs\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ePath\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e \u003cspan class=\"o\"\u003e/\u003c/span\u003e \u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;markata.toml\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003eac_parser\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;toml\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003ekeys\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;markata\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e],\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"configuration-2\"\u003eConfiguration \u003ca href=\"#configuration-2\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eEach key in the config files used with \u003ccode\u003eanyconfig\u003c/code\u003e must be prefixed with\nthe tool’s name.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e# markata.toml\n[markata]\ndefault_cache_expire = 1209600\n\n[markata.auto_description.description]\nlen=160\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2 id=\"markata-was-born\"\u003eMarkata was born \u003ca href=\"#markata-was-born\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eA plugins all the way doen static site generator written in python.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e6 lifecycle methods\u003c/li\u003e\n\u003cli\u003e21 pre-defined plugins\u003c/li\u003e\n\u003cli\u003ecache store\u003c/li\u003e\n\u003cli\u003etoml based configuration\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"github-actions\"\u003eGitHub Actions \u003ca href=\"#github-actions\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eRendering the site inside of github actions with the cache is pretty\nstraightforward with these four steps.  Keying off of the configuration will\nbust the cache every time we change the configuration.  You can hack a full\nrebuild by changing anything inside of the configuration file.\u003c/p\u003e\n\u003ch2 id=\"github-actions-1\"\u003eGitHub Actions \u003ca href=\"#github-actions-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e- \u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eCache\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003euses\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eactions/cache@v2\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003ewith\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003epath\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003e.markata.cache\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003ekey\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003e${{ runner.os }}-${{ hashfiles(\u0026#39;markata.toml\u0026#39;) }}-markata\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e- \u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eSet up Python 3.8\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003euses\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eactions/setup-python@v1\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003ewith\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003epython-version\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"m\"\u003e3.8\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e- \u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003einstall markata\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003erun\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003epip install git+https://github.com/WaylonWalker/markata.git@develop python-twitter background\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"c\"\u003e# checksumdir\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e- \u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003erun markata\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003erun\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003emarkata --no-rich\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"github-actions-2\"\u003eGitHub Actions \u003ca href=\"#github-actions-2\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e \u003cspan class=\"n\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003einstall\u003c/span\u003e \u003cspan class=\"n\"\u003emarkata\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003erun\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003epip\u003c/span\u003e \u003cspan class=\"n\"\u003einstall\u003c/span\u003e \u003cspan class=\"n\"\u003egit\u003c/span\u003e\u003cspan class=\"o\"\u003e+\u003c/span\u003e\u003cspan class=\"n\"\u003ehttps\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"o\"\u003e//\u003c/span\u003e\u003cspan class=\"n\"\u003egithub\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ecom\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003eWaylonWalker\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003emarkata\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003egit\u003c/span\u003e\u003cspan class=\"nd\"\u003e@develop\u003c/span\u003e \u003cspan class=\"n\"\u003epython\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003etwitter\u003c/span\u003e \u003cspan class=\"n\"\u003ebackground\u003c/span\u003e \u003cspan class=\"c1\"\u003e# checksumdir\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003eNote: I run bleeding edge, don’t do that\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"netlify\"\u003eNetlify \u003ca href=\"#netlify\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI use deploy to netlify but any static site host would work.\u003c/p\u003e\n\u003ch2 id=\"netlify---cloudflare-pages\"\u003eNetlify -\u0026gt; Cloudflare Pages \u003ca href=\"#netlify---cloudflare-pages\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eSince Making the title I’ve moved to Cloudflare pages.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eNetlify is great, but I’m cheap and wanted analytics\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"results\"\u003eResults \u003ca href=\"#results\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003emarkata.dev\u003c/p\u003e\n\u003cp\u003eMarkdown to site, with seo, cover images, full works.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eseo/\u003ca href=\"/og/\" class=\"glossary-term\" title=\"OG is short for open graph, a set of standard meta tags that are used for social media sharing. This is what tells other websites how to describe and display...\"\u003eog\u003c/a\u003e tags\u003c/li\u003e\n\u003cli\u003ecover images\u003c/li\u003e\n\u003cli\u003efrontmatter cleansing\u003c/li\u003e\n\u003cli\u003efeeds\u003c/li\u003e\n\u003cli\u003erss\u003c/li\u003e\n\u003cli\u003ecli\u003c/li\u003e\n\u003cli\u003esitemap\u003c/li\u003e\n\u003cli\u003eheading links\u003c/li\u003e\n\u003cli\u003ebuild profiler\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"markatadev\"\u003eMarkata.dev \u003ca href=\"#markatadev\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIn early 2022 I packaged up my blog’s backend as a package for others to use.\u003c/p\u003e\n\u003ch2 id=\"markatadev-1\"\u003eMarkata.dev \u003ca href=\"#markatadev-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI now have several users running their site with what I have built\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMy buddy has a near clone of mine with 15 posts\u003c/li\u003e\n\u003cli\u003eTechdestructive\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"markatadev-2\"\u003eMarkata.dev \u003ca href=\"#markatadev-2\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eplugins all the way down\u003c/li\u003e\n\u003cli\u003euse the parts you want\u003c/li\u003e\n\u003cli\u003emodify to your liking\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"markatadev-3\"\u003eMarkata.dev \u003ca href=\"#markatadev-3\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIt lets you get started quick, write content early, and grow into your own platform\u003c/p\u003e\n\u003ch2 id=\"markatadev-4\"\u003eMarkata.dev \u003ca href=\"#markatadev-4\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e⚠ I’ts still very much beta\u003c/p\u003e\n\u003ch2 id=\"open-source\"\u003eOpen Source \u003ca href=\"#open-source\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre\u003e\u003ccode\u003e# install it for your application\npip install markata\n\n# try it out\npipx run markata build\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2 id=\"quickstart\"\u003equickstart \u003ca href=\"#quickstart\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre\u003e\u003ccode\u003emkdir pages\necho \u0026#39;# My First Post\u0026#39; \u0026gt; first-post.md\necho \u0026#39;# Hello World\u0026#39; \u0026gt; hello-world.md\n\u003c/code\u003e\u003c/pre\u003e\n\u003cpre\u003e\u003ccode\u003e# or if pipx is your thing\npix run markata build\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2 id=\"you-can-do-it-too\"\u003eYou can do it too \u003ca href=\"#you-can-do-it-too\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eDon’t worry about having the perfect post, just make something that is\nuseful to you, and others who will find it.\u003c/p\u003e\n\u003ch2 id=\"connect\"\u003eConnect \u003ca href=\"#connect\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://twitter.com/_WaylonWalker\"\u003etwitter\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.linkedin.com/in/waylonwalker/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.linkedin.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.linkedin.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eLinkedIn\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/WaylonWalker\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eGitHub\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://dev.to/waylonwalker\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/dev.to.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/dev.to.ico\" class=\"has-avatar  has-avatar-before\"\u003eDev.to\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.twitch.tv/waylonwalker\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.twitch.tv.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.twitch.tv.png\" class=\"has-avatar  has-avatar-before\"\u003etwitch\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"links\"\u003eLinks \u003ca href=\"#links\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.swyx.io/learn-in-public/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.swyx.io.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.swyx.io.png\" class=\"has-avatar  has-avatar-before\"\u003eLearn In Public\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.swyx.io/learn-in-public/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.swyx.io.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.swyx.io.png\" class=\"has-avatar  has-avatar-before\"\u003eswyx\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://twitter.com/jbrancha\"\u003ejbrancha\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jbranchaud/til\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003etil repo\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://copier.readthedocs.io/en/stable/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/copier.readthedocs.io.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/copier.readthedocs.io.png\" class=\"has-avatar  has-avatar-before\"\u003ecopier\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://ipython.org/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/ipython.org.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/ipython.org.png\" class=\"has-avatar  has-avatar-before\"\u003eipython\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joerick/pyinstrument\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003epyinstrument\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eyeseast/python-frontmatter\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003epython-frontmatter\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://facelessuser.github.io/pymdown-extensions/\"\u003epymdown-extensions\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://pluggy.readthedocs.io/en/stable/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/pluggy.readthedocs.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/pluggy.readthedocs.io.ico\" class=\"has-avatar  has-avatar-before\"\u003ePluggy\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://pluggy.readthedocs.io/en/stable/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/pluggy.readthedocs.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/pluggy.readthedocs.io.ico\" class=\"has-avatar  has-avatar-before\"\u003ePluggy\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://pluggy.readthedocs.io/en/stable/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/pluggy.readthedocs.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/pluggy.readthedocs.io.ico\" class=\"has-avatar  has-avatar-before\"\u003ePluggy\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grantjenks/python-diskcache/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eDiskcache\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ssato/python-anyconfig\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eanyconfig\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\n\n## How I Continuously Deliver Content to my Blog with Markdown, GitHub, Python, and netlify\n\nContent at the speed of thought.\n\n\u003e well, as fast as I can type\n\n## Me\n\n* Mechanical Engineering\n* Data Engineering\n* Terminal Junkie\n\n## Ask Questions in slido\n\nPlease ask questions in slido # 983 911 | App Dev 1 Track\n\n## Slido Poll\n\nDo **you** have a personal blog / notes / website?\n\n\u003e * Yes - Static, built with python\n\u003e * Yes - I manage a server running python\n\u003e * Yes - Not python\n\u003e * No\n\nwe will circle back around in a few minutes\n\n## I'll give away my answer\n\n* Yes - Static, built with python\n\n## Slack Channel: #track-1-appdev\n\nIf you are in the slack give me a 🔥🔥🔥🔥🔥🔥🔥\n\nLet's light up slack 🔥🔥🔥🔥🔥🔥🔥\n\n## 4 parts\n\n* Why\n* My workflow\n* Under the hood\n* Open Source\n\n## Part 1 WHY\n\n## 2016\n\n## I want to own my content\n\nTwitter is a great networking tool, but it's rare to see anything more\nthan a few hours old.\n\n## I want to own my content\n\nNo one can take my domain or shut down the platform that my content is on.\n\n## Some of my Stats\n\n* 48 Google top 10 ranking pages\n* 6500 monthly clicks on google\n* 12k page monthly views\n\n\u003e from ahrefs and google search console\n\n## [Learn In Public](https://www.swyx.io/learn-in-public/)\n\nI'm creating learning exhaust.\n\n\u003e Inspired by [swyx](https://www.swyx.io/learn-in-public/)\n\u003e \u003chttps://www.swyx.io/learn-in-public/\u003e\n\n## from swyx\n\n\u003e Whatever your thing is, make the thing you wish you had found when you\n\u003e were learning. Don’t judge your results by “claps” or retweets or\n\u003e stars or upvotes - just talk to yourself from 3 months ago. I keep an\n\u003e almost-daily dev blog written for no one else but me.\n\n## Focus on content\n\nI could not do any of this if I was focused on Building rather than\nwriting.\n\n## Focus on content\n\nNo one needs elastic search navigate your first 50 posts.\n\n\u003e when you are starting\n\n## Focus on content\n\nNo one is going to make comments.\n\n\u003e when you are starting\n\n## Write for yourself\n\nYou are your biggest audience out of the gate.\n\n\u003e If you continue writing others like you will find you\n\n## Don't worry about the Trolls\n\nNo one is going to take your python keys away.\n\n## Slido Check\n\nPlease ask questions in slack/slido\n\n## Part 2 Workflow and tools\n\n\u003e To the meat of the talk\n\n1. Let's start by making a post\n2. then show how it works under the hood\n\n## If you take away anything\n\nFocus on content that you want to consume.\n\n## My Flow\n\n``` txt\n   ┌───────┐\n   │  TIL  │\n   └─┬─────┘\n     │\n     │  ┌─────────────┐\n     │  │             │\n     └─►│    Posts    │\n        │             │\n        └─┬───────────┘\n          │\n          │   ┌────────────────┐\n          └──►│    YouTube     │\n          │   └────────────────┘\n          │   ┌────────────────┐\n          └──►│    Conference  │\n              │    Talks       │\n              └────────────────┘\n```\n\n## Let's start with a Til\n\n_the process_\n\n### shoutout to @[jbrancha](https://twitter.com/jbrancha)\n\nCheck out his amazing [til repo](https://github.com/jbranchaud/til)\n\n\u003e If you ask google very many questions about git, you will end up\n\u003e finding him on the top\n\n## Copier\n\nI use [copier](https://copier.readthedocs.io/en/stable/) for single file\ntemplates.\n\n## Copier give me a new page\n\nHow I Present from the terminal with lookatme\nlookatme-slides\n\n``` bash\ncopier copy ~/.copier-templates/`ls ~/.copier-templates |\\\n    fzf --header $(pwd) --preview='tree ~/.copier-templates/{} |\\\n    lolcat'` . \\\n```\n\n## nvim open my file\n\n!TIP Once it starts getting uncomfortable to find posts, its nice to have\ngood shortcuts to get around.\n\n\u003e I have about 700 files on my blog to sift through\n\n## nvim open my file\n\n``` bash\nmarkata list --map path --filter 'templateKey==\"til\"' --sort date --reverse\n```\n\n``` vim\nnnoremap geil \u003ccmd\u003eTelescope find_files find_command=markata,list,--map,path,--filter,templateKey=='til',--sort,date,--reverse\u003ccr\u003e\n```\n\n## Paste in a snippet\n\nOften times I am working away on some sort of project, and I just need\nto save a snippet for a later post.\n\n## Write the content\n\nLater I come back and fill in the content.\n\n## git push\n\nI have a vim hotkey `gic` to commit my current file, and `gpp` to push\nit.\n\n## It's nearly live\n\nIt will be live within a few minutes.\n\n## Cross Post\n\nI've tried to cross post to more, but it really gets overwhelming.\n\n* Twitter\n* dev.to\n\n## Cross Post\n\nI have a plugin to convert my markdown to a more dev.to friendly format.\n\n## Slido Check\n\nLet'g grab a question from slack/slido\n\n## Part 3 How it's deployed\n\nIn March of 2021 I made the big switch from a javascript based framework\nto my own ssg.\n\n## I thought it would be easy\n\nThere are a bunch of open source libraries that do all the things I need\nan ssg to do.\n\n## Moving to python\n\nOne of the biggest selling points to moving back to python was that I\nuse it every day and know the ecosystem much better.\n\n* [ipython](https://ipython.org/)\n* [pyinstrument](https://github.com/joerick/pyinstrument)\n* breakpoint\n\n## Part 3 How it's deployed\n\n_word of caution_\n\nThis part might be a lot of code coming quick.\n\n* Show how it comes together\n* Link to the slides\n\n## Everything is markdown\n\n``` python\npymdown-extensions\npython-frontmatter\n```\n\n## frontmatter\n\nAll the metadata is defined in yaml frontmatter and read in with the\n[python-frontmatter](https://github.com/eyeseast/python-frontmatter)\nlibrary.\n\n``` yaml\n---\ntemplateKey: blog-post\ntags: ['webdev', 'meta' ]\ntitle: How I deploy my blog in 2022\ndate: 2021-10-29\npublished: false\n\n---\n```\n\n## setting up extensions\n\nmarkata supports [pymdown-extensions](https://facelessuser.github.io/pymdown-extensions/)\n\n``` python\nDEFAULT_MD_EXTENSIONS = [\n    \"markdown.extensions.toc\",\n    \"markdown.extensions.admonition\",\n    \"markdown.extensions.tables\",\n    \"markdown.extensions.md_in_html\",\n    \"pymdownx.magiclink\",\n    \"pymdownx.betterem\",\n    \"pymdownx.tilde\",\n    \"pymdownx.emoji\",\n    \"pymdownx.tasklist\",\n    \"pymdownx.superfences\",\n    \"pymdownx.highlight\",\n    \"pymdownx.inlinehilite\",\n    \"pymdownx.keys\",\n    \"pymdownx.saneheaders\",\n    \"codehilite\",\n]\n```\n\n## setting the markdown object\n\n``` python\nself.markdown_extensions = [\n    *DEFAULT_MD_EXTENSIONS,\n    *markdown_extensions\n]\nself.md = markdown.Markdown(\n    extensions=self.markdown_extensions\n)\n```\n\n## [Pluggy](https://pluggy.readthedocs.io/en/stable/)\n\n* comes from pytest\n* allows users to easily modify the framework to their liking\n\n\u003e one of the biggest reasons I started down this path is that I wanted\n\u003e to build my own plugins all the way down framework.\n\n## [Pluggy](https://pluggy.readthedocs.io/en/stable/)\n\n[Pluggy](https://pluggy.readthedocs.io/en/stable/) is what I use to\nimplement my lifecycle.\n\n* configure\n* glob\n* load\n* pre_render\n* render\n* post_render\n* save\n\n## Pluggy\n\nPluggy allows the framework to crate a `hook_spec` and plugin authors to\nimplement hooks with the `hook_impl`.\n\n``` python\n\"\"\"Define hook specs.\"\"\"\nimport pluggy\n\n\n# the framework's definition\nhook_spec = pluggy.HookspecMarker(\"markata\")\n\n# the plugin author's implementation\nhook_impl = pluggy.HookimplMarker(\"markata\")\n```\n\n## creating the hookspec\n\nIt's an empty class.\n\n``` python\nclass MarkataSpecs:\n    \"\"\"\n    Namespace that defines all specifications for Load hooks.\n\n    glob -\u003e load -\u003e render -\u003e save\n    \"\"\"\n\n    @hook_spec\n    def glob(self, markata: \"Markata\") -\u003e None:\n        \"\"\"Glob for files to load.\"\"\"\n        pass\n\n    @hook_spec\n    def load(self, markata: \"Markata\") -\u003e None:\n        \"\"\"Load list of files.\"\"\"\n        pass\n\n    @hook_spec\n    def pre_render(self, markata: \"Markata\") -\u003e None:\n        \"\"\"Pre render content from loaded data.\"\"\"\n        pass\n\n    @hook_spec\n    def render(self, markata: \"Markata\") -\u003e None:\n        \"\"\"Render content from loaded data.\"\"\"\n        pass\n\n    @hook_spec\n    def post_render(self, markata: \"Markata\") -\u003e None:\n        \"\"\"Post render content from loaded data.\"\"\"\n        pass\n\n    @hook_spec\n    def save(self, markata: \"Markata\") -\u003e None:\n        \"\"\"Save content from data.\"\"\"\n        pass\n```\n\n## creating the plugin manager\n\n``` python\npm = pluggy.PluginManager(\"markata\")\npm.add_hookspecs(hookspec.MarkataSpecs)\n\n# register hooks\nfor hook in config.hooks:\n    plugin = importlib.import_module(hook)\n    pm.register(plugin)\n```\n\n## Diskcache\n\n[Diskcache](https://github.com/grantjenks/python-diskcache/) allows you\nto setup a persistent cache layer.\n\n``` python\ncache = FanoutCache(self.MARKATA_CACHE_DIR, statistics=True)\n```\n\n## make a key\n\nTo set soemthing to cache we need a unique identifier.\n\n``` python\ndef make_hash(self, *keys: str) -\u003e str:\n    str_keys = [str(key) for key in keys]\n    return hashlib.md5(\"\".join(str_keys).encode(\"utf-8\")).hexdigest()\n```\n\n## make a key\n\nFrom my plugins I cache anything that the function I run touches.\n\n* plugin code\n* article content\n* article frontmatter\n\n``` python\nfrom pathlib import Path\n\nkey = make_hash(Path(__file__).read_text(), article.content, article.metadata['title'])\n```\n\n## accessing the cache\n\nNow that we have a cache and a key we can ask the cache for values.\n\n``` python\nhtml_from_cache = cache.get(key)\n```\n\n## if it's not yet been set\n\nIf the content is not yet set or has expired, you will get `None` back and need\nto create the value.\n\n``` python\nhtml_from_cache = cache.get(key)\nif html_from_cache is None:\n    html = markata.md.convert(article.content)\n    cache.set(key, html, expire=15 * 24 * 60)\nelse:\n    html = html_from_cache\n```\n\n## Configuration\n\n[anyconfig](https://github.com/ssato/python-anyconfig) is a great tool\nto pull your config from generic config files.\n\n* markta.toml\n* markta.yaml\n* markta.ini\n* pyproject.toml\n\n## Configuration\n\nAnyconfig needs a `path`, `parser`, and `keys`.  The key is your tools\nprefix\n\n``` python\nimport anyconfig\n\nanyconfig.load(\n            path_specs= (Path() / f\"markata.toml\"),\n            ac_parser= \"toml\",\n            keys= ['markata'],\n        )\n```\n\n## Configuration\n\nEach key in the config files used with `anyconfig` must be prefixed with\nthe tool's name.\n\n```\n# markata.toml\n[markata]\ndefault_cache_expire = 1209600\n\n[markata.auto_description.description]\nlen=160\n```\n\n## Markata was born\n\nA plugins all the way doen static site generator written in python.\n\n* 6 lifecycle methods\n* 21 pre-defined plugins\n* cache store\n* toml based configuration\n\n## GitHub Actions\n\nRendering the site inside of github actions with the cache is pretty\nstraightforward with these four steps.  Keying off of the configuration will\nbust the cache every time we change the configuration.  You can hack a full\nrebuild by changing anything inside of the configuration file.\n\n## GitHub Actions\n\n``` yaml\n\n- name: Cache\nuses: actions/cache@v2\nwith:\n    path: .markata.cache\n    key: ${{ runner.os }}-${{ hashfiles('markata.toml') }}-markata\n\n- name: Set up Python 3.8\nuses: actions/setup-python@v1\nwith:\n    python-version: 3.8\n\n- name: install markata\nrun: pip install git+https://github.com/WaylonWalker/markata.git@develop python-twitter background # checksumdir\n\n- name: run markata\nrun: markata --no-rich\n```\n\n## GitHub Actions\n\n``` python\n- name: install markata\nrun: pip install git+https://github.com/WaylonWalker/markata.git@develop python-twitter background # checksumdir\n```\n\n\u003e Note: I run bleeding edge, don't do that\n\n## Netlify\n\nI use deploy to netlify but any static site host would work.\n\n## Netlify -\u003e Cloudflare Pages\n\nSince Making the title I've moved to Cloudflare pages.\n\n\u003e Netlify is great, but I'm cheap and wanted analytics\n\n## Results\n\nmarkata.dev\n\nMarkdown to site, with seo, cover images, full works.\n\n* seo/og tags\n* cover images\n* frontmatter cleansing\n* feeds\n* rss\n* cli\n* sitemap\n* heading links\n* build profiler\n\n## Markata.dev\n\nIn early 2022 I packaged up my blog's backend as a package for others to use.\n\n## Markata.dev\n\nI now have several users running their site with what I have built\n\n* My buddy has a near clone of mine with 15 posts\n* Techdestructive\n\n## Markata.dev\n\n* plugins all the way down\n* use the parts you want\n* modify to your liking\n\n## Markata.dev\n\nIt lets you get started quick, write content early, and grow into your own platform\n\n## Markata.dev\n\n⚠ I'ts still very much beta\n\n## Open Source\n\n```\n# install it for your application\npip install markata\n\n# try it out\npipx run markata build\n```\n\n## quickstart\n\n```\nmkdir pages\necho '# My First Post' \u003e first-post.md\necho '# Hello World' \u003e hello-world.md\n```\n\n```\n# or if pipx is your thing\npix run markata build\n```\n\n## You can do it too\n\nDon't worry about having the perfect post, just make something that is\nuseful to you, and others who will find it.\n\n## Connect\n\n* [twitter](https://twitter.com/_WaylonWalker)\n* [LinkedIn](https://www.linkedin.com/in/waylonwalker/)\n* [GitHub](https://github.com/WaylonWalker)\n* [Dev.to](https://dev.to/waylonwalker)\n* [twitch](https://www.twitch.tv/waylonwalker)\n\n## Links\n\n* [Learn In Public](https://www.swyx.io/learn-in-public/)\n* [swyx](https://www.swyx.io/learn-in-public/)\n* [jbrancha](https://twitter.com/jbrancha)\n* [til repo](https://github.com/jbranchaud/til)\n* [copier](https://copier.readthedocs.io/en/stable/)\n* [ipython](https://ipython.org/)\n* [pyinstrument](https://github.com/joerick/pyinstrument)\n* [python-frontmatter](https://github.com/eyeseast/python-frontmatter)\n* [pymdown-extensions](https://facelessuser.github.io/pymdown-extensions/)\n* [Pluggy](https://pluggy.readthedocs.io/en/stable/)\n* [Pluggy](https://pluggy.readthedocs.io/en/stable/)\n* [Pluggy](https://pluggy.readthedocs.io/en/stable/)\n* [Diskcache](https://github.com/grantjenks/python-diskcache/)\n* [anyconfig](https://github.com/ssato/python-anyconfig)\n\n",
      "summary": "Content at the speed of thought.",
      "date_published": "2021-10-29T00:00:00Z",
      "date_modified": "2021-10-29T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/how-i-deploy-2021/",
      "url": "https://go.waylonwalker.com/how-i-deploy-2021/",
      "title": "How I deploy my blog in 2021",
      "content_html": "\u003ch2 id=\"how-i-continuously-deliver-content-to-my-blog-with-markdown-github-python-and-netlify\"\u003eHow I Continuously Deliver Content to my Blog with Markdown, GitHub, Python, and netlify \u003ca href=\"#how-i-continuously-deliver-content-to-my-blog-with-markdown-github-python-and-netlify\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eContent at the speed of thought.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ewell, as fast as I can type\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"me\"\u003eMe \u003ca href=\"#me\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMechanical Engineering\u003c/li\u003e\n\u003cli\u003eData Engineering\u003c/li\u003e\n\u003cli\u003eTerminal Junkie\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"ask-questions-in-slido\"\u003eAsk Questions in slido \u003ca href=\"#ask-questions-in-slido\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003ePlease ask questions in slido # 983 911 | App Dev 1 Track\u003c/p\u003e\n\u003ch2 id=\"slido-poll\"\u003eSlido Poll \u003ca href=\"#slido-poll\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eDo \u003cstrong\u003eyou\u003c/strong\u003e have a personal blog / notes / website?\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cul\u003e\n\u003cli\u003eYes - Static, built with python\u003c/li\u003e\n\u003cli\u003eYes - I manage a server running python\u003c/li\u003e\n\u003cli\u003eYes - Not python\u003c/li\u003e\n\u003cli\u003eNo\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003cp\u003ewe will circle back around in a few minutes\u003c/p\u003e\n\u003ch2 id=\"ill-give-away-my-answer\"\u003eI’ll give away my answer \u003ca href=\"#ill-give-away-my-answer\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eYes - Static, built with python\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"slack-channel-track-1-appdev\"\u003eSlack Channel: #track-1-appdev \u003ca href=\"#slack-channel-track-1-appdev\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIf you are in the slack give me a 🔥🔥🔥🔥🔥🔥🔥\u003c/p\u003e\n\u003cp\u003eLet’s light up slack 🔥🔥🔥🔥🔥🔥🔥\u003c/p\u003e\n\u003ch2 id=\"4-parts\"\u003e4 parts \u003ca href=\"#4-parts\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWhy\u003c/li\u003e\n\u003cli\u003eMy workflow\u003c/li\u003e\n\u003cli\u003eUnder the hood\u003c/li\u003e\n\u003cli\u003eOpen Source\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"part-1-why\"\u003ePart 1 WHY \u003ca href=\"#part-1-why\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"2016\"\u003e2016 \u003ca href=\"#2016\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"i-want-to-own-my-content\"\u003eI want to own my content \u003ca href=\"#i-want-to-own-my-content\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eTwitter is a great networking tool, but it’s rare to see anything more\nthan a few hours old.\u003c/p\u003e\n\u003ch2 id=\"i-want-to-own-my-content-1\"\u003eI want to own my content \u003ca href=\"#i-want-to-own-my-content-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNo one can take my domain or shut down the platform that my content is on.\u003c/p\u003e\n\u003ch2 id=\"some-of-my-stats\"\u003eSome of my Stats \u003ca href=\"#some-of-my-stats\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e48 Google top 10 ranking pages\u003c/li\u003e\n\u003cli\u003e6500 monthly clicks on google\u003c/li\u003e\n\u003cli\u003e12k page monthly views\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003efrom ahrefs and google search console\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"learn-in-publichttpswwwswyxiolearn-in-public\"\u003e\u003ca href=\"https://www.swyx.io/learn-in-public/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.swyx.io.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.swyx.io.png\" class=\"has-avatar  has-avatar-before\"\u003eLearn In Public\u003c/a\u003e \u003ca href=\"#learn-in-publichttpswwwswyxiolearn-in-public\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI’m creating learning exhaust.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eInspired by \u003ca href=\"https://www.swyx.io/learn-in-public/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.swyx.io.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.swyx.io.png\" class=\"has-avatar  has-avatar-before\"\u003eswyx\u003c/a\u003e\n\u003ca href=\"https://www.swyx.io/learn-in-public/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.swyx.io.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.swyx.io.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://www.swyx.io/learn-in-public/\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"from-swyx\"\u003efrom swyx \u003ca href=\"#from-swyx\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003eWhatever your thing is, make the thing you wish you had found when you\nwere learning. Don’t judge your results by “claps” or retweets or\nstars or upvotes - just talk to yourself from 3 months ago. I keep an\nalmost-daily dev blog written for no one else but me.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"focus-on-content\"\u003eFocus on content \u003ca href=\"#focus-on-content\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI could not do any of this if I was focused on Building rather than\nwriting.\u003c/p\u003e\n\u003ch2 id=\"focus-on-content-1\"\u003eFocus on content \u003ca href=\"#focus-on-content-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNo one needs elastic search navigate your first 50 posts.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ewhen you are starting\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"focus-on-content-2\"\u003eFocus on content \u003ca href=\"#focus-on-content-2\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNo one is going to make comments.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ewhen you are starting\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"write-for-yourself\"\u003eWrite for yourself \u003ca href=\"#write-for-yourself\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eYou are your biggest audience out of the gate.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eIf you continue writing others like you will find you\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"dont-worry-about-the-trolls\"\u003eDon’t worry about the Trolls \u003ca href=\"#dont-worry-about-the-trolls\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNo one is going to take your python keys away.\u003c/p\u003e\n\u003ch2 id=\"slido-check\"\u003eSlido Check \u003ca href=\"#slido-check\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003ePlease ask questions in slack/slido\u003c/p\u003e\n\u003ch2 id=\"part-2-workflow-and-tools\"\u003ePart 2 Workflow and tools \u003ca href=\"#part-2-workflow-and-tools\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003eTo the meat of the talk\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003col\u003e\n\u003cli\u003eLet’s start by making a post\u003c/li\u003e\n\u003cli\u003ethen show how it works under the hood\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"if-you-take-away-anything\"\u003eIf you take away anything \u003ca href=\"#if-you-take-away-anything\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eFocus on content that you want to consume.\u003c/p\u003e\n\u003ch2 id=\"my-flow\"\u003eMy Flow \u003ca href=\"#my-flow\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   ┌───────┐\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   │  TIL  │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   └─┬─────┘\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e     │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e     │  ┌─────────────┐\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e     │  │             │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e     └─►│    Posts    │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        │             │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        └─┬───────────┘\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          │   ┌────────────────┐\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          └──►│    YouTube     │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          │   └────────────────┘\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          │   ┌────────────────┐\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          └──►│    Conference  │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e              │    Talks       │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e              └────────────────┘\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"lets-start-with-a-til\"\u003eLet’s start with a Til \u003ca href=\"#lets-start-with-a-til\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003ethe process\u003c/em\u003e\u003c/p\u003e\n\u003ch3 id=\"shoutout-to-jbranchahttpstwittercomjbrancha\"\u003eshoutout to @\u003ca href=\"https://twitter.com/jbrancha\"\u003ejbrancha\u003c/a\u003e \u003ca href=\"#shoutout-to-jbranchahttpstwittercomjbrancha\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eCheck out his amazing \u003ca href=\"https://github.com/jbranchaud/til\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003etil repo\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eIf you ask google very many questions about \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e, you will end up\nfinding him on the top\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"copier\"\u003eCopier \u003ca href=\"#copier\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI use \u003ca href=\"https://copier.readthedocs.io/en/stable/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/copier.readthedocs.io.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/copier.readthedocs.io.png\" class=\"has-avatar  has-avatar-before\"\u003ecopier\u003c/a\u003e for single file\ntemplates.\u003c/p\u003e\n\u003ch2 id=\"copier-give-me-a-new-page\"\u003eCopier give me a new page \u003ca href=\"#copier-give-me-a-new-page\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eHow I Present from the terminal with lookatme\nlookatme-slides\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecopier copy ~/.copier-templates/\u003cspan class=\"sb\"\u003e`\u003c/span\u003els ~/.copier-templates \u003cspan class=\"p\"\u003e|\u003c/span\u003e\u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"se\"\u003e\u003c/span\u003e    fzf --header \u003cspan class=\"k\"\u003e$(\u003c/span\u003e\u003cspan class=\"nb\"\u003epwd\u003c/span\u003e\u003cspan class=\"k\"\u003e)\u003c/span\u003e --preview\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;tree ~/.copier-templates/{} |\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e    lolcat\u0026#39;\u003c/span\u003e\u003cspan class=\"sb\"\u003e`\u003c/span\u003e . \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"nvim-open-my-file\"\u003envim open my file \u003ca href=\"#nvim-open-my-file\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e!TIP Once it starts getting uncomfortable to find posts, its nice to have\ngood shortcuts to get around.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eI have about 700 files on my blog to sift through\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"nvim-open-my-file-1\"\u003envim open my file \u003ca href=\"#nvim-open-my-file-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emarkata list --map path --filter \u003cspan class=\"s1\"\u003e\u0026#39;templateKey==\u0026#34;til\u0026#34;\u0026#39;\u003c/span\u003e --sort date --reverse\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003ennoremap\u003c/span\u003e \u003cspan class=\"nx\"\u003egeil\u003c/span\u003e \u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nx\"\u003ecmd\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"nx\"\u003eTelescope\u003c/span\u003e \u003cspan class=\"nx\"\u003efind_files\u003c/span\u003e \u003cspan class=\"nx\"\u003efind_command\u003c/span\u003e\u003cspan class=\"p\"\u003e=\u003c/span\u003e\u003cspan class=\"nx\"\u003emarkata\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"nx\"\u003elist\u003c/span\u003e\u003cspan class=\"p\"\u003e,--\u003c/span\u003e\u003cspan class=\"k\"\u003emap\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"nx\"\u003epath\u003c/span\u003e\u003cspan class=\"p\"\u003e,--\u003c/span\u003e\u003cspan class=\"nx\"\u003efilter\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"nx\"\u003etemplateKey\u003c/span\u003e\u003cspan class=\"p\"\u003e==\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;til\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,--\u003c/span\u003e\u003cspan class=\"nx\"\u003esort\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"nx\"\u003edate\u003c/span\u003e\u003cspan class=\"p\"\u003e,--\u003c/span\u003e\u003cspan class=\"nx\"\u003ereverse\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nx\"\u003ecr\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"paste-in-a-snippet\"\u003ePaste in a snippet \u003ca href=\"#paste-in-a-snippet\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eOften times I am working away on some sort of project, and I just need\nto save a snippet for a later post.\u003c/p\u003e\n\u003ch2 id=\"write-the-content\"\u003eWrite the content \u003ca href=\"#write-the-content\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLater I come back and fill in the content.\u003c/p\u003e\n\u003ch2 id=\"git-push\"\u003egit push \u003ca href=\"#git-push\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI have a vim hotkey \u003ccode\u003egic\u003c/code\u003e to commit my current file, and \u003ccode\u003egpp\u003c/code\u003e to push\nit.\u003c/p\u003e\n\u003ch2 id=\"its-nearly-live\"\u003eIt’s nearly live \u003ca href=\"#its-nearly-live\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIt will be live within a few minutes.\u003c/p\u003e\n\u003ch2 id=\"cross-post\"\u003eCross Post \u003ca href=\"#cross-post\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI’ve tried to cross post to more, but it really gets overwhelming.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eTwitter\u003c/li\u003e\n\u003cli\u003edev.to\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"cross-post-1\"\u003eCross Post \u003ca href=\"#cross-post-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI have a plugin to convert my markdown to a more dev.to friendly format.\u003c/p\u003e\n\u003ch2 id=\"slido-check-1\"\u003eSlido Check \u003ca href=\"#slido-check-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLet’g grab a question from slack/slido\u003c/p\u003e\n\u003ch2 id=\"part-3-how-its-deployed\"\u003ePart 3 How it’s deployed \u003ca href=\"#part-3-how-its-deployed\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIn March of 2021 I made the big switch from a javascript based framework\nto my own ssg.\u003c/p\u003e\n\u003ch2 id=\"i-thought-it-would-be-easy\"\u003eI thought it would be easy \u003ca href=\"#i-thought-it-would-be-easy\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThere are a bunch of open source libraries that do all the things I need\nan ssg to do.\u003c/p\u003e\n\u003ch2 id=\"moving-to-python\"\u003eMoving to python \u003ca href=\"#moving-to-python\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eOne of the biggest selling points to moving back to python was that I\nuse it every day and know the ecosystem much better.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://ipython.org/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/ipython.org.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/ipython.org.png\" class=\"has-avatar  has-avatar-before\"\u003eipython\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joerick/pyinstrument\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003epyinstrument\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebreakpoint\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"part-3-how-its-deployed-1\"\u003ePart 3 How it’s deployed \u003ca href=\"#part-3-how-its-deployed-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eword of caution\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eThis part might be a lot of code coming quick.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eShow how it comes together\u003c/li\u003e\n\u003cli\u003eLink to the slides\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"everything-is-markdown\"\u003eEverything is markdown \u003ca href=\"#everything-is-markdown\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epymdown\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003eextensions\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epython\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003efrontmatter\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"frontmatter\"\u003efrontmatter \u003ca href=\"#frontmatter\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAll the metadata is defined in yaml frontmatter and read in with the\n\u003ca href=\"https://github.com/eyeseast/python-frontmatter\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003epython-frontmatter\u003c/a\u003e\nlibrary.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nn\"\u003e---\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003etemplateKey\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eblog-post\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003etags\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;webdev\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;meta\u0026#39;\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003etitle\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eHow I deploy my blog in 2022\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003edate\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"ld\"\u003e2021-10-29\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003epublished\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"kc\"\u003efalse\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nn\"\u003e---\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"setting-up-extensions\"\u003esetting up extensions \u003ca href=\"#setting-up-extensions\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003emarkata supports \u003ca href=\"https://facelessuser.github.io/pymdown-extensions/\"\u003epymdown-extensions\u003c/a\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eDEFAULT_MD_EXTENSIONS\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;markdown.extensions.toc\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;markdown.extensions.admonition\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;markdown.extensions.tables\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;markdown.extensions.md_in_html\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;pymdownx.magiclink\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;pymdownx.betterem\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;pymdownx.tilde\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;pymdownx.emoji\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;pymdownx.tasklist\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;pymdownx.superfences\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;pymdownx.highlight\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;pymdownx.inlinehilite\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;pymdownx.keys\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;pymdownx.saneheaders\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;codehilite\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"setting-the-markdown-object\"\u003esetting the markdown object \u003ca href=\"#setting-the-markdown-object\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003emarkdown_extensions\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e*\u003c/span\u003e\u003cspan class=\"n\"\u003eDEFAULT_MD_EXTENSIONS\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e*\u003c/span\u003e\u003cspan class=\"n\"\u003emarkdown_extensions\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003emd\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003emarkdown\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eMarkdown\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003eextensions\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003emarkdown_extensions\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"pluggyhttpspluggyreadthedocsioenstable\"\u003e\u003ca href=\"https://pluggy.readthedocs.io/en/stable/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/pluggy.readthedocs.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/pluggy.readthedocs.io.ico\" class=\"has-avatar  has-avatar-before\"\u003ePluggy\u003c/a\u003e \u003ca href=\"#pluggyhttpspluggyreadthedocsioenstable\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ecomes from pytest\u003c/li\u003e\n\u003cli\u003eallows users to easily modify the framework to their liking\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003eone of the biggest reasons I started down this path is that I wanted\nto build my own plugins all the way down framework.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"pluggyhttpspluggyreadthedocsioenstable-1\"\u003e\u003ca href=\"https://pluggy.readthedocs.io/en/stable/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/pluggy.readthedocs.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/pluggy.readthedocs.io.ico\" class=\"has-avatar  has-avatar-before\"\u003ePluggy\u003c/a\u003e \u003ca href=\"#pluggyhttpspluggyreadthedocsioenstable-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pluggy.readthedocs.io/en/stable/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/pluggy.readthedocs.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/pluggy.readthedocs.io.ico\" class=\"has-avatar  has-avatar-before\"\u003ePluggy\u003c/a\u003e is what I use to\nimplement my lifecycle.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003econfigure\u003c/li\u003e\n\u003cli\u003eglob\u003c/li\u003e\n\u003cli\u003eload\u003c/li\u003e\n\u003cli\u003epre_render\u003c/li\u003e\n\u003cli\u003erender\u003c/li\u003e\n\u003cli\u003epost_render\u003c/li\u003e\n\u003cli\u003esave\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"pluggy\"\u003ePluggy \u003ca href=\"#pluggy\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003ePluggy allows the framework to crate a \u003ccode\u003ehook_spec\u003c/code\u003e and plugin authors to\nimplement hooks with the \u003ccode\u003ehook_impl\u003c/code\u003e.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u0026#34;Define hook specs.\u0026#34;\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003epluggy\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# the framework\u0026#39;s definition\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ehook_spec\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epluggy\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eHookspecMarker\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;markata\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# the plugin author\u0026#39;s implementation\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ehook_impl\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epluggy\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eHookimplMarker\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;markata\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"creating-the-hookspec\"\u003ecreating the hookspec \u003ca href=\"#creating-the-hookspec\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIt’s an empty class.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eclass\u003c/span\u003e \u003cspan class=\"nc\"\u003eMarkataSpecs\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e    Namespace that defines all specifications for Load hooks.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e    glob -\u0026gt; load -\u0026gt; render -\u0026gt; save\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e    \u0026#34;\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nd\"\u003e@hook_spec\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003eglob\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003emarkata\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Markata\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u0026gt;\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u0026#34;Glob for files to load.\u0026#34;\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003epass\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nd\"\u003e@hook_spec\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003eload\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003emarkata\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Markata\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u0026gt;\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u0026#34;Load list of files.\u0026#34;\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003epass\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nd\"\u003e@hook_spec\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003epre_render\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003emarkata\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Markata\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u0026gt;\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u0026#34;Pre render content from loaded data.\u0026#34;\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003epass\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nd\"\u003e@hook_spec\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003erender\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003emarkata\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Markata\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u0026gt;\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u0026#34;Render content from loaded data.\u0026#34;\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003epass\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nd\"\u003e@hook_spec\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003epost_render\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003emarkata\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Markata\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u0026gt;\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u0026#34;Post render content from loaded data.\u0026#34;\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003epass\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nd\"\u003e@hook_spec\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003esave\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003emarkata\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Markata\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u0026gt;\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u0026#34;Save content from data.\u0026#34;\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003epass\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"creating-the-plugin-manager\"\u003ecreating the plugin manager \u003ca href=\"#creating-the-plugin-manager\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epm\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epluggy\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ePluginManager\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;markata\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epm\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eadd_hookspecs\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ehookspec\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eMarkataSpecs\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# register hooks\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003ehook\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003econfig\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ehooks\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003eplugin\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eimportlib\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eimport_module\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ehook\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003epm\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eregister\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eplugin\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"diskcache\"\u003eDiskcache \u003ca href=\"#diskcache\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/grantjenks/python-diskcache/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eDiskcache\u003c/a\u003e allows you\nto setup a persistent cache layer.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ecache\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eFanoutCache\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eMARKATA_CACHE_DIR\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003estatistics\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"kc\"\u003eTrue\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"make-a-key\"\u003emake a key \u003ca href=\"#make-a-key\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eTo set soemthing to cache we need a unique identifier.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003emake_hash\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"o\"\u003e*\u003c/span\u003e\u003cspan class=\"n\"\u003ekeys\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"nb\"\u003estr\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u0026gt;\u003c/span\u003e \u003cspan class=\"nb\"\u003estr\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003estr_keys\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nb\"\u003estr\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ekey\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003ekey\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003ekeys\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"n\"\u003ehashlib\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003emd5\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ejoin\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003estr_keys\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eencode\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;utf-8\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ehexdigest\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"make-a-key-1\"\u003emake a key \u003ca href=\"#make-a-key-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eFrom my plugins I cache anything that the function I run touches.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eplugin code\u003c/li\u003e\n\u003cli\u003earticle content\u003c/li\u003e\n\u003cli\u003earticle frontmatter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003epathlib\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003ePath\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ekey\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003emake_hash\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ePath\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"vm\"\u003e__file__\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eread_text\u003c/span\u003e\u003cspan class=\"p\"\u003e(),\u003c/span\u003e \u003cspan class=\"n\"\u003earticle\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003econtent\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003earticle\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003emetadata\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;title\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e])\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"accessing-the-cache\"\u003eaccessing the cache \u003ca href=\"#accessing-the-cache\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNow that we have a cache and a key we can ask the cache for values.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ehtml_from_cache\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003ecache\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eget\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ekey\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"if-its-not-yet-been-set\"\u003eif it’s not yet been set \u003ca href=\"#if-its-not-yet-been-set\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIf the content is not yet set or has expired, you will get \u003ccode\u003eNone\u003c/code\u003e back and need\nto create the value.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ehtml_from_cache\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003ecache\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eget\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ekey\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"n\"\u003ehtml_from_cache\u003c/span\u003e \u003cspan class=\"ow\"\u003eis\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003ehtml\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003emarkata\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003emd\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003econvert\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003earticle\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003econtent\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003ecache\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eset\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ekey\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ehtml\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eexpire\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"mi\"\u003e15\u003c/span\u003e \u003cspan class=\"o\"\u003e*\u003c/span\u003e \u003cspan class=\"mi\"\u003e24\u003c/span\u003e \u003cspan class=\"o\"\u003e*\u003c/span\u003e \u003cspan class=\"mi\"\u003e60\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eelse\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003ehtml\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003ehtml_from_cache\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"configuration\"\u003eConfiguration \u003ca href=\"#configuration\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ssato/python-anyconfig\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eanyconfig\u003c/a\u003e is a great tool\nto pull your config from generic config files.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003emarkta.toml\u003c/li\u003e\n\u003cli\u003emarkta.yaml\u003c/li\u003e\n\u003cli\u003emarkta.ini\u003c/li\u003e\n\u003cli\u003epyproject.toml\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"configuration-1\"\u003eConfiguration \u003ca href=\"#configuration-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAnyconfig needs a \u003ccode\u003epath\u003c/code\u003e, \u003ccode\u003eparser\u003c/code\u003e, and \u003ccode\u003ekeys\u003c/code\u003e.  The key is your tools\nprefix\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003eanyconfig\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eanyconfig\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eload\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003epath_specs\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ePath\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e \u003cspan class=\"o\"\u003e/\u003c/span\u003e \u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;markata.toml\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003eac_parser\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;toml\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003ekeys\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;markata\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e],\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"configuration-2\"\u003eConfiguration \u003ca href=\"#configuration-2\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eEach key in the config files used with \u003ccode\u003eanyconfig\u003c/code\u003e must be prefixed with\nthe tool’s name.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e# markata.toml\n[markata]\ndefault_cache_expire = 1209600\n\n[markata.auto_description.description]\nlen=160\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2 id=\"markata-was-born\"\u003eMarkata was born \u003ca href=\"#markata-was-born\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eA plugins all the way doen static site generator written in python.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e6 lifecycle methods\u003c/li\u003e\n\u003cli\u003e21 pre-defined plugins\u003c/li\u003e\n\u003cli\u003ecache store\u003c/li\u003e\n\u003cli\u003etoml based configuration\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"github-actions\"\u003eGitHub Actions \u003ca href=\"#github-actions\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eRendering the site inside of github actions with the cache is pretty\nstraightforward with these four steps.  Keying off of the configuration will\nbust the cache every time we change the configuration.  You can hack a full\nrebuild by changing anything inside of the configuration file.\u003c/p\u003e\n\u003ch2 id=\"github-actions-1\"\u003eGitHub Actions \u003ca href=\"#github-actions-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e- \u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eCache\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003euses\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eactions/cache@v2\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003ewith\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003epath\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003e.markata.cache\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003ekey\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003e${{ runner.os }}-${{ hashfiles(\u0026#39;markata.toml\u0026#39;) }}-markata\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e- \u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eSet up Python 3.8\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003euses\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eactions/setup-python@v1\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003ewith\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003epython-version\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"m\"\u003e3.8\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e- \u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003einstall markata\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003erun\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003epip install git+https://github.com/WaylonWalker/markata.git@develop python-twitter background\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"c\"\u003e# checksumdir\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e- \u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003erun markata\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003erun\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003emarkata --no-rich\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"github-actions-2\"\u003eGitHub Actions \u003ca href=\"#github-actions-2\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e \u003cspan class=\"n\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003einstall\u003c/span\u003e \u003cspan class=\"n\"\u003emarkata\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003erun\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003epip\u003c/span\u003e \u003cspan class=\"n\"\u003einstall\u003c/span\u003e \u003cspan class=\"n\"\u003egit\u003c/span\u003e\u003cspan class=\"o\"\u003e+\u003c/span\u003e\u003cspan class=\"n\"\u003ehttps\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"o\"\u003e//\u003c/span\u003e\u003cspan class=\"n\"\u003egithub\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ecom\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003eWaylonWalker\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003emarkata\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003egit\u003c/span\u003e\u003cspan class=\"nd\"\u003e@develop\u003c/span\u003e \u003cspan class=\"n\"\u003epython\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003etwitter\u003c/span\u003e \u003cspan class=\"n\"\u003ebackground\u003c/span\u003e \u003cspan class=\"c1\"\u003e# checksumdir\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003eNote: I run bleeding edge, don’t do that\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"netlify\"\u003eNetlify \u003ca href=\"#netlify\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI use deploy to netlify but any static site host would work.\u003c/p\u003e\n\u003ch2 id=\"netlify---cloudflare-pages\"\u003eNetlify -\u0026gt; Cloudflare Pages \u003ca href=\"#netlify---cloudflare-pages\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eSince Making the title I’ve moved to Cloudflare pages.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eNetlify is great, but I’m cheap and wanted analytics\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"results\"\u003eResults \u003ca href=\"#results\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003emarkata.dev\u003c/p\u003e\n\u003cp\u003eMarkdown to site, with seo, cover images, full works.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eseo/\u003ca href=\"/og/\" class=\"glossary-term\" title=\"OG is short for open graph, a set of standard meta tags that are used for social media sharing. This is what tells other websites how to describe and display...\"\u003eog\u003c/a\u003e tags\u003c/li\u003e\n\u003cli\u003ecover images\u003c/li\u003e\n\u003cli\u003efrontmatter cleansing\u003c/li\u003e\n\u003cli\u003efeeds\u003c/li\u003e\n\u003cli\u003erss\u003c/li\u003e\n\u003cli\u003ecli\u003c/li\u003e\n\u003cli\u003esitemap\u003c/li\u003e\n\u003cli\u003eheading links\u003c/li\u003e\n\u003cli\u003ebuild profiler\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"markatadev\"\u003eMarkata.dev \u003ca href=\"#markatadev\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIn early 2022 I packaged up my blog’s backend as a package for others to use.\u003c/p\u003e\n\u003ch2 id=\"markatadev-1\"\u003eMarkata.dev \u003ca href=\"#markatadev-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI now have several users running their site with what I have built\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMy buddy has a near clone of mine with 15 posts\u003c/li\u003e\n\u003cli\u003eTechdestructive\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"markatadev-2\"\u003eMarkata.dev \u003ca href=\"#markatadev-2\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eplugins all the way down\u003c/li\u003e\n\u003cli\u003euse the parts you want\u003c/li\u003e\n\u003cli\u003emodify to your liking\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"markatadev-3\"\u003eMarkata.dev \u003ca href=\"#markatadev-3\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIt lets you get started quick, write content early, and grow into your own platform\u003c/p\u003e\n\u003ch2 id=\"markatadev-4\"\u003eMarkata.dev \u003ca href=\"#markatadev-4\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e⚠ I’ts still very much beta\u003c/p\u003e\n\u003ch2 id=\"open-source\"\u003eOpen Source \u003ca href=\"#open-source\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre\u003e\u003ccode\u003e# install it for your application\npip install markata\n\n# try it out\npipx run markata build\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2 id=\"quickstart\"\u003equickstart \u003ca href=\"#quickstart\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre\u003e\u003ccode\u003emkdir pages\necho \u0026#39;# My First Post\u0026#39; \u0026gt; first-post.md\necho \u0026#39;# Hello World\u0026#39; \u0026gt; hello-world.md\n\u003c/code\u003e\u003c/pre\u003e\n\u003cpre\u003e\u003ccode\u003e# or if pipx is your thing\npix run markata build\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2 id=\"you-can-do-it-too\"\u003eYou can do it too \u003ca href=\"#you-can-do-it-too\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eDon’t worry about having the perfect post, just make something that is\nuseful to you, and others who will find it.\u003c/p\u003e\n\u003ch2 id=\"connect\"\u003eConnect \u003ca href=\"#connect\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://twitter.com/_WaylonWalker\"\u003etwitter\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.linkedin.com/in/waylonwalker/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.linkedin.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.linkedin.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eLinkedIn\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/WaylonWalker\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eGitHub\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://dev.to/waylonwalker\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/dev.to.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/dev.to.ico\" class=\"has-avatar  has-avatar-before\"\u003eDev.to\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.twitch.tv/waylonwalker\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.twitch.tv.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.twitch.tv.png\" class=\"has-avatar  has-avatar-before\"\u003etwitch\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"links\"\u003eLinks \u003ca href=\"#links\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ssato/python-anyconfig\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eanyconfig\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://copier.readthedocs.io/en/stable/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/copier.readthedocs.io.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/copier.readthedocs.io.png\" class=\"has-avatar  has-avatar-before\"\u003ecopier\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grantjenks/python-diskcache/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eDiskcache\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://ipython.org/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/ipython.org.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/ipython.org.png\" class=\"has-avatar  has-avatar-before\"\u003eipython\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://twitter.com/jbrancha\"\u003ejbrancha\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.swyx.io/learn-in-public/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.swyx.io.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.swyx.io.png\" class=\"has-avatar  has-avatar-before\"\u003eLearn In Public\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://pluggy.readthedocs.io/en/stable/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/pluggy.readthedocs.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/pluggy.readthedocs.io.ico\" class=\"has-avatar  has-avatar-before\"\u003ePluggy\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/joerick/pyinstrument\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003epyinstrument\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://facelessuser.github.io/pymdown-extensions/\"\u003epymdown-extensions\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eyeseast/python-frontmatter\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003epython-frontmatter\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.swyx.io/learn-in-public/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.swyx.io.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.swyx.io.png\" class=\"has-avatar  has-avatar-before\"\u003eswyx\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jbranchaud/til\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003etil repo\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\n## How I Continuously Deliver Content to my Blog with Markdown, GitHub, Python, and netlify\n\nContent at the speed of thought.\n\n\u003e well, as fast as I can type\n\n## Me\n\n* Mechanical Engineering\n* Data Engineering\n* Terminal Junkie\n\n## Ask Questions in slido\n\nPlease ask questions in slido # 983 911 | App Dev 1 Track\n\n## Slido Poll\n\nDo **you** have a personal blog / notes / website?\n\n\u003e * Yes - Static, built with python\n\u003e * Yes - I manage a server running python\n\u003e * Yes - Not python\n\u003e * No\n\nwe will circle back around in a few minutes\n\n## I'll give away my answer\n\n* Yes - Static, built with python\n\n## Slack Channel: #track-1-appdev\n\nIf you are in the slack give me a 🔥🔥🔥🔥🔥🔥🔥\n\nLet's light up slack 🔥🔥🔥🔥🔥🔥🔥\n\n## 4 parts\n\n* Why\n* My workflow\n* Under the hood\n* Open Source\n\n## Part 1 WHY\n\n## 2016\n\n## I want to own my content\n\nTwitter is a great networking tool, but it's rare to see anything more\nthan a few hours old.\n\n## I want to own my content\n\nNo one can take my domain or shut down the platform that my content is on.\n\n## Some of my Stats\n\n* 48 Google top 10 ranking pages\n* 6500 monthly clicks on google\n* 12k page monthly views\n\n\u003e from ahrefs and google search console\n\n## [Learn In Public](https://www.swyx.io/learn-in-public/)\n\nI'm creating learning exhaust.\n\n\u003e Inspired by [swyx](https://www.swyx.io/learn-in-public/)\n\u003e \u003chttps://www.swyx.io/learn-in-public/\u003e\n\n## from swyx\n\n\u003e Whatever your thing is, make the thing you wish you had found when you\n\u003e were learning. Don’t judge your results by “claps” or retweets or\n\u003e stars or upvotes - just talk to yourself from 3 months ago. I keep an\n\u003e almost-daily dev blog written for no one else but me.\n\n## Focus on content\n\nI could not do any of this if I was focused on Building rather than\nwriting.\n\n## Focus on content\n\nNo one needs elastic search navigate your first 50 posts.\n\n\u003e when you are starting\n\n## Focus on content\n\nNo one is going to make comments.\n\n\u003e when you are starting\n\n## Write for yourself\n\nYou are your biggest audience out of the gate.\n\n\u003e If you continue writing others like you will find you\n\n## Don't worry about the Trolls\n\nNo one is going to take your python keys away.\n\n## Slido Check\n\nPlease ask questions in slack/slido\n\n## Part 2 Workflow and tools\n\n\u003e To the meat of the talk\n\n1. Let's start by making a post\n2. then show how it works under the hood\n\n## If you take away anything\n\nFocus on content that you want to consume.\n\n## My Flow\n\n``` txt\n   ┌───────┐\n   │  TIL  │\n   └─┬─────┘\n     │\n     │  ┌─────────────┐\n     │  │             │\n     └─►│    Posts    │\n        │             │\n        └─┬───────────┘\n          │\n          │   ┌────────────────┐\n          └──►│    YouTube     │\n          │   └────────────────┘\n          │   ┌────────────────┐\n          └──►│    Conference  │\n              │    Talks       │\n              └────────────────┘\n```\n\n## Let's start with a Til\n\n_the process_\n\n### shoutout to @[jbrancha](https://twitter.com/jbrancha)\n\nCheck out his amazing [til repo](https://github.com/jbranchaud/til)\n\n\u003e If you ask google very many questions about git, you will end up\n\u003e finding him on the top\n\n## Copier\n\nI use [copier](https://copier.readthedocs.io/en/stable/) for single file\ntemplates.\n\n## Copier give me a new page\n\nHow I Present from the terminal with lookatme\nlookatme-slides\n\n``` bash\ncopier copy ~/.copier-templates/`ls ~/.copier-templates |\\\n    fzf --header $(pwd) --preview='tree ~/.copier-templates/{} |\\\n    lolcat'` . \\\n```\n\n## nvim open my file\n\n!TIP Once it starts getting uncomfortable to find posts, its nice to have\ngood shortcuts to get around.\n\n\u003e I have about 700 files on my blog to sift through\n\n## nvim open my file\n\n``` bash\nmarkata list --map path --filter 'templateKey==\"til\"' --sort date --reverse\n```\n\n``` vim\nnnoremap geil \u003ccmd\u003eTelescope find_files find_command=markata,list,--map,path,--filter,templateKey=='til',--sort,date,--reverse\u003ccr\u003e\n```\n\n## Paste in a snippet\n\nOften times I am working away on some sort of project, and I just need\nto save a snippet for a later post.\n\n## Write the content\n\nLater I come back and fill in the content.\n\n## git push\n\nI have a vim hotkey `gic` to commit my current file, and `gpp` to push\nit.\n\n## It's nearly live\n\nIt will be live within a few minutes.\n\n## Cross Post\n\nI've tried to cross post to more, but it really gets overwhelming.\n\n* Twitter\n* dev.to\n\n## Cross Post\n\nI have a plugin to convert my markdown to a more dev.to friendly format.\n\n## Slido Check\n\nLet'g grab a question from slack/slido\n\n## Part 3 How it's deployed\n\nIn March of 2021 I made the big switch from a javascript based framework\nto my own ssg.\n\n## I thought it would be easy\n\nThere are a bunch of open source libraries that do all the things I need\nan ssg to do.\n\n## Moving to python\n\nOne of the biggest selling points to moving back to python was that I\nuse it every day and know the ecosystem much better.\n\n* [ipython](https://ipython.org/)\n* [pyinstrument](https://github.com/joerick/pyinstrument)\n* breakpoint\n\n## Part 3 How it's deployed\n\n_word of caution_\n\nThis part might be a lot of code coming quick.\n\n* Show how it comes together\n* Link to the slides\n\n## Everything is markdown\n\n``` python\npymdown-extensions\npython-frontmatter\n```\n\n## frontmatter\n\nAll the metadata is defined in yaml frontmatter and read in with the\n[python-frontmatter](https://github.com/eyeseast/python-frontmatter)\nlibrary.\n\n``` yaml\n---\ntemplateKey: blog-post\ntags: ['webdev', 'meta' ]\ntitle: How I deploy my blog in 2022\ndate: 2021-10-29\npublished: false\n\n---\n```\n\n## setting up extensions\n\nmarkata supports [pymdown-extensions](https://facelessuser.github.io/pymdown-extensions/)\n\n``` python\nDEFAULT_MD_EXTENSIONS = [\n    \"markdown.extensions.toc\",\n    \"markdown.extensions.admonition\",\n    \"markdown.extensions.tables\",\n    \"markdown.extensions.md_in_html\",\n    \"pymdownx.magiclink\",\n    \"pymdownx.betterem\",\n    \"pymdownx.tilde\",\n    \"pymdownx.emoji\",\n    \"pymdownx.tasklist\",\n    \"pymdownx.superfences\",\n    \"pymdownx.highlight\",\n    \"pymdownx.inlinehilite\",\n    \"pymdownx.keys\",\n    \"pymdownx.saneheaders\",\n    \"codehilite\",\n]\n```\n\n## setting the markdown object\n\n``` python\nself.markdown_extensions = [\n    *DEFAULT_MD_EXTENSIONS,\n    *markdown_extensions\n]\nself.md = markdown.Markdown(\n    extensions=self.markdown_extensions\n)\n```\n\n## [Pluggy](https://pluggy.readthedocs.io/en/stable/)\n\n* comes from pytest\n* allows users to easily modify the framework to their liking\n\n\u003e one of the biggest reasons I started down this path is that I wanted\n\u003e to build my own plugins all the way down framework.\n\n## [Pluggy](https://pluggy.readthedocs.io/en/stable/)\n\n[Pluggy](https://pluggy.readthedocs.io/en/stable/) is what I use to\nimplement my lifecycle.\n\n* configure\n* glob\n* load\n* pre_render\n* render\n* post_render\n* save\n\n## Pluggy\n\nPluggy allows the framework to crate a `hook_spec` and plugin authors to\nimplement hooks with the `hook_impl`.\n\n``` python\n\"\"\"Define hook specs.\"\"\"\nimport pluggy\n\n\n# the framework's definition\nhook_spec = pluggy.HookspecMarker(\"markata\")\n\n# the plugin author's implementation\nhook_impl = pluggy.HookimplMarker(\"markata\")\n```\n\n## creating the hookspec\n\nIt's an empty class.\n\n``` python\nclass MarkataSpecs:\n    \"\"\"\n    Namespace that defines all specifications for Load hooks.\n\n    glob -\u003e load -\u003e render -\u003e save\n    \"\"\"\n\n    @hook_spec\n    def glob(self, markata: \"Markata\") -\u003e None:\n        \"\"\"Glob for files to load.\"\"\"\n        pass\n\n    @hook_spec\n    def load(self, markata: \"Markata\") -\u003e None:\n        \"\"\"Load list of files.\"\"\"\n        pass\n\n    @hook_spec\n    def pre_render(self, markata: \"Markata\") -\u003e None:\n        \"\"\"Pre render content from loaded data.\"\"\"\n        pass\n\n    @hook_spec\n    def render(self, markata: \"Markata\") -\u003e None:\n        \"\"\"Render content from loaded data.\"\"\"\n        pass\n\n    @hook_spec\n    def post_render(self, markata: \"Markata\") -\u003e None:\n        \"\"\"Post render content from loaded data.\"\"\"\n        pass\n\n    @hook_spec\n    def save(self, markata: \"Markata\") -\u003e None:\n        \"\"\"Save content from data.\"\"\"\n        pass\n```\n\n## creating the plugin manager\n\n``` python\npm = pluggy.PluginManager(\"markata\")\npm.add_hookspecs(hookspec.MarkataSpecs)\n\n# register hooks\nfor hook in config.hooks:\n    plugin = importlib.import_module(hook)\n    pm.register(plugin)\n```\n\n## Diskcache\n\n[Diskcache](https://github.com/grantjenks/python-diskcache/) allows you\nto setup a persistent cache layer.\n\n``` python\ncache = FanoutCache(self.MARKATA_CACHE_DIR, statistics=True)\n```\n\n## make a key\n\nTo set soemthing to cache we need a unique identifier.\n\n``` python\ndef make_hash(self, *keys: str) -\u003e str:\n    str_keys = [str(key) for key in keys]\n    return hashlib.md5(\"\".join(str_keys).encode(\"utf-8\")).hexdigest()\n```\n\n## make a key\n\nFrom my plugins I cache anything that the function I run touches.\n\n* plugin code\n* article content\n* article frontmatter\n\n``` python\nfrom pathlib import Path\n\nkey = make_hash(Path(__file__).read_text(), article.content, article.metadata['title'])\n```\n\n## accessing the cache\n\nNow that we have a cache and a key we can ask the cache for values.\n\n``` python\nhtml_from_cache = cache.get(key)\n```\n\n## if it's not yet been set\n\nIf the content is not yet set or has expired, you will get `None` back and need\nto create the value.\n\n``` python\nhtml_from_cache = cache.get(key)\nif html_from_cache is None:\n    html = markata.md.convert(article.content)\n    cache.set(key, html, expire=15 * 24 * 60)\nelse:\n    html = html_from_cache\n```\n\n## Configuration\n\n[anyconfig](https://github.com/ssato/python-anyconfig) is a great tool\nto pull your config from generic config files.\n\n* markta.toml\n* markta.yaml\n* markta.ini\n* pyproject.toml\n\n## Configuration\n\nAnyconfig needs a `path`, `parser`, and `keys`.  The key is your tools\nprefix\n\n``` python\nimport anyconfig\n\nanyconfig.load(\n            path_specs= (Path() / f\"markata.toml\"),\n            ac_parser= \"toml\",\n            keys= ['markata'],\n        )\n```\n\n## Configuration\n\nEach key in the config files used with `anyconfig` must be prefixed with\nthe tool's name.\n\n```\n# markata.toml\n[markata]\ndefault_cache_expire = 1209600\n\n[markata.auto_description.description]\nlen=160\n```\n\n## Markata was born\n\nA plugins all the way doen static site generator written in python.\n\n* 6 lifecycle methods\n* 21 pre-defined plugins\n* cache store\n* toml based configuration\n\n## GitHub Actions\n\nRendering the site inside of github actions with the cache is pretty\nstraightforward with these four steps.  Keying off of the configuration will\nbust the cache every time we change the configuration.  You can hack a full\nrebuild by changing anything inside of the configuration file.\n\n## GitHub Actions\n\n``` yaml\n\n- name: Cache\nuses: actions/cache@v2\nwith:\n    path: .markata.cache\n    key: ${{ runner.os }}-${{ hashfiles('markata.toml') }}-markata\n\n- name: Set up Python 3.8\nuses: actions/setup-python@v1\nwith:\n    python-version: 3.8\n\n- name: install markata\nrun: pip install git+https://github.com/WaylonWalker/markata.git@develop python-twitter background # checksumdir\n\n- name: run markata\nrun: markata --no-rich\n```\n\n## GitHub Actions\n\n``` python\n- name: install markata\nrun: pip install git+https://github.com/WaylonWalker/markata.git@develop python-twitter background # checksumdir\n```\n\n\u003e Note: I run bleeding edge, don't do that\n\n## Netlify\n\nI use deploy to netlify but any static site host would work.\n\n## Netlify -\u003e Cloudflare Pages\n\nSince Making the title I've moved to Cloudflare pages.\n\n\u003e Netlify is great, but I'm cheap and wanted analytics\n\n## Results\n\nmarkata.dev\n\nMarkdown to site, with seo, cover images, full works.\n\n* seo/og tags\n* cover images\n* frontmatter cleansing\n* feeds\n* rss\n* cli\n* sitemap\n* heading links\n* build profiler\n\n## Markata.dev\n\nIn early 2022 I packaged up my blog's backend as a package for others to use.\n\n## Markata.dev\n\nI now have several users running their site with what I have built\n\n* My buddy has a near clone of mine with 15 posts\n* Techdestructive\n\n## Markata.dev\n\n* plugins all the way down\n* use the parts you want\n* modify to your liking\n\n## Markata.dev\n\nIt lets you get started quick, write content early, and grow into your own platform\n\n## Markata.dev\n\n⚠ I'ts still very much beta\n\n## Open Source\n\n```\n# install it for your application\npip install markata\n\n# try it out\npipx run markata build\n```\n\n## quickstart\n\n```\nmkdir pages\necho '# My First Post' \u003e first-post.md\necho '# Hello World' \u003e hello-world.md\n```\n\n```\n# or if pipx is your thing\npix run markata build\n```\n\n## You can do it too\n\nDon't worry about having the perfect post, just make something that is\nuseful to you, and others who will find it.\n\n## Connect\n\n* [twitter](https://twitter.com/_WaylonWalker)\n* [LinkedIn](https://www.linkedin.com/in/waylonwalker/)\n* [GitHub](https://github.com/WaylonWalker)\n* [Dev.to](https://dev.to/waylonwalker)\n* [twitch](https://www.twitch.tv/waylonwalker)\n\n## Links\n\n* [anyconfig](https://github.com/ssato/python-anyconfig)\n* [copier](https://copier.readthedocs.io/en/stable/)\n* [Diskcache](https://github.com/grantjenks/python-diskcache/)\n* [ipython](https://ipython.org/)\n* [jbrancha](https://twitter.com/jbrancha)\n* [Learn In Public](https://www.swyx.io/learn-in-public/)\n* [Pluggy](https://pluggy.readthedocs.io/en/stable/)\n* [pyinstrument](https://github.com/joerick/pyinstrument)\n* [pymdown-extensions](https://facelessuser.github.io/pymdown-extensions/)\n* [python-frontmatter](https://github.com/eyeseast/python-frontmatter)\n* [swyx](https://www.swyx.io/learn-in-public/)\n* [til repo](https://github.com/jbranchaud/til)\n\n",
      "summary": "Content at the speed of thought.",
      "date_published": "2021-10-29T00:00:00Z",
      "date_modified": "2021-10-29T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/kedro-broken-urls/",
      "url": "https://go.waylonwalker.com/kedro-broken-urls/",
      "title": "Kedro-Broken-Urls",
      "content_html": "\u003ch2 id=\"broken-urls\"\u003eBroken Urls \u003ca href=\"#broken-urls\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://github.com/josephhaaga\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://github.com/josephhaaga\u003c/a\u003e) [ ] \u003ca href=\"https://example.com/file.h5\"\u003ehttps://example.com/file.h5\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://raw.githubusercontent.com/kedro-org/kedro/develop/static/img/pipeline_visualisation.png\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/raw.githubusercontent.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/raw.githubusercontent.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://raw.githubusercontent.com/kedro-org/kedro/develop/static/img/pipeline_visualisation.png\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://example.com/file.txt\"\u003ehttps://example.com/file.txt\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://github.com/jmespath/jmespath.py\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://github.com/jmespath/jmespath.py\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://github.com/tsanikgr\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://github.com/tsanikgr\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://example.com/file.csv\"\u003ehttps://example.com/file.csv\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://kedro.readthedocs.io/en/latest/04_user_guide/15_hooks.html\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/kedro.readthedocs.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/kedro.readthedocs.io.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://kedro.readthedocs.io/en/latest/04_user_guide/15_hooks.html\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://kedro.readthedocs.io/en/stable/07_extend_kedro/04_hooks.html\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/kedro.readthedocs.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/kedro.readthedocs.io.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://kedro.readthedocs.io/en/stable/07_extend_kedro/04_hooks.html\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://github.com/EbookFoundation/free-programming-books/blob/master/books/free-programming-books.md#python\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://github.com/EbookFoundation/free-programming-books/blob/master/books/free-programming-books.md#python\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://github.com/quantumblacklabs/private-kedro/blob/develop/docs/source/04_user_guide/04_data_catalog.md\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://github.com/quantumblacklabs/private-kedro/blob/develop/docs/source/04_user_guide/04_data_catalog.md\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"http://example.com/api/test\"\u003ehttp://example.com/api/test\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://example.com/file.parquet\"\u003ehttps://example.com/file.parquet\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://kedro.readthedocs.io/en/stable/11_faq/01_faq.html#how-do-i-upgrade-kedro\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/kedro.readthedocs.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/kedro.readthedocs.io.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://kedro.readthedocs.io/en/stable/11_faq/01_faq.html#how-do-i-upgrade-kedro\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://example.com/file.xlsx\"\u003ehttps://example.com/file.xlsx\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://www.datacamp.com/community/tutorials/docstrings-python\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.datacamp.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.datacamp.com.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://www.datacamp.com/community/tutorials/docstrings-python\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://github.com/mmchougule\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://github.com/mmchougule\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://example.com/file.tf\"\u003ehttps://example.com/file.tf\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://kedro.readthedocs.io/en/stable/04_user_guide/13_journal.html\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/kedro.readthedocs.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/kedro.readthedocs.io.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://kedro.readthedocs.io/en/stable/04_user_guide/13_journal.html\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://example.com/test_tf\"\u003ehttps://example.com/test_tf\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"http://example.com/test.csv\"\u003ehttp://example.com/test.csv\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://www.britishcouncilfoundation.id/en/english/articles/british-and-american-english\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.britishcouncilfoundation.id.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.britishcouncilfoundation.id.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://www.britishcouncilfoundation.id/en/english/articles/british-and-american-english\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://mattturck.com/data2020/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/mattturck.com.jpg\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/mattturck.com.jpg\" class=\"has-avatar  has-avatar-before\"\u003ehttps://mattturck.com/data2020/\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://example.com/file.yaml\"\u003ehttps://example.com/file.yaml\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://kedro.readthedocs.io/en/latest/04_user_guide/08_advanced_io.html#partitioned-dataset\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/kedro.readthedocs.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/kedro.readthedocs.io.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://kedro.readthedocs.io/en/latest/04_user_guide/08_advanced_io.html#partitioned-dataset\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://example.com/file\"\u003ehttps://example.com/file\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://example.com/file.json\"\u003ehttps://example.com/file.json\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://kedro.readthedocs.io/en/stable/04_user_guide/08_advanced_io.html#incremental-loads-with-incrementaldataset\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/kedro.readthedocs.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/kedro.readthedocs.io.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://kedro.readthedocs.io/en/stable/04_user_guide/08_advanced_io.html#incremental-loads-with-incrementaldataset\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://github.com/williamashfordQB\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://github.com/williamashfordQB\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://urbanlogiq.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/urbanlogiq.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/urbanlogiq.com.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://urbanlogiq.com/\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://kedro.readthedocs.io/en/stable/11_faq/01_faq.html#what-is-data-engineering-convention\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/kedro.readthedocs.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/kedro.readthedocs.io.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://kedro.readthedocs.io/en/stable/11_faq/01_faq.html#what-is-data-engineering-convention\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://github.com/Minyus\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://github.com/Minyus\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://example.com/file.png\"\u003ehttps://example.com/file.png\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://docs.python.org/3/library/json.html%5Cnfor\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/docs.python.org.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/docs.python.org.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://docs.python.org/3/library/json.html%5Cnfor\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://example.com/file.geojson\"\u003ehttps://example.com/file.geojson\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://github.com/kedro-org/kedro/tree/master/extras/datasets\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://github.com/kedro-org/kedro/tree/master/extras/datasets\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://kedro.readthedocs.io/en/latest/11_faq/02_architecture_overview.html#kedro-yml\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/kedro.readthedocs.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/kedro.readthedocs.io.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://kedro.readthedocs.io/en/latest/11_faq/02_architecture_overview.html#kedro-yml\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://github.com/mdomarsaleem\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://github.com/mdomarsaleem\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://kedro.readthedocs.io/en/stable/07_extend_kedro/04_hooks.html#registration-hooks\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/kedro.readthedocs.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/kedro.readthedocs.io.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://kedro.readthedocs.io/en/stable/07_extend_kedro/04_hooks.html#registration-hooks\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://kedro.readthedocs.io/en/stable/07_extend_kedro/01_custom_datasets.html\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/kedro.readthedocs.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/kedro.readthedocs.io.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://kedro.readthedocs.io/en/stable/07_extend_kedro/01_custom_datasets.html\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://acensi.eu/page/home\"\u003ehttps://acensi.eu/page/home\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://github.com/yhzqb\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://github.com/yhzqb\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://github.com/kaemo\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://github.com/kaemo\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://joblib.readthedocs.io/en/latest/generated/joblib.load.html%5CnAll\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/joblib.readthedocs.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/joblib.readthedocs.io.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://joblib.readthedocs.io/en/latest/generated/joblib.load.html%5CnAll\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://awards.ai/the-awards/previous-awards/the-4th-ai-award-winners/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/awards.ai.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/awards.ai.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://awards.ai/the-awards/previous-awards/the-4th-ai-award-winners/\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"http://example.com/file.txt\"\u003ehttp://example.com/file.txt\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://github.com/bnmerchant\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://github.com/bnmerchant\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://github.com/WaylonWalker\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://github.com/WaylonWalker\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://geopandas.org/reference/geopandas.GeoDataFrame.html\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/geopandas.org.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/geopandas.org.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://geopandas.org/reference/geopandas.GeoDataFrame.html\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://docs.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/term-collections/cloud-computing-terms\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/docs.microsoft.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/docs.microsoft.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://docs.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/term-collections/cloud-computing-terms\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://cdn.heapanalytics.com/js/heap-\"\u003ehttps://cdn.heapanalytics.com/js/heap-\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://github.com/quantumblacklabs/private-kedro/blob/master/kedro/templates/project/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://github.com/quantumblacklabs/private-kedro/blob/master/kedro/templates/project/\u003c/a\u003e*\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://example.com/file.fasta\"\u003ehttps://example.com/file.fasta\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://example.com/test.parquet\"\u003ehttps://example.com/test.parquet\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://raw.githubusercontent.com/kedro-org/kedro/master/static/img/kedro_gitflow.svg\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/raw.githubusercontent.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/raw.githubusercontent.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://raw.githubusercontent.com/kedro-org/kedro/master/static/img/kedro_gitflow.svg\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://bitbucket.org/%7B%7B/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/bitbucket.org.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/bitbucket.org.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://bitbucket.org/%7B%7B/\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://rackerlabs.github.io/docs-rackspace/tools/rtd-tables.html\"\u003ehttps://rackerlabs.github.io/docs-rackspace/tools/rtd-tables.html\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://kedro.readthedocs.io/en/latest/04_user_guide/04_data_catalog.html#specifying-the-location-of-the-dataset\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/kedro.readthedocs.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/kedro.readthedocs.io.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://kedro.readthedocs.io/en/latest/04_user_guide/04_data_catalog.html#specifying-the-location-of-the-dataset\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://www.linkedin.com/feed/update/urn:li:activity:6749338226403766272/updateEntityUrn=urn%3Ali%3Afs_feedUpdate%3A%28V2%2Curn%3Ali%3Aactivity%3A6749338226403766272%29\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.linkedin.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.linkedin.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://www.linkedin.com/feed/update/urn:li:activity:6749338226403766272/updateEntityUrn=urn%3Ali%3Afs_feedUpdate%3A%28V2%2Curn%3Ali%3Aactivity%3A6749338226403766272%29\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://example.com/file.pkl\"\u003ehttps://example.com/file.pkl\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://kedro.readthedocs.io/en/stable/04_user_guide/04_data_catalog.html#using-the-data-catalog-with-the-yaml-api\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/kedro.readthedocs.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/kedro.readthedocs.io.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://kedro.readthedocs.io/en/stable/04_user_guide/04_data_catalog.html#using-the-data-catalog-with-the-yaml-api\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://github.com/kedro-org/kedro/tree/master/extras\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://github.com/kedro-org/kedro/tree/master/extras\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://example.com/file.feather\"\u003ehttps://example.com/file.feather\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://kedro.readthedocs.io/en/stable/04_user_guide/04_data_catalog.html#transcoding-datasets\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/kedro.readthedocs.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/kedro.readthedocs.io.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://kedro.readthedocs.io/en/stable/04_user_guide/04_data_catalog.html#transcoding-datasets\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://kedro.readthedocs.io/en/stable/04_user_guide/04_data_catalog.html#transforming-datasets\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/kedro.readthedocs.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/kedro.readthedocs.io.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://kedro.readthedocs.io/en/stable/04_user_guide/04_data_catalog.html#transforming-datasets\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://kedro.readthedocs.io/en/stable/04_user_guide/11_ipython.html#ipython-loader\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/kedro.readthedocs.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/kedro.readthedocs.io.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://kedro.readthedocs.io/en/stable/04_user_guide/11_ipython.html#ipython-loader\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://joblib.readthedocs.io/en/latest/generated/joblib.dump.html%5CnAll\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/joblib.readthedocs.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/joblib.readthedocs.io.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://joblib.readthedocs.io/en/latest/generated/joblib.dump.html%5CnAll\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://kedro.readthedocs.io/en/stable/04_user_guide/03_configuration.html\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/kedro.readthedocs.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/kedro.readthedocs.io.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://kedro.readthedocs.io/en/stable/04_user_guide/03_configuration.html\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://kedro.readthedocs.io/en/stable/11_faq/01_faq.html#how-can-i-use-a-development-version-of-kedro\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/kedro.readthedocs.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/kedro.readthedocs.io.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://kedro.readthedocs.io/en/stable/11_faq/01_faq.html#how-can-i-use-a-development-version-of-kedro\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://github.com/intake/filesystem_spec\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://github.com/intake/filesystem_spec\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e \u003ca href=\"https://uktcawards.com/announcing-the-award-winners-for-2020/\"\u003ehttps://uktcawards.com/announcing-the-award-winners-for-2020/\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\n## Broken Urls\n\n- [ ] \u003chttps://github.com/josephhaaga\u003e) [ ] \u003chttps://example.com/file.h5\u003e\n- [ ] \u003chttps://raw.githubusercontent.com/kedro-org/kedro/develop/static/img/pipeline_visualisation.png\u003e\n- [ ] \u003chttps://example.com/file.txt\u003e\n- [ ] \u003chttps://github.com/jmespath/jmespath.py\u003e.\n- [ ] \u003chttps://github.com/tsanikgr\u003e)\n- [ ] \u003chttps://example.com/file.csv\u003e\n- [ ] \u003chttps://kedro.readthedocs.io/en/latest/04_user_guide/15_hooks.html\u003e\n- [ ] \u003chttps://kedro.readthedocs.io/en/stable/07_extend_kedro/04_hooks.html\u003e\n- [ ] \u003chttps://github.com/EbookFoundation/free-programming-books/blob/master/books/free-programming-books.md#python\u003e\n- [ ] \u003chttps://github.com/quantumblacklabs/private-kedro/blob/develop/docs/source/04_user_guide/04_data_catalog.md\u003e\n- [ ] \u003chttp://example.com/api/test\u003e\n- [ ] \u003chttps://example.com/file.parquet\u003e\n- [ ] \u003chttps://kedro.readthedocs.io/en/stable/11_faq/01_faq.html#how-do-i-upgrade-kedro\u003e\n- [ ] \u003chttps://example.com/file.xlsx\u003e\n- [ ] \u003chttps://www.datacamp.com/community/tutorials/docstrings-python\u003e\n- [ ] \u003chttps://github.com/mmchougule\u003e)\n- [ ] \u003chttps://example.com/file.tf\u003e\n- [ ] \u003chttps://kedro.readthedocs.io/en/stable/04_user_guide/13_journal.html\u003e\n- [ ] \u003chttps://example.com/test_tf\u003e\n- [ ] \u003chttp://example.com/test.csv\u003e\n- [ ] \u003chttps://www.britishcouncilfoundation.id/en/english/articles/british-and-american-english\u003e\n- [ ] \u003chttps://mattturck.com/data2020/\u003e\n- [ ] \u003chttps://example.com/file.yaml\u003e\n- [ ] \u003chttps://kedro.readthedocs.io/en/latest/04_user_guide/08_advanced_io.html#partitioned-dataset\u003e\n- [ ] \u003chttps://example.com/file\u003e\n- [ ] \u003chttps://example.com/file.json\u003e\n- [ ] \u003chttps://kedro.readthedocs.io/en/stable/04_user_guide/08_advanced_io.html#incremental-loads-with-incrementaldataset\u003e\n- [ ] \u003chttps://github.com/williamashfordQB\u003e\n- [ ] \u003chttps://urbanlogiq.com/\u003e\n- [ ] \u003chttps://kedro.readthedocs.io/en/stable/11_faq/01_faq.html#what-is-data-engineering-convention\u003e\n- [ ] \u003chttps://github.com/Minyus\u003e)\n- [ ] \u003chttps://example.com/file.png\u003e\n- [ ] \u003chttps://docs.python.org/3/library/json.html%5Cnfor\u003e\n- [ ] \u003chttps://example.com/file.geojson\u003e\n- [ ] \u003chttps://github.com/kedro-org/kedro/tree/master/extras/datasets\u003e\n- [ ] \u003chttps://kedro.readthedocs.io/en/latest/11_faq/02_architecture_overview.html#kedro-yml\u003e\n- [ ] \u003chttps://github.com/mdomarsaleem\u003e)\n- [ ] \u003chttps://kedro.readthedocs.io/en/stable/07_extend_kedro/04_hooks.html#registration-hooks\u003e\n- [ ] \u003chttps://kedro.readthedocs.io/en/stable/07_extend_kedro/01_custom_datasets.html\u003e\n- [ ] \u003chttps://acensi.eu/page/home\u003e\n- [ ] \u003chttps://github.com/yhzqb\u003e\n- [ ] \u003chttps://github.com/kaemo\u003e\n- [ ] \u003chttps://joblib.readthedocs.io/en/latest/generated/joblib.load.html%5CnAll\u003e\n- [ ] \u003chttps://awards.ai/the-awards/previous-awards/the-4th-ai-award-winners/\u003e\n- [ ] \u003chttp://example.com/file.txt\u003e\n- [ ] \u003chttps://github.com/bnmerchant\u003e\n- [ ] \u003chttps://github.com/WaylonWalker\u003e)\n- [ ] \u003chttps://geopandas.org/reference/geopandas.GeoDataFrame.html\u003e\n- [ ] \u003chttps://docs.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/term-collections/cloud-computing-terms\u003e).\n- [ ] \u003chttps://cdn.heapanalytics.com/js/heap-\u003e\n- [ ] \u003chttps://github.com/quantumblacklabs/private-kedro/blob/master/kedro/templates/project/\u003e*\n- [ ] \u003chttps://example.com/file.fasta\u003e\n- [ ] \u003chttps://example.com/test.parquet\u003e\n- [ ] \u003chttps://raw.githubusercontent.com/kedro-org/kedro/master/static/img/kedro_gitflow.svg\u003e\n- [ ] \u003chttps://bitbucket.org/%7B%7B/\u003e\n- [ ] \u003chttps://rackerlabs.github.io/docs-rackspace/tools/rtd-tables.html\u003e\n- [ ] \u003chttps://kedro.readthedocs.io/en/latest/04_user_guide/04_data_catalog.html#specifying-the-location-of-the-dataset\u003e\n- [ ] \u003chttps://www.linkedin.com/feed/update/urn:li:activity:6749338226403766272/updateEntityUrn=urn%3Ali%3Afs_feedUpdate%3A%28V2%2Curn%3Ali%3Aactivity%3A6749338226403766272%29\u003e\n- [ ] \u003chttps://example.com/file.pkl\u003e\n- [ ] \u003chttps://kedro.readthedocs.io/en/stable/04_user_guide/04_data_catalog.html#using-the-data-catalog-with-the-yaml-api\u003e\n- [ ] \u003chttps://github.com/kedro-org/kedro/tree/master/extras\u003e\n- [ ] \u003chttps://example.com/file.feather\u003e\n- [ ] \u003chttps://kedro.readthedocs.io/en/stable/04_user_guide/04_data_catalog.html#transcoding-datasets\u003e\n- [ ] \u003chttps://kedro.readthedocs.io/en/stable/04_user_guide/04_data_catalog.html#transforming-datasets\u003e\n- [ ] \u003chttps://kedro.readthedocs.io/en/stable/04_user_guide/11_ipython.html#ipython-loader\u003e\n- [ ] \u003chttps://joblib.readthedocs.io/en/latest/generated/joblib.dump.html%5CnAll\u003e\n- [ ] \u003chttps://kedro.readthedocs.io/en/stable/04_user_guide/03_configuration.html\u003e\n- [ ] \u003chttps://kedro.readthedocs.io/en/stable/11_faq/01_faq.html#how-can-i-use-a-development-version-of-kedro\u003e\n- [ ] \u003chttps://github.com/intake/filesystem_spec\u003e.\n- [ ] \u003chttps://uktcawards.com/announcing-the-award-winners-for-2020/\u003e\n",
      "summary": "[ ] ) [ ] - [ ] - [ ] - [ ] - [ ] ) - [ ] - [ ] - [ ] - [ ] - [ ] - [ ] - [ ] - [ ] - [ ] - [ ] - [ ] - [ ] . - [ ]",
      "date_published": "2021-10-20T00:00:00Z",
      "date_modified": "2021-10-20T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "kedro"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/vim-fundamentals-2/",
      "url": "https://go.waylonwalker.com/vim-fundamentals-2/",
      "title": "Notes for second vim-fundamentals course meetup",
      "content_html": "\u003cp\u003enewline\nanother\u003c/p\u003e\n\u003cp\u003eMahesh Subrajmanium Venkatachalam - Plugins | Installing a Theme\nHunter Phillips - Quickfix | Offline Ordering with getqflist\nAndrea Wackerle - Search \u0026amp; Replace | Macros\u003c/p\u003e\n\u003cp\u003eMatthew Fletcher - Registers | Advanced Motions Jump, Delete, \u0026amp; Select | Advanced Motions: Paste \u0026amp; Move\nNicholas Payne - My First Vim Plugin | What Makes a Good Plugin\nZev Averbach - Harpoon | Wrap up\u003c/p\u003e\n\u003ch2 id=\"plugin-manager\"\u003ePlugin-manager \u003ca href=\"#plugin-manager\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eget a plugin manager\u003c/li\u003e\n\u003cli\u003eunless you are going full lua, most people use vim-plug by the great junegunn\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/junegunn/vim-plug\" class=\"hoverlink  has-avatar has-avatar-before\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\"\u003ehttps://github.com/junegunn/vim-plug\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"install-pluggged\"\u003eInstall pluggged \u003ca href=\"#install-pluggged\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecurl -fLo ~/.vim/autoload/plug.vim --create-dirs \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"se\"\u003e\u003c/span\u003e    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003ecall\u003c/span\u003e \u003cspan class=\"nx\"\u003eplug\u003c/span\u003e#\u003cspan class=\"nx\"\u003ebegin\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;~/.vim/plugged\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003ePlug\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;junegunn/fzf\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e { \u003cspan class=\"s1\"\u003e\u0026#39;do\u0026#39;\u003c/span\u003e: { \u003cspan class=\"p\"\u003e-\u0026gt;\u003c/span\u003e \u003cspan class=\"nx\"\u003efzf\u003c/span\u003e#\u003cspan class=\"nx\"\u003einstall\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e } }\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003ePlug\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;junegunn/fzf.vim\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003ecall\u003c/span\u003e \u003cspan class=\"nx\"\u003eplug\u003c/span\u003e#\u003cspan class=\"nx\"\u003eend\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"install-plugins\"\u003eInstall Plugins \u003ca href=\"#install-plugins\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"nx\"\u003ePlugInstall\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"nx\"\u003ePlugClean\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"nx\"\u003ePlugUpdate\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"installing-a-theme\"\u003eInstalling a Theme \u003ca href=\"#installing-a-theme\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003einstall using plug\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003ePlug\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;ayu-theme/ayu-vim\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eset the theme\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eset\u003c/span\u003e \u003cspan class=\"nx\"\u003etermguicolors\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003eayucolor\u003c/span\u003e\u003cspan class=\"p\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;dark\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003ecolorscheme\u003c/span\u003e \u003cspan class=\"nx\"\u003eayu\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"quickfix\"\u003eQuickfix \u003ca href=\"#quickfix\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003esending things to the quickfix list\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"nx\"\u003egrep\u003c/span\u003e \u003cspan class=\"nx\"\u003eSOCKET_OPEN\u003c/span\u003e **/*.\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"nx\"\u003ec\u003c/span\u003e\\\u003cspan class=\"p\"\u003e|\u003c/span\u003e\u003cspan class=\"nx\"\u003eh\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003equickfix commands\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"nx\"\u003ecopen\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"nx\"\u003ecnext\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"nx\"\u003ecdo\u003c/span\u003e \u003cspan class=\"nx\"\u003es\u003c/span\u003e\u003cspan class=\"sr\"\u003e/vim/\u003c/span\u003e\u003cspan class=\"nx\"\u003envim\u003c/span\u003e/\u003cspan class=\"nx\"\u003eg\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"some-remaps-to-consider\"\u003eSome remaps to consider \u003ca href=\"#some-remaps-to-consider\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003ennoremap\u003c/span\u003e \u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nx\"\u003eC\u003c/span\u003e\u003cspan class=\"p\"\u003e-\u003c/span\u003e\u003cspan class=\"nx\"\u003ek\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e :\u003cspan class=\"nx\"\u003ecnext\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nx\"\u003eCR\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003ennoremap\u003c/span\u003e \u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nx\"\u003eC\u003c/span\u003e\u003cspan class=\"p\"\u003e-\u003c/span\u003e\u003cspan class=\"nx\"\u003ej\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e :\u003cspan class=\"nx\"\u003ecprev\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nx\"\u003eCR\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003ennoremap\u003c/span\u003e \u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nx\"\u003eC\u003c/span\u003e\u003cspan class=\"p\"\u003e-\u003c/span\u003e\u003cspan class=\"nx\"\u003eE\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e :\u003cspan class=\"nx\"\u003ecopen\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nx\"\u003eCR\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"offline-ordering-with-getqflist\"\u003eOffline Ordering with getqflist \u003ca href=\"#offline-ordering-with-getqflist\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"search--replace\"\u003eSearch \u0026amp; Replace \u003ca href=\"#search--replace\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWalk through example.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecurl https://raw.githubusercontent.com/ThePrimeagen/vim-fundamentals/master/course-website/lessons/exercise-3-search-and-replace.md \u0026gt; exercise.md \u003cspan class=\"o\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e vim exercise.md\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"macros\"\u003eMacros \u003ca href=\"#macros\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMacro Pressure\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecurl https://raw.githubusercontent.com/ThePrimeagen/vim-fundamentals/master/course-website/lessons/exercise-4-macros.md \u0026gt; exercise.md \u003cspan class=\"o\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e vim exercise.md\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nnewline\nanother\n\nMahesh Subrajmanium Venkatachalam - Plugins | Installing a Theme\nHunter Phillips - Quickfix | Offline Ordering with getqflist\nAndrea Wackerle - Search \u0026 Replace | Macros\n\nMatthew Fletcher - Registers | Advanced Motions Jump, Delete, \u0026 Select | Advanced Motions: Paste \u0026 Move\nNicholas Payne - My First Vim Plugin | What Makes a Good Plugin\nZev Averbach - Harpoon | Wrap up\n\n## Plugin-manager\n\n- get a plugin manager\n- unless you are going full lua, most people use vim-plug by the great junegunn\n\n[https://github.com/junegunn/vim-plug](https://github.com/junegunn/vim-plug){.hoverlink}\n\n## Install pluggged\n\n```bash\ncurl -fLo ~/.vim/autoload/plug.vim --create-dirs \\\n    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim\n```\n\n```vim\ncall plug#begin('~/.vim/plugged')\n\nPlug 'junegunn/fzf', { 'do': { -\u003e fzf#install() } }\nPlug 'junegunn/fzf.vim'\n\ncall plug#end()\n```\n\n## Install Plugins\n\n```vim\n:PlugInstall\n:PlugClean\n:PlugUpdate\n```\n\n## Installing a Theme\n\ninstall using plug\n\n```vim\nPlug 'ayu-theme/ayu-vim'\n```\n\nset the theme\n\n```vim\nset termguicolors\nlet ayucolor=\"dark\"\ncolorscheme ayu\n```\n\n## Quickfix\n\nsending things to the quickfix list\n\n```vim\n:grep SOCKET_OPEN **/*.(c\\|h)\n```\n\nquickfix commands\n\n```vim\n:copen\n:cnext\n:cdo s/vim/nvim/g\n```\n\n## Some remaps to consider\n\n```vim\nnnoremap \u003cC-k\u003e :cnext\u003cCR\u003e\nnnoremap \u003cC-j\u003e :cprev\u003cCR\u003e\nnnoremap \u003cC-E\u003e :copen\u003cCR\u003e\n```\n\n## Offline Ordering with getqflist\n\n## Search \u0026 Replace\n\nWalk through example.\n\n```bash\ncurl https://raw.githubusercontent.com/ThePrimeagen/vim-fundamentals/master/course-website/lessons/exercise-3-search-and-replace.md \u003e exercise.md \u0026\u0026 vim exercise.md\n```\n\n## Macros\n\n- Macro Pressure\n\n```bash\ncurl https://raw.githubusercontent.com/ThePrimeagen/vim-fundamentals/master/course-website/lessons/exercise-4-macros.md \u003e exercise.md \u0026\u0026 vim exercise.md\n```\n",
      "summary": "newline another",
      "date_published": "2021-08-27T22:40:45Z",
      "date_modified": "2021-08-27T22:40:45Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "vim"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/kedro-pipeline-create/",
      "url": "https://go.waylonwalker.com/kedro-pipeline-create/",
      "title": "Kedro Pipeline Create",
      "content_html": "\u003cp\u003eKedro pipeline create is a command that makes creating new\npipelines much easier.  There is much less boilerplate that\nyou need to write yourself.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://youtu.be/HtyIKqlEoNw\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/youtu.be.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/youtu.be.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://youtu.be/HtyIKqlEoNw\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"creating-a-new-pipeline\"\u003ecreating a new pipeline \u003ca href=\"#creating-a-new-pipeline\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe kedro cli comes with the following command to scaffold out\nnew pipelines.  Note that it will not add it to your\n\u003ccode\u003epipeline_registry\u003c/code\u003e, to be covered later, you will need to add\nit yourself.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ekedro pipeline create example\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"results\"\u003eresults \u003ca href=\"#results\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe directory structure that it creates looks like this.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003etree src/kedro_conda/pipelines\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esrc/kedro_conda/pipelines\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e├── __init__.py\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e└── example\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    ├── __init__.py\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    ├── nodes.py\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    ├── pipeline.py\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    └── README.md\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nKedro pipeline create is a command that makes creating new\npipelines much easier.  There is much less boilerplate that\nyou need to write yourself.\n\nhttps://youtu.be/HtyIKqlEoNw\n\n## creating a new pipeline\n\nThe kedro cli comes with the following command to scaffold out\nnew pipelines.  Note that it will not add it to your\n`pipeline_registry`, to be covered later, you will need to add\nit yourself.\n\n``` bash\nkedro pipeline create example\n```\n\n## results\n\nThe directory structure that it creates looks like this.\n\n``` bash\ntree src/kedro_conda/pipelines\nsrc/kedro_conda/pipelines\n├── __init__.py\n└── example\n    ├── __init__.py\n    ├── nodes.py\n    ├── pipeline.py\n    └── README.md\n```\n",
      "summary": "Kedro pipeline create is a command that makes creating new pipelines much easier. There is much less boilerplate that you need to write yourself.",
      "date_published": "2021-08-22T22:40:45Z",
      "date_modified": "2021-08-22T22:40:45Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "kedro",
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/notify-send/",
      "url": "https://go.waylonwalker.com/notify-send/",
      "title": "notify-send",
      "content_html": "\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003exinput float \u003cspan class=\"k\"\u003e$(\u003c/span\u003exinput list --id-only \u003cspan class=\"s2\"\u003e\u0026#34;AT Translated Set 2 keyboard\u0026#34;\u003c/span\u003e\u003cspan class=\"k\"\u003e)\u003c/span\u003e \u003cspan class=\"p\"\u003e|\u003c/span\u003e notify-send \u003cspan class=\"s2\"\u003e\u0026#34;laptop keeb floated\u0026#34;\u003c/span\u003e -i ~/Pictures/8bitcc.png\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n\n``` bash\nxinput float $(xinput list --id-only \"AT Translated Set 2 keyboard\") | notify-send \"laptop keeb floated\" -i ~/Pictures/8bitcc.png\n```\n",
      "date_published": "2021-08-01T10:33:17Z",
      "date_modified": "2021-08-01T10:33:17Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "cli",
        "linux"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/steam/rc-plane-3/",
      "url": "https://go.waylonwalker.com/steam/rc-plane-3/",
      "title": "RC Plane 3",
      "content_html": "\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\u003cdiv class=\"game-header\"\u003e\n  \u003ca href=\"https://cdn.akamai.steamstatic.com/steam/apps/670500/library_600x900.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.akamai.steamstatic.com/steam/apps/670500/library_600x900.jpg\" alt=\"RC Plane 3 box art\" loading=\"lazy\" onerror=\"this.src=\u0026#39;https://cdn.akamai.steamstatic.com/steam/apps/670500/header.jpg\u0026#39;\"/ data-glightbox=\"description: RC Plane 3 box art\"\u003e\u003c/a\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eRC Plane 3\u003c/h1\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Game Progress \u0026amp; Stats\u003c/h2\u003e\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"achievements\"\u003eAchievements \u003ca href=\"#achievements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 4.44%\"\u003e\n        4.44%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e2/45 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"playtime\"\u003ePlaytime \u003ca href=\"#playtime\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e454.6h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3 id=\"last-played\"\u003eLast Played \u003ca href=\"#last-played\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2021-07-02\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n Unlocked Achievements (2)\u003c/h2\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/5dbaa08da42b1e41921e6a37c8326e946682501e.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/5dbaa08da42b1e41921e6a37c8326e946682501e.jpg\" alt=\"The first Rodeo!\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The first Rodeo!\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe first Rodeo!\u003c/strong\u003e\u003cbr/\u003e\n    You\u0026#39;ve had your first rodeo!\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: April 10, 2019\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/89b6f915ca134bb8c2d470b6e9dcba7564d81ebc.jpg\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/89b6f915ca134bb8c2d470b6e9dcba7564d81ebc.jpg\" alt=\"Landing Master\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Landing Master\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLanding Master\u003c/strong\u003e\u003cbr/\u003e\n    Get a 3 stars landing evaluation.\u003cbr/\u003e\n    \u003csmall\u003eUnlocked: November 07, 2019\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"\u003e\u003c/path\u003e\n\u003c/svg\u003e\n\u003cp\u003eLocked Achievements (43)\u003c/p\u003e\u003c/h2\u003e\u003cp\u003e\u003c/p\u003e\n\u003cdiv class=\"achievements-grid\"\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Cpt. Braveheart\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cpt. Braveheart\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCpt. Braveheart\u003c/strong\u003e\u003cbr/\u003e\n    Fly through all the electric pylons across the map\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"I want to believe\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: I want to believe\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI want to believe\u003c/strong\u003e\u003cbr/\u003e\n    Trust no one\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Another Hero\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Another Hero\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAnother Hero\u003c/strong\u003e\u003cbr/\u003e\n    The show must go on\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Tuscany Explorer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tuscany Explorer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTuscany Explorer\u003c/strong\u003e\u003cbr/\u003e\n    Land and unlock all airstrips in scenario\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Riviera Explorer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Riviera Explorer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRiviera Explorer\u003c/strong\u003e\u003cbr/\u003e\n    Land and unlock all airstrips in scenario\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Fearless Pilot\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Fearless Pilot\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFearless Pilot\u003c/strong\u003e\u003cbr/\u003e\n    Prove yourself a fearless pilot!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Gas discover\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Gas discover\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGas discover\u003c/strong\u003e\u003cbr/\u003e\n    Fly near Gas Stations\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Rookie Pilot\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Rookie Pilot\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRookie Pilot\u003c/strong\u003e\u003cbr/\u003e\n    The first step in your RC pilot career\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Rodeo Acolyte\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Rodeo Acolyte\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRodeo Acolyte\u003c/strong\u003e\u003cbr/\u003e\n    Catch 100 coins in a row!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Rodeo Master\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Rodeo Master\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRodeo Master\u003c/strong\u003e\u003cbr/\u003e\n    Reach 200.000 points in one game!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Your first air travel\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Your first air travel\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYour first air travel\u003c/strong\u003e\u003cbr/\u003e\n    Complete the first airbus mission.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"You\u0026#39;re a survivor\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: You\u0026#39;re a survivor\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou\u0026#39;re a survivor\u003c/strong\u003e\u003cbr/\u003e\n    Survive to a malfunction of your airbus.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Airlines Idol\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Airlines Idol\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAirlines Idol\u003c/strong\u003e\u003cbr/\u003e\n    Complete the airbus campaign.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"The first run\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The first run\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe first run\u003c/strong\u003e\u003cbr/\u003e\n    First time in road run\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Tuscan Air Racer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tuscan Air Racer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTuscan Air Racer\u003c/strong\u003e\u003cbr/\u003e\n    Complete the tuscan race series.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Riviera Air Racer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Riviera Air Racer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRiviera Air Racer\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Rivera race series.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Cellar Master\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cellar Master\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCellar Master\u003c/strong\u003e\u003cbr/\u003e\n    Fly inside Wine Cellars\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Formation Flight 2 Players\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Formation Flight 2 Players\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFormation Flight 2 Players\u003c/strong\u003e\u003cbr/\u003e\n    15 seconds of 2 players flying in formation\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Formation Flight 3 Players\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Formation Flight 3 Players\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFormation Flight 3 Players\u003c/strong\u003e\u003cbr/\u003e\n    15 seconds of 3 players flying in formation\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Formation Flight 4 Players\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Formation Flight 4 Players\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFormation Flight 4 Players\u003c/strong\u003e\u003cbr/\u003e\n    15 seconds of 4 players flying in formation\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"10 Multiplayer Kills\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: 10 Multiplayer Kills\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e10 Multiplayer Kills\u003c/strong\u003e\u003cbr/\u003e\n    Shoot down 10 player in multiplayer combat\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"100 Multiplayer Kills\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: 100 Multiplayer Kills\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e100 Multiplayer Kills\u003c/strong\u003e\u003cbr/\u003e\n    Shoot down 100 player in multiplayer combat\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"500 Kills - THE LEGEND\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: 500 Kills - THE LEGEND\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e500 Kills - THE LEGEND\u003c/strong\u003e\u003cbr/\u003e\n    Shoot down 500 player in multiplayer combat\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"The Chase\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: The Chase\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Chase\u003c/strong\u003e\u003cbr/\u003e\n    Do more than 250000 pts in Road Runner (tuscany)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Junior Carrier Pilot\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Junior Carrier Pilot\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJunior Carrier Pilot\u003c/strong\u003e\u003cbr/\u003e\n    Land once on a aircraft carrier in arcade mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Carrier Pilot\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Carrier Pilot\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCarrier Pilot\u003c/strong\u003e\u003cbr/\u003e\n    Land once on a aircraft carrier in realistic mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Carrier Ace Arcade\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Carrier Ace Arcade\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCarrier Ace Arcade\u003c/strong\u003e\u003cbr/\u003e\n    Land 50 times on a aircraft carrier in arcade mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Carrier Ace\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Carrier Ace\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCarrier Ace\u003c/strong\u003e\u003cbr/\u003e\n    Land 50 times on a aircraft carrier in realistic mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Maverick\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Maverick\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaverick\u003c/strong\u003e\u003cbr/\u003e\n    Buzz the aircraft carrier control tower\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Combat Surival 1st wave\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Combat Surival 1st wave\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCombat Surival 1st wave\u003c/strong\u003e\u003cbr/\u003e\n    Survive 1 wave of enemies\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Combat Surival 5 waves\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Combat Surival 5 waves\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCombat Surival 5 waves\u003c/strong\u003e\u003cbr/\u003e\n    Survive 5 waves of enemies\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Combat Surival 15 waves\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Combat Surival 15 waves\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCombat Surival 15 waves\u003c/strong\u003e\u003cbr/\u003e\n    Survive 15 waves of enemies\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Brody\u0026#39;s fate\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Brody\u0026#39;s fate\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBrody\u0026#39;s fate\u003c/strong\u003e\u003cbr/\u003e\n    Being attacked by a sea monster.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Indiana\u0026#39;s\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Indiana\u0026#39;s\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIndiana\u0026#39;s\u003c/strong\u003e\u003cbr/\u003e\n    Unveil the mistery of Riviera.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Etruscan Tomb Raider\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Etruscan Tomb Raider\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEtruscan Tomb Raider\u003c/strong\u003e\u003cbr/\u003e\n    Gain access to the secret Etruscan chamber\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Glider License\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Glider License\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGlider License\u003c/strong\u003e\u003cbr/\u003e\n    Complete your first flight!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Cpt. Braveheart (Arcade)\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Cpt. Braveheart (Arcade)\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCpt. Braveheart (Arcade)\u003c/strong\u003e\u003cbr/\u003e\n    Fly through electric pylons across the map\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Another Hero (Arcade)\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Another Hero (Arcade)\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAnother Hero (Arcade)\u003c/strong\u003e\u003cbr/\u003e\n    The show must go on\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Tuscan Air Racer (Arcade)\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Tuscan Air Racer (Arcade)\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTuscan Air Racer (Arcade)\u003c/strong\u003e\u003cbr/\u003e\n    Complete the tuscan race series.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Riviera Air Racer (Arcade)\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Riviera Air Racer (Arcade)\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRiviera Air Racer (Arcade)\u003c/strong\u003e\u003cbr/\u003e\n    Complete the Rivera race series.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Canyon Explorer\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Canyon Explorer\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCanyon Explorer\u003c/strong\u003e\u003cbr/\u003e\n    Land and unlock all airstrips in scenario\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Canyon Hero\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Canyon Hero\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCanyon Hero\u003c/strong\u003e\u003cbr/\u003e\n    Prove yourself a fearless pilot!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003ca href=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Canyon Miner\" class=\"achievement-icon glightbox\"/ data-glightbox=\"description: Canyon Miner\"\u003e\u003c/a\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCanyon Miner\u003c/strong\u003e\u003cbr/\u003e\n    Unveil the mistery of canyon.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003cem\u003eGame data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003cstyle\u003e\n.game-header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  gap: 30px;\n  margin: 30px 0;\n  padding: 20px;\n  background: #1a1a1a;\n  border-radius: 12px;\n  border: 1px solid #333;\n}\n\n.game-header img {\n  width: 200px;\n  height: auto;\n  border-radius: 8px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n  border: 1px solid #333;\n  flex-shrink: 0;\n}\n\n.game-info {\n  flex: 1;\n}\n\n.game-info h1 {\n  margin: 0 0 15px 0;\n  color: #fff;\n  font-size: 2em;\n}\n\n.game-info p {\n  margin: 0 0 15px 0;\n  color: #ccc;\n  line-height: 1.5;\n}\n\n.game-info .developers {\n  font-size: 0.9em;\n  color: #999;\n}\n\n.game-links {\n  margin-top: 20px;\n}\n\n.game-links a {\n  display: inline-block;\n  margin-right: 15px;\n  padding: 8px 12px;\n  background: #2a2a2a;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 0.9em;\n  transition: background-color 0.2s ease;\n}\n\n.game-links a:hover {\n  background: #3a3a3a;\n  color: #4caf50;\n}\n\n.steam-game-progress {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.stats-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 20px;\n  margin: 20px 0;\n}\n\n.stat-card {\n  background: #2a2a2a;\n  padding: 20px;\n  border-radius: 8px;\n  text-align: center;\n  border: 1px solid #444;\n}\n\n.stat-card h3 {\n  margin: 0 0 15px 0;\n  color: #4caf50;\n  font-size: 1.1em;\n}\n\n.stat-value {\n  font-size: 2em;\n  font-weight: bold;\n  color: #fff;\n  margin: 10px 0;\n}\n\n.stat-card p {\n  margin: 10px 0 0 0;\n  color: #ccc;\n  font-size: 0.9em;\n}\n\n.progress-bar {\n  width: 100%;\n  height: 24px;\n  background: #2a2a2a;\n  border-radius: 12px;\n  overflow: hidden;\n  margin: 10px 0;\n  position: relative;\n}\n\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4caf50, #8bc34a);\n  border-radius: 12px;\n  transition: width 0.3s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: white;\n  font-weight: bold;\n  font-size: 12px;\n}\n\n.achievements-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));\n  gap: 8px;\n  margin: 20px 0;\n}\n\n.achievement-item {\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  transition: transform 0.2s ease;\n}\n\n.achievement-item:hover {\n  transform: scale(1.1);\n  z-index: 10;\n}\n\n.achievement-icon-wrapper {\n}\n\n.achievement-icon {\n    margin:0;\n    padding:0;\n  border-radius: 6px;\n  border: 2px solid #444;\n  transition: border-color 0.2s ease;\n}\n\n.achievement-item.unlocked .achievement-icon {\n  border-color: #4caf50;\n  box-shadow: 0 0 10px rgba(76, 175, 80, 0.3);\n}\n\n.achievement-item.locked .achievement-icon {\n  filter: grayscale(100%);\n  opacity: 0.6;\n}\n\n.achievement-tooltip {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  background: rgba(0, 0, 0, 0.95);\n  color: white;\n  padding: 8px 12px;\n  border-radius: 6px;\n  font-size: 12px;\n  white-space: nowrap;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 0.2s ease;\n  z-index: 100;\n  margin-bottom: 5px;\n  max-width: 200px;\n  white-space: normal;\n  text-align: center;\n}\n\n.achievement-item:hover .achievement-tooltip {\n  opacity: 1;\n}\n\n.achievement-section {\n  background: #1a1a1a;\n  border-radius: 8px;\n  padding: 20px;\n  margin: 20px 0;\n  border: 1px solid #333;\n}\n\n.achievement-section h2 {\n  margin-top: 0;\n  color: #fff;\n}\n\u003c/style\u003e\n\n\u003cdiv class=\"game-header\"\u003e\n  \u003cimg src=\"https://cdn.akamai.steamstatic.com/steam/apps/670500/library_600x900.jpg\" alt=\"RC Plane 3 box art\" loading=\"lazy\" \n       onerror=\"this.src='https://cdn.akamai.steamstatic.com/steam/apps/670500/header.jpg'\"\u003e\n  \u003cdiv class=\"game-info\"\u003e\n    \u003ch1\u003eRC Plane 3\u003c/h1\u003e\n    \n    \n\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"steam-game-progress\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\" /\u003e\n\u003c/svg\u003e\n Game Progress \u0026 Stats\u003c/h2\u003e\n\n\u003cdiv class=\"stats-grid\"\u003e\n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eAchievements\u003c/h3\u003e\n    \u003cdiv class=\"progress-bar\"\u003e\n      \u003cdiv class=\"progress-fill\" style=\"width: 4.44%\"\u003e\n        4.44%\n      \u003c/div\u003e\n    \u003c/div\u003e\n    \u003cp\u003e2/45 Unlocked\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003ePlaytime\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e454.6h\u003c/div\u003e\n    \u003cp\u003eTotal hours played\u003c/p\u003e\n  \u003c/div\u003e\n  \n  \u003cdiv class=\"stat-card\"\u003e\n    \u003ch3\u003eLast Played\u003c/h3\u003e\n    \u003cdiv class=\"stat-value\"\u003e2021-07-02\u003c/div\u003e\n    \u003cp\u003eMost recent session\u003c/p\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18.75h-9m9 0a3 3 0 0 1 3 3h-15a3 3 0 0 1 3-3m9 0v-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.872m5.007 0H9.497m5.007 0a7.454 7.454 0 0 1-.982-3.172M9.497 14.25a7.454 7.454 0 0 0 .981-3.172M5.25 4.236c-.982.143-1.954.317-2.916.52A6.003 6.003 0 0 0 7.73 9.728M5.25 4.236V4.5c0 2.108.966 3.99 2.48 5.228M5.25 4.236V2.721C7.456 2.41 9.71 2.25 12 2.25c2.291 0 4.545.16 6.75.47v1.516M7.73 9.728a6.726 6.726 0 0 0 2.748 1.35m8.272-6.842V4.5c0 2.108-.966 3.99-2.48 5.228m2.48-5.492a46.32 46.32 0 0 1 2.916.52 6.003 6.003 0 0 1-5.395 4.972m0 0a6.726 6.726 0 0 1-2.749 1.35m0 0a6.772 6.772 0 0 1-3.044 0\" /\u003e\n\u003c/svg\u003e\n Unlocked Achievements (2)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/5dbaa08da42b1e41921e6a37c8326e946682501e.jpg\" alt=\"The first Rodeo!\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe first Rodeo!\u003c/strong\u003e\u003cbr\u003e\n    You've had your first rodeo!\u003cbr\u003e\n    \u003csmall\u003eUnlocked: April 10, 2019\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item unlocked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/89b6f915ca134bb8c2d470b6e9dcba7564d81ebc.jpg\" alt=\"Landing Master\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eLanding Master\u003c/strong\u003e\u003cbr\u003e\n    Get a 3 stars landing evaluation.\u003cbr\u003e\n    \u003csmall\u003eUnlocked: November 07, 2019\u003c/small\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cdiv class=\"achievement-section\"\u003e\n\u003ch2\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-6\"\u003e\n  \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\" /\u003e\n\u003c/svg\u003e\n\n Locked Achievements (43)\u003c/h2\u003e\n\n\u003cdiv class=\"achievements-grid\"\u003e\n\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Cpt. Braveheart\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCpt. Braveheart\u003c/strong\u003e\u003cbr\u003e\n    Fly through all the electric pylons across the map\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"I want to believe\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eI want to believe\u003c/strong\u003e\u003cbr\u003e\n    Trust no one\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Another Hero\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAnother Hero\u003c/strong\u003e\u003cbr\u003e\n    The show must go on\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Tuscany Explorer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTuscany Explorer\u003c/strong\u003e\u003cbr\u003e\n    Land and unlock all airstrips in scenario\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Riviera Explorer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRiviera Explorer\u003c/strong\u003e\u003cbr\u003e\n    Land and unlock all airstrips in scenario\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Fearless Pilot\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFearless Pilot\u003c/strong\u003e\u003cbr\u003e\n    Prove yourself a fearless pilot!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Gas discover\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGas discover\u003c/strong\u003e\u003cbr\u003e\n    Fly near Gas Stations\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Rookie Pilot\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRookie Pilot\u003c/strong\u003e\u003cbr\u003e\n    The first step in your RC pilot career\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Rodeo Acolyte\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRodeo Acolyte\u003c/strong\u003e\u003cbr\u003e\n    Catch 100 coins in a row!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Rodeo Master\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRodeo Master\u003c/strong\u003e\u003cbr\u003e\n    Reach 200.000 points in one game!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Your first air travel\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYour first air travel\u003c/strong\u003e\u003cbr\u003e\n    Complete the first airbus mission.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"You're a survivor\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eYou're a survivor\u003c/strong\u003e\u003cbr\u003e\n    Survive to a malfunction of your airbus.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Airlines Idol\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAirlines Idol\u003c/strong\u003e\u003cbr\u003e\n    Complete the airbus campaign.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"The first run\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe first run\u003c/strong\u003e\u003cbr\u003e\n    First time in road run\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Tuscan Air Racer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTuscan Air Racer\u003c/strong\u003e\u003cbr\u003e\n    Complete the tuscan race series.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Riviera Air Racer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRiviera Air Racer\u003c/strong\u003e\u003cbr\u003e\n    Complete the Rivera race series.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Cellar Master\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCellar Master\u003c/strong\u003e\u003cbr\u003e\n    Fly inside Wine Cellars\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Formation Flight 2 Players\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFormation Flight 2 Players\u003c/strong\u003e\u003cbr\u003e\n    15 seconds of 2 players flying in formation\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Formation Flight 3 Players\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFormation Flight 3 Players\u003c/strong\u003e\u003cbr\u003e\n    15 seconds of 3 players flying in formation\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Formation Flight 4 Players\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eFormation Flight 4 Players\u003c/strong\u003e\u003cbr\u003e\n    15 seconds of 4 players flying in formation\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"10 Multiplayer Kills\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e10 Multiplayer Kills\u003c/strong\u003e\u003cbr\u003e\n    Shoot down 10 player in multiplayer combat\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"100 Multiplayer Kills\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e100 Multiplayer Kills\u003c/strong\u003e\u003cbr\u003e\n    Shoot down 100 player in multiplayer combat\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"500 Kills - THE LEGEND\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003e500 Kills - THE LEGEND\u003c/strong\u003e\u003cbr\u003e\n    Shoot down 500 player in multiplayer combat\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"The Chase\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eThe Chase\u003c/strong\u003e\u003cbr\u003e\n    Do more than 250000 pts in Road Runner (tuscany)\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Junior Carrier Pilot\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eJunior Carrier Pilot\u003c/strong\u003e\u003cbr\u003e\n    Land once on a aircraft carrier in arcade mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Carrier Pilot\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCarrier Pilot\u003c/strong\u003e\u003cbr\u003e\n    Land once on a aircraft carrier in realistic mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Carrier Ace Arcade\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCarrier Ace Arcade\u003c/strong\u003e\u003cbr\u003e\n    Land 50 times on a aircraft carrier in arcade mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Carrier Ace\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCarrier Ace\u003c/strong\u003e\u003cbr\u003e\n    Land 50 times on a aircraft carrier in realistic mode\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Maverick\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eMaverick\u003c/strong\u003e\u003cbr\u003e\n    Buzz the aircraft carrier control tower\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Combat Surival 1st wave\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCombat Surival 1st wave\u003c/strong\u003e\u003cbr\u003e\n    Survive 1 wave of enemies\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Combat Surival 5 waves\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCombat Surival 5 waves\u003c/strong\u003e\u003cbr\u003e\n    Survive 5 waves of enemies\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Combat Surival 15 waves\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCombat Surival 15 waves\u003c/strong\u003e\u003cbr\u003e\n    Survive 15 waves of enemies\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Brody's fate\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eBrody's fate\u003c/strong\u003e\u003cbr\u003e\n    Being attacked by a sea monster.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Indiana's\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eIndiana's\u003c/strong\u003e\u003cbr\u003e\n    Unveil the mistery of Riviera.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Etruscan Tomb Raider\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eEtruscan Tomb Raider\u003c/strong\u003e\u003cbr\u003e\n    Gain access to the secret Etruscan chamber\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Glider License\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eGlider License\u003c/strong\u003e\u003cbr\u003e\n    Complete your first flight!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Cpt. Braveheart (Arcade)\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCpt. Braveheart (Arcade)\u003c/strong\u003e\u003cbr\u003e\n    Fly through electric pylons across the map\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Another Hero (Arcade)\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eAnother Hero (Arcade)\u003c/strong\u003e\u003cbr\u003e\n    The show must go on\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Tuscan Air Racer (Arcade)\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eTuscan Air Racer (Arcade)\u003c/strong\u003e\u003cbr\u003e\n    Complete the tuscan race series.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Riviera Air Racer (Arcade)\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eRiviera Air Racer (Arcade)\u003c/strong\u003e\u003cbr\u003e\n    Complete the Rivera race series.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Canyon Explorer\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCanyon Explorer\u003c/strong\u003e\u003cbr\u003e\n    Land and unlock all airstrips in scenario\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Canyon Hero\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCanyon Hero\u003c/strong\u003e\u003cbr\u003e\n    Prove yourself a fearless pilot!\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"achievement-item locked\"\u003e\n  \u003cspan class=\"achievement-icon-wrapper\"\u003e\n    \u003cimg src=\"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/670500/\" alt=\"Canyon Miner\" class=\"achievement-icon\"\u003e\n  \u003c/span\u003e\n  \u003cdiv class=\"achievement-tooltip\"\u003e\n    \u003cstrong\u003eCanyon Miner\u003c/strong\u003e\u003cbr\u003e\n    Unveil the mistery of canyon.\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\n---\n\n*Game data automatically imported from Steam. Achievement links will be created as individual posts when achievements are unlocked.*\n",
      "summary": "Steam achievements and progress for RC Plane 3 - 4.44% complete with 2/45 achievements unlocked.",
      "date_published": "2021-07-02T00:00:00Z",
      "date_modified": "2021-07-02T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "steam-game",
        "steam",
        "game",
        "rc-plane-3"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/ubuntu/",
      "url": "https://go.waylonwalker.com/ubuntu/",
      "title": "Copy and Paste on Linux",
      "content_html": "\u003cp\u003eThese are the notes that I used as I set up my first ever ubuntu desktop.\u003c/p\u003e\n\u003ch2 id=\"gnome-tweaks\"\u003egnome-tweaks \u003ca href=\"#gnome-tweaks\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo apt install gnome-tweaks\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"nordix-gtk-theme\"\u003enordix gtk theme \u003ca href=\"#nordix-gtk-theme\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI ran this, but have no idea if it had any effect as the theme did\nnot show up until I relogged.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003egsettings set org.gnome.desktop.wm.preferences theme Nordic\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eWhat I think actuagnome terminal showing scrollbar in tmuxlly worked was\u003c/p\u003e\n\u003ch2 id=\"emoji-support\"\u003eemoji support \u003ca href=\"#emoji-support\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eOne thing that I really missed quite early from windows was the emoji virtual\nkeyboard. I like being able to quickly toss in those emoji that give just a\nbit of a visual cue 🔥, ⚠️,, 🎉, 🦄, 💜.\u003c/p\u003e\n\u003ch3 id=\"installation\"\u003einstallation \u003ca href=\"#installation\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eI found an application called emote. that seems to do everything I need it to\nin the snap store. Installation is a typicall snap install.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003esudo snap install emote\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3 id=\"default-keybinding\"\u003edefault keybinding \u003ca href=\"#default-keybinding\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eThe application came with a default keybinding \u003ccode\u003ectrl+alt+e\u003c/code\u003e, but I could never remember it.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ectrl+alt+e\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3 id=\"windows-keybinding\"\u003eWindows keybinding \u003ca href=\"#windows-keybinding\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eOld habits are hard to break, I opened up the gnome settings and set a hotkey\nto \u003ccode\u003esuper+;\u003c/code\u003e to run the command emote.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eSuper+;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3 id=\"how-it-works\"\u003eHow it works \u003ca href=\"#how-it-works\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003ch2 id=\"get-that-dock-outta-here\"\u003eGet that dock outta here \u003ca href=\"#get-that-dock-outta-here\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI tried to disable the dock and it didn’t immediately work for me,\nlikely because I needed to relog. I really have no use for the\ndock though as I will always open applications with a hotkey or\nsuper + search.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo apt remove gnome-shell-extension-ubuntu-dock\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"terminal-one-dark-theme\"\u003eTerminal One Dark Theme \u003ca href=\"#terminal-one-dark-theme\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI don’t stress too hard on themes, I just want something halfway consistent and\njust works. I typically have just used a semi-popular theme “one-dark”\neverywhere. This was the default theme in GitHub’s Atom text editor that I\nnever used. I only care that it looks good and is popular enought that it just\nexists everywhere.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ebash -c \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"k\"\u003e$(\u003c/span\u003ecurl -fsSL https://raw.githubusercontent.com/denysdovhan/gnome-terminal-one/master/one-dark.sh\u003cspan class=\"k\"\u003e)\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"terminal-menu-and-scrollbar\"\u003eTerminal menu and scrollbar \u003ca href=\"#terminal-menu-and-scrollbar\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI found these to be ugly ans unnecessary so I turned them off. You can access\nall the menu items by right clicking on the terminal anyways, so there is no\nreason to let it take up any screen real estate.\u003c/p\u003e\n\u003ch3 id=\"hiding-the-scrollbar\"\u003eHiding the scrollbar \u003ca href=\"#hiding-the-scrollbar\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://images.waylonwalker.com/gnome-terminal-hide-scrollbar.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://images.waylonwalker.com/gnome-terminal-hide-scrollbar.png\" alt=\"hide the scrollbar\"/ data-glightbox=\"description: hide the scrollbar\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch3 id=\"hiding-the-menubar\"\u003eHiding the menubar \u003ca href=\"#hiding-the-menubar\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://images.waylonwalker.com/gnome-terminal-hide-menubar.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://images.waylonwalker.com/gnome-terminal-hide-menubar.png\" alt=\"hide the menubar\"/ data-glightbox=\"description: hide the menubar\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"vim-clipboard\"\u003evim clipboard \u003ca href=\"#vim-clipboard\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo apt install xsel\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eset\u003c/span\u003e \u003cspan class=\"nx\"\u003eclipboard\u003c/span\u003e\u003cspan class=\"p\"\u003e+=\u003c/span\u003e\u003cspan class=\"nx\"\u003eunnamedplus\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"tmux-clipboard\"\u003etmux clipboard \u003ca href=\"#tmux-clipboard\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Copy and Paste on Linux\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003ebind\u003c/span\u003e -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel \u003cspan class=\"s2\"\u003e\u0026#34;xclip -i -f -selection primary | xclip -i -selection clipboard\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eset-option -s set-clipboard off\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ebind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel \u003cspan class=\"s2\"\u003e\u0026#34;xclip -selection clipboard -i\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"hotkeys\"\u003eHotkeys \u003ca href=\"#hotkeys\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eKey\u003c/th\u003e\n\u003cth\u003eDesc\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003esuper+j\u003c/td\u003e\n\u003ctd\u003emove to workspace below\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003esuper+k\u003c/td\u003e\n\u003ctd\u003emove to workspace above\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003esuper+shift+j\u003c/td\u003e\n\u003ctd\u003emove window one workspace down\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003esuper+shift+k\u003c/td\u003e\n\u003ctd\u003emove window one workspace up\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eKey\u003c/th\u003e\n\u003cth\u003eCommand\u003c/th\u003e\n\u003cth\u003eDesc\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003eSuper+e\u003c/td\u003e\n\u003ctd\u003enautilus\u003c/td\u003e\n\u003ctd\u003eFile Browser\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eSuper+Shift+p\u003c/td\u003e\n\u003ctd\u003eArea Screenshot\u003c/td\u003e\n\u003ctd\u003egnome-screenshot -a\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eSuper+Alt+p\u003c/td\u003e\n\u003ctd\u003eArea Screenshot to clipboard\u003c/td\u003e\n\u003ctd\u003egnome-screenshot -ac\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eSuper+e\u003c/td\u003e\n\u003ctd\u003enautilus\u003c/td\u003e\n\u003ctd\u003eFile Browser\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3 id=\"screenshots\"\u003escreenshots \u003ca href=\"#screenshots\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eI am constantly taking screenshots for my daily workflow, on Windows I had it\nsetup to both send to the clipboard and store in a screenshots directory.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# take a screenshot and Store it as a file.\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egnome-screenshot -a\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# take a screenshot and send it to the clipboard\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egnome-screenshot -ac\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"obs\"\u003eobs \u003ca href=\"#obs\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eAs od Jun 2021 the version of obs-studio installed using the instructions in\ntheir wiki is out of date. I had success getting the latest version, which\nsupports virtual webcams, using snap.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo snap install obs-studio\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"virtual-webcam\"\u003evirtual webcam \u003ca href=\"#virtual-webcam\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eAfter getting the latest version of obs-studio whixh supports virtual webcam it\nstill did not start. After some searching I found that updating v4l2loopback\nresolved the issue.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo apt purge v4l2loopback-dkms\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit clone https://github.com/umlaeute/v4l2loopback.git ~/git/v4l2loopback/\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003ecd\u003c/span\u003e ~/git/v4l2loopback/\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emake\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo make install\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo modprobe v4l2loopback \u003cspan class=\"nv\"\u003edevices\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"m\"\u003e1\u003c/span\u003e \u003cspan class=\"nv\"\u003eexclusive_caps\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"m\"\u003e1\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo depmod -a\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo modprobe v4l2loopback \u003cspan class=\"nv\"\u003evideo_nr\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"m\"\u003e10\u003c/span\u003e \u003cspan class=\"nv\"\u003ecard_label\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;OBS Video Source\u0026#34;\u003c/span\u003e \u003cspan class=\"nv\"\u003eexclusive_caps\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"m\"\u003e1\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"i3\"\u003ei3 \u003ca href=\"#i3\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI decided to give i3 a try, simply apt install it, then it shows up under the\ngear icon at the login screen after a reboot. At this point I don’t think I am\nready for i3. I have just changed a bunch of stuff in my workflow and honestly\nI got a decent gnome config setup in like 10 minutes.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo apt install i3\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "These are the notes that I used as I set up my first ever ubuntu desktop.\n## gnome-tweaks\n\n```bash\nsudo apt install gnome-tweaks\n\n```\n\n## nordix gtk theme\n\nI ran this, but have no idea if it had any effect as the theme did\nnot show up until I relogged.\n\n```\ngsettings set org.gnome.desktop.wm.preferences theme Nordic\n```\n\nWhat I think actuagnome terminal showing scrollbar in tmuxlly worked was\n\n## emoji support\n\nOne thing that I really missed quite early from windows was the emoji virtual\nkeyboard. I like being able to quickly toss in those emoji that give just a\nbit of a visual cue 🔥, ⚠️,, 🎉, 🦄, 💜.\n\n### installation\n\nI found an application called emote. that seems to do everything I need it to\nin the snap store. Installation is a typicall snap install.\n\n```\nsudo snap install emote\n```\n\n### default keybinding\n\nThe application came with a default keybinding `ctrl+alt+e`, but I could never remember it.\n\n```\nctrl+alt+e\n```\n\n### Windows keybinding\n\nOld habits are hard to break, I opened up the gnome settings and set a hotkey\nto `super+;` to run the command emote.\n\n```\nSuper+;\n```\n\n### How it works\n\n## Get that dock outta here\n\nI tried to disable the dock and it didn't immediately work for me,\nlikely because I needed to relog. I really have no use for the\ndock though as I will always open applications with a hotkey or\nsuper + search.\n\n```bash\nsudo apt remove gnome-shell-extension-ubuntu-dock\n```\n\n## Terminal One Dark Theme\n\nI don't stress too hard on themes, I just want something halfway consistent and\njust works. I typically have just used a semi-popular theme \"one-dark\"\neverywhere. This was the default theme in GitHub's Atom text editor that I\nnever used. I only care that it looks good and is popular enought that it just\nexists everywhere.\n\n```bash\nbash -c \"$(curl -fsSL https://raw.githubusercontent.com/denysdovhan/gnome-terminal-one/master/one-dark.sh)\"\n```\n\n## Terminal menu and scrollbar\n\nI found these to be ugly ans unnecessary so I turned them off. You can access\nall the menu items by right clicking on the terminal anyways, so there is no\nreason to let it take up any screen real estate.\n\n### Hiding the scrollbar\n\n![hide the scrollbar](https://images.waylonwalker.com/gnome-terminal-hide-scrollbar.png)\n\n### Hiding the menubar\n\n![hide the menubar](https://images.waylonwalker.com/gnome-terminal-hide-menubar.png)\n\n## vim clipboard\n\n```bash\nsudo apt install xsel\n```\n\n```vim\nset clipboard+=unnamedplus\n```\n\n## tmux clipboard\n\n```bash\n# Copy and Paste on Linux\nbind -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel \"xclip -i -f -selection primary | xclip -i -selection clipboard\"\nset-option -s set-clipboard off\nbind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel \"xclip -selection clipboard -i\"\n```\n\n## Hotkeys\n\n| Key           | Desc                           |\n| ------------- | ------------------------------ |\n| super+j       | move to workspace below        |\n| super+k       | move to workspace above        |\n| super+shift+j | move window one workspace down |\n| super+shift+k | move window one workspace up   |\n\n| Key           | Command                      | Desc                 |\n| ------------- | ---------------------------- | -------------------- |\n| Super+e       | nautilus                     | File Browser         |\n| Super+Shift+p | Area Screenshot              | gnome-screenshot -a  |\n| Super+Alt+p   | Area Screenshot to clipboard | gnome-screenshot -ac |\n| Super+e       | nautilus                     | File Browser         |\n\n### screenshots\n\nI am constantly taking screenshots for my daily workflow, on Windows I had it\nsetup to both send to the clipboard and store in a screenshots directory.\n\n```bash\n# take a screenshot and Store it as a file.\ngnome-screenshot -a\n\n# take a screenshot and send it to the clipboard\ngnome-screenshot -ac\n```\n\n### obs\n\nAs od Jun 2021 the version of obs-studio installed using the instructions in\ntheir wiki is out of date. I had success getting the latest version, which\nsupports virtual webcams, using snap.\n\n```bash\nsudo snap install obs-studio\n```\n\n### virtual webcam\n\nAfter getting the latest version of obs-studio whixh supports virtual webcam it\nstill did not start. After some searching I found that updating v4l2loopback\nresolved the issue.\n\n```bash\nsudo apt purge v4l2loopback-dkms\ngit clone https://github.com/umlaeute/v4l2loopback.git ~/git/v4l2loopback/\ncd ~/git/v4l2loopback/\nmake\nsudo make install\n\nsudo modprobe v4l2loopback devices=1 exclusive_caps=1\n```\n\n```bash\nsudo depmod -a\nsudo modprobe v4l2loopback video_nr=10 card_label=\"OBS Video Source\" exclusive_caps=1\n```\n\n## i3\n\nI decided to give i3 a try, simply apt install it, then it shows up under the\ngear icon at the login screen after a reboot. At this point I don't think I am\nready for i3. I have just changed a bunch of stuff in my workflow and honestly\nI got a decent gnome config setup in like 10 minutes.\n\n```bash\nsudo apt install i3\n```\n",
      "summary": "These are the notes that I used as I set up my first ever ubuntu desktop.",
      "date_published": "2021-06-25T20:50:45Z",
      "date_modified": "2021-06-25T20:50:45Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux",
        "tmux"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/git-settings/",
      "url": "https://go.waylonwalker.com/git-settings/",
      "title": "How I configure git",
      "content_html": "\u003cp\u003e\u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003eGit\u003c/a\u003e can be a bit tricky to get configured correctly.  I often stumble into\nconfig issues weeks after setting up a new machine that I did not even notice.\nThese are my notes to remind me how I configure git.\u003c/p\u003e\n\u003ch2 id=\"identity\"\u003eIdentity \u003ca href=\"#identity\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit config --global user.name \u003cspan class=\"s2\"\u003e\u0026#34;John Doe\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit config --global user.email johndoe@example.com\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"rebase\"\u003erebase \u003ca href=\"#rebase\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"editor\"\u003eeditor \u003ca href=\"#editor\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit config --global core.editor nvim\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"default-branch\"\u003edefault branch \u003ca href=\"#default-branch\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit config --global init.defaultBranch main\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"push-to-current-bransh-wihtout-setting-upstream\"\u003epush to current bransh wihtout setting upstream \u003ca href=\"#push-to-current-bransh-wihtout-setting-upstream\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit config --global push.default current\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"autostash\"\u003eAutostash \u003ca href=\"#autostash\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit config pull.rebase \u003cspan class=\"nb\"\u003etrue\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit config rebase.autoStash \u003cspan class=\"nb\"\u003etrue\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nGit can be a bit tricky to get configured correctly.  I often stumble into\nconfig issues weeks after setting up a new machine that I did not even notice.\nThese are my notes to remind me how I configure git.\n\n## Identity\n\n``` bash\ngit config --global user.name \"John Doe\"\ngit config --global user.email johndoe@example.com\n```\n\n## rebase\n\n\n## editor\n\n\n``` bash\ngit config --global core.editor nvim\n```\n\n\n## default branch\n\n\n``` bash\ngit config --global init.defaultBranch main\n```\n\n## push to current bransh wihtout setting upstream\n\n``` bash\ngit config --global push.default current\n```\n\n## Autostash\n\n``` bash\ngit config pull.rebase true\ngit config rebase.autoStash true\n```\n",
      "summary": "Git can be a bit tricky to get configured correctly. I often stumble into config issues weeks after setting up a new machine that I did not even notice....",
      "date_published": "2021-06-25T20:50:45Z",
      "date_modified": "2021-06-25T20:50:45Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "git",
        "linux"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/3dkeeb-corne/",
      "url": "https://go.waylonwalker.com/3dkeeb-corne/",
      "title": "My experience with a new 3dkeeb corne",
      "content_html": "\u003ch2 id=\"specs\"\u003especs \u003ca href=\"#specs\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"first-days-typing\"\u003efirst days typing \u003ca href=\"#first-days-typing\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"first-days-working\"\u003efirst days working \u003ca href=\"#first-days-working\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWhat did I sign myself up for? If the lower typing speed with alpha characters\nwas not enough throw in special characters and keybings I setup long ago and\nonly remember by muscle memory.  I have so far killed my tmux pane instead of\nzooming in (m-x instead of m-z), killed my zsh line instead of paste to the end\nof a command (c-c instead of c-v).\u003c/p\u003e\n\u003ch2 id=\"via\"\u003eVIA \u003ca href=\"#via\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre\u003e\u003ccode\u003eLT(1, KC_ENT)\nLT(1, KC_TAB)\nLT(1, KC_SHIFT)\n\nMT(MOD_RSHFT, KC_ESC)\nMT(MOD_HYPR, KC_GESC)\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2 id=\"setting-up-qmk-cli\"\u003esetting up qmk cli \u003ca href=\"#setting-up-qmk-cli\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003econda create -n qmk \u003cspan class=\"nv\"\u003epython\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e3.8 -y\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eqmk config compile.keyboard\u003cspan class=\"o\"\u003e=\u003c/span\u003ecrkbd/rev1 compile.keymap\u003cspan class=\"o\"\u003e=\u003c/span\u003edefault\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eqmk config user.keyboard\u003cspan class=\"o\"\u003e=\u003c/span\u003ecrkbd/rev1 user.keymap\u003cspan class=\"o\"\u003e=\u003c/span\u003edefault\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# This will clone into ~/qmk_firmware\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# you can change this behavior by setting QMK_HOME\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# export QMK_HOME=~/custo_qmk_home_dir\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eqmk setup\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# qmk setup took 10 minutes on my machine with wsl over a mobile network\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eqmk setup\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eImportError: Unable to load any of the following libraries:libhidapi-hidraw.so libhidapi-hidraw.so.0 libhidapi-libusb.so libhidapi-libusb.so.0 libhidapi-iohidmanager.so libhidapi-iohidmanager.so.0 libhidapi.dylib hidapi.dll libhidapi-0.dll\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epip install hidapi\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo apt-get install python-dev libusb-1.0-0-dev libudev-dev\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo apt-get update\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo apt-get install python-dev libusb-1.0-0-dev libudev-dev\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eqmk setup\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# https://pypi.org/project/hid/\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eapt install libhidapi-hidraw0\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eqmk setup\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo apt-get install avrdude\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"inspiration\"\u003einspiration \u003ca href=\"#inspiration\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ehttps\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"o\"\u003e//\u003c/span\u003e\u003cspan class=\"n\"\u003egithub\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ecom\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003emarkstos\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003eqmk_firmware\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003etree\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003emarkstos\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003ekeyboards\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003ecrkbd\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003ekeymaps\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003emarkstos\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n\n## specs\n\n## first days typing\n\n\n## first days working\n\nWhat did I sign myself up for? If the lower typing speed with alpha characters\nwas not enough throw in special characters and keybings I setup long ago and\nonly remember by muscle memory.  I have so far killed my tmux pane instead of\nzooming in (m-x instead of m-z), killed my zsh line instead of paste to the end\nof a command (c-c instead of c-v).\n\n\n## VIA\n\n```\nLT(1, KC_ENT)\nLT(1, KC_TAB)\nLT(1, KC_SHIFT)\n\nMT(MOD_RSHFT, KC_ESC)\nMT(MOD_HYPR, KC_GESC)\n\n```\n\n## setting up qmk cli\n\n``` bash\nconda create -n qmk python=3.8 -y\n\nqmk config compile.keyboard=crkbd/rev1 compile.keymap=default\nqmk config user.keyboard=crkbd/rev1 user.keymap=default\n\n# This will clone into ~/qmk_firmware\n# you can change this behavior by setting QMK_HOME\n# export QMK_HOME=~/custo_qmk_home_dir\nqmk setup\n\n# qmk setup took 10 minutes on my machine with wsl over a mobile network\n```\n\n``` bash\nqmk setup\nImportError: Unable to load any of the following libraries:libhidapi-hidraw.so libhidapi-hidraw.so.0 libhidapi-libusb.so libhidapi-libusb.so.0 libhidapi-iohidmanager.so libhidapi-iohidmanager.so.0 libhidapi.dylib hidapi.dll libhidapi-0.dll\n\npip install hidapi\nsudo apt-get install python-dev libusb-1.0-0-dev libudev-dev\nsudo apt-get update\nsudo apt-get install python-dev libusb-1.0-0-dev libudev-dev\nqmk setup\n# https://pypi.org/project/hid/\napt install libhidapi-hidraw0\nqmk setup\nsudo apt-get install avrdude\n```\n\n## inspiration\n\n``` python\nhttps://github.com/markstos/qmk_firmware/tree/markstos/keyboards/crkbd/keymaps/markstos\n```\n",
      "summary": "What did I sign myself up for? If the lower typing speed with alpha characters was not enough throw in special characters and keybings I setup long ago and...",
      "date_published": "2021-06-21T14:27:19Z",
      "date_modified": "2021-06-21T14:27:19Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "keeb"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/manage-many-git-repos/",
      "url": "https://go.waylonwalker.com/manage-many-git-repos/",
      "title": "Manage many git repos with ease",
      "content_html": "\u003cp\u003emu-repo\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epip install mu\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emu status --short\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emu rev-parse --abbrev-ref HEAD\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emu diff --color\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emu diff -U0 --color\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nmu-repo\n\n```bash\npip install mu\n\nmu status --short\nmu rev-parse --abbrev-ref HEAD\nmu diff --color\nmu diff -U0 --color\n```\n",
      "summary": "mu-repo",
      "date_published": "2021-06-13T09:41:22Z",
      "date_modified": "2021-06-13T09:41:22Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/mu-repo/",
      "url": "https://go.waylonwalker.com/mu-repo/",
      "title": "Maintianing multiple git repos with mu-repo",
      "content_html": "\u003ch2 id=\"quickstart\"\u003eQuickstart \u003ca href=\"#quickstart\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# installation\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epip install mu-repo\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e## register repos\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emu register --recursive\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emu list\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# run git commands\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emu status --short\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emu diff -U0 --color \u003cspan class=\"p\"\u003e|\u003c/span\u003e bat\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# run shell commands\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emu sh \u003cspan class=\"k\"\u003e$(\u003c/span\u003egrep -iRl \u003cspan class=\"s2\"\u003e\u0026#34;KEDRO_GID=0\u0026#34;\u003c/span\u003e \u003cspan class=\"p\"\u003e|\u003c/span\u003e xargs sed -i \u003cspan class=\"s2\"\u003e\u0026#34;s/KEDRO_GID=0/KEDRO_GID=5/g\u0026#34;\u003c/span\u003e\u003cspan class=\"k\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"registering-repos\"\u003eRegistering Repos \u003ca href=\"#registering-repos\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emu register --all\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emu register --all\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emu register --recursive\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emu unregister --all\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003ca href=\"/bash/\" class=\"wikilink\" data-title=\"📝 Bash Notes\" data-description=\"Waylon Walker\u0026#39;s Bash Notes\" data-date=\"2019-09-08\" data-preview=\"Waylon Walker\u0026#39;s Bash Notes\"\u003e📝 Bash Notes\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eI have similar command line related shortcuts in my bash notes\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"full-help\"\u003eFull Help \u003ca href=\"#full-help\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emu --help\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e* mu register repo1 repo2: Registers repo1 and repo2 to be tracked.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e* mu register --all: Registers all subdirs with .git \u003cspan class=\"o\"\u003e(\u003c/span\u003enon-recursive\u003cspan class=\"o\"\u003e)\u003c/span\u003e.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e* mu register --current: Registers all subdirs with .git \u003cspan class=\"o\"\u003e(\u003c/span\u003enon-recursive\u003cspan class=\"o\"\u003e)\u003c/span\u003e.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e* mu register --recursive: Registers all subdirs with .git \u003cspan class=\"o\"\u003e(\u003c/span\u003erecursive\u003cspan class=\"o\"\u003e)\u003c/span\u003e.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e* mu unregister repo1 repo2 \u003cspan class=\"p\"\u003e|\u003c/span\u003e --all: Stops tracking some repository.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e* mu list: Lists the currently tracked repositories.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e* mu set-var \u003cspan class=\"nv\"\u003egit\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003ed:/bin/git/bin/git.exe: Set git location to be used.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e* mu set-var \u003cspan class=\"nv\"\u003eserial\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e0\u003cspan class=\"p\"\u003e|\u003c/span\u003e1: Set commands to be executed serially or in parallel.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e* mu get-vars: Prints the configuration file.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e* mu fix-eol: Changes end of lines to \u003cspan class=\"s1\"\u003e\u0026#39;\\n\u0026#39;\u003c/span\u003e on all changed files.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e* mu find-branch \u003cspan class=\"o\"\u003e[\u003c/span\u003e-r\u003cspan class=\"o\"\u003e]\u003c/span\u003e *pat*:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    Finds all branches matching a given pattern \u003cspan class=\"o\"\u003e(\u003c/span\u003eor simply mu fb\u003cspan class=\"o\"\u003e)\u003c/span\u003e.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e* mu git-init-config: Initial git configuration \u003cspan class=\"o\"\u003e(\u003c/span\u003eusername, log, etc.\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e* mu --version: Prints its version\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e* mu auto-update: Automatically updates mu-repo\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"o\"\u003e(\u003c/span\u003eusing git -- \u003cspan class=\"k\"\u003eif\u003c/span\u003e it was installed from the repo as in the instructions\u003cspan class=\"o\"\u003e)\u003c/span\u003e.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e* mu dd:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e     Creates a directory structure with working dir vs head and opens\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e     WinMerge with it \u003cspan class=\"o\"\u003e(\u003c/span\u003edoing mu ac will commit exactly what\u003cspan class=\"s1\"\u003e\u0026#39;s compared in this\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e     situation).\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e     Also accepts a parameter to compare with a different commit/branch. I.e.:\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e     mu dd HEAD^^\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e     mu dd 9fd88da\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e     mu dd development\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e* mu sh \u0026lt;command line\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e   Allows calling any command line in the registered repositories\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e   e.g.: mu sh ls -la will call ls -la on all registered repositories.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e* mu clone: Cloning multiple repos from a base url.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e  Use mu clone --help to open browser with more details.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e* mu \u0026lt;command\u0026gt; repo:\u0026lt;repo1\u0026gt;,\u0026lt;repo2\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e   Allows specifying target repositories for a single command:\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e   e.g.: mu st repo:repo1,repo2: Will do st on repo1 and repo2.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e* mu group: Repository grouping\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e  * mu group add \u0026lt;name\u0026gt; [--empty]:\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      Creates new group with current repositories, unless --empty is given\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e  * mu group rm \u0026lt;name\u0026gt;: Removes a group\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e  * mu group switch \u0026lt;name\u0026gt;: Switches to an existing group\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e  * mu group reset: Stops using the current group (uses all repos again).\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e  * mu group: With no parameters, just lists current groups\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e  Use mu register normally to add repositories to the current group\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e  Use mu list to list repositories in the current group\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003eShortcuts:\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003emu st         = Nice status message for all repos (always in parallel)\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003emu co branch  = git checkout branch\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003emu mu-branch  = git rev-parse --abbrev-ref HEAD (print current branch)\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003emu up         = git fetch origin curr_branch:refs/remotes/origin/curr_branch\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003emu up --all   = git fetch origin (always in parallel)\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003emu upd | sync = up/diff incoming changes\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003emu a          = git add -A\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003emu c msg      = git commit -m \u0026#34;Message\u0026#34; (the message must always be passed)\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003emu ac msg     = git add -A \u0026amp; git commit -m (the message must always be passed)\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003emu acp msg    = same as \u0026#39;\u003c/span\u003emu ac\u003cspan class=\"err\"\u003e\u0026#39;\u003c/span\u003e + git push origin current branch.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emu \u003cspan class=\"nv\"\u003ep\u003c/span\u003e          \u003cspan class=\"o\"\u003e=\u003c/span\u003e git push origin current branch.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emu \u003cspan class=\"nv\"\u003erb\u003c/span\u003e         \u003cspan class=\"o\"\u003e=\u003c/span\u003e git rebase origin/current branch.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emu \u003cspan class=\"nv\"\u003eshell\u003c/span\u003e      \u003cspan class=\"o\"\u003e=\u003c/span\u003e On msysgit, call sh --login -i \u003cspan class=\"o\"\u003e(\u003c/span\u003elinux-like env\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emu fb \u003cspan class=\"o\"\u003e[\u003c/span\u003e-r\u003cspan class=\"o\"\u003e]\u003c/span\u003e \u003cspan class=\"nv\"\u003epat\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e Shortcut \u003cspan class=\"k\"\u003efor\u003c/span\u003e find-branch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eAny other \u003cspan class=\"nb\"\u003ecommand\u003c/span\u003e is passed directly to git \u003cspan class=\"k\"\u003efor\u003c/span\u003e each repository:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eI.e.:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emu pull\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emu fetch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emu push\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emu checkout release\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eNote: Actions considered safe may always be executed in parallel \u003cspan class=\"o\"\u003e(\u003c/span\u003ei.e.: mu st\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eNote: Passing --timeit in any \u003cspan class=\"nb\"\u003ecommand\u003c/span\u003e will print the \u003cspan class=\"nb\"\u003etime\u003c/span\u003e \u003cspan class=\"k\"\u003efor\u003c/span\u003e the command.\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n## Quickstart\n\n``` bash\n# installation\npip install mu-repo\n\n## register repos\nmu register --recursive\nmu list\n\n# run git commands\nmu status --short\nmu diff -U0 --color | bat\n\n# run shell commands\nmu sh $(grep -iRl \"KEDRO_GID=0\" | xargs sed -i \"s/KEDRO_GID=0/KEDRO_GID=5/g\")\n```\n\n## Registering Repos\n\n``` bash\nmu register --all\nmu register --all\nmu register --recursive\n\nmu unregister --all\n```\n\n\u003ca href=\"/bash/\" class=\"wikilink\" data-title=\"📝 Bash Notes\" data-description=\"Waylon Walker\u0026#39;s Bash Notes\" data-date=\"2019-09-08\"\u003e📝 Bash Notes\u003c/a\u003e\n\n\u003e I have similar command line related shortcuts in my bash notes\n\n## Full Help\n\n``` bash\nmu --help\n\n* mu register repo1 repo2: Registers repo1 and repo2 to be tracked.\n* mu register --all: Registers all subdirs with .git (non-recursive).\n* mu register --current: Registers all subdirs with .git (non-recursive).\n* mu register --recursive: Registers all subdirs with .git (recursive).\n* mu unregister repo1 repo2 | --all: Stops tracking some repository.\n* mu list: Lists the currently tracked repositories.\n* mu set-var git=d:/bin/git/bin/git.exe: Set git location to be used.\n* mu set-var serial=0|1: Set commands to be executed serially or in parallel.\n* mu get-vars: Prints the configuration file.\n* mu fix-eol: Changes end of lines to '\\n' on all changed files.\n* mu find-branch [-r] *pat*:\n    Finds all branches matching a given pattern (or simply mu fb).\n* mu git-init-config: Initial git configuration (username, log, etc.)\n* mu --version: Prints its version\n* mu auto-update: Automatically updates mu-repo\n  (using git -- if it was installed from the repo as in the instructions).\n\n* mu dd:\n     Creates a directory structure with working dir vs head and opens\n     WinMerge with it (doing mu ac will commit exactly what's compared in this\n     situation).\n\n     Also accepts a parameter to compare with a different commit/branch. I.e.:\n     mu dd HEAD^^\n     mu dd 9fd88da\n     mu dd development\n\n* mu sh \u003ccommand line\u003e\n   Allows calling any command line in the registered repositories\n   e.g.: mu sh ls -la will call ls -la on all registered repositories.\n\n* mu clone: Cloning multiple repos from a base url.\n  Use mu clone --help to open browser with more details.\n\n* mu \u003ccommand\u003e repo:\u003crepo1\u003e,\u003crepo2\u003e\n   Allows specifying target repositories for a single command:\n   e.g.: mu st repo:repo1,repo2: Will do st on repo1 and repo2.\n\n* mu group: Repository grouping\n\n  * mu group add \u003cname\u003e [--empty]:\n      Creates new group with current repositories, unless --empty is given\n  * mu group rm \u003cname\u003e: Removes a group\n  * mu group switch \u003cname\u003e: Switches to an existing group\n  * mu group reset: Stops using the current group (uses all repos again).\n  * mu group: With no parameters, just lists current groups\n\n  Use mu register normally to add repositories to the current group\n  Use mu list to list repositories in the current group\n\nShortcuts:\n\nmu st         = Nice status message for all repos (always in parallel)\nmu co branch  = git checkout branch\nmu mu-branch  = git rev-parse --abbrev-ref HEAD (print current branch)\nmu up         = git fetch origin curr_branch:refs/remotes/origin/curr_branch\nmu up --all   = git fetch origin (always in parallel)\nmu upd | sync = up/diff incoming changes\nmu a          = git add -A\nmu c msg      = git commit -m \"Message\" (the message must always be passed)\nmu ac msg     = git add -A \u0026 git commit -m (the message must always be passed)\nmu acp msg    = same as 'mu ac' + git push origin current branch.\nmu p          = git push origin current branch.\nmu rb         = git rebase origin/current branch.\nmu shell      = On msysgit, call sh --login -i (linux-like env)\nmu fb [-r] pat= Shortcut for find-branch\n\nAny other command is passed directly to git for each repository:\nI.e.:\n\nmu pull\nmu fetch\nmu push\nmu checkout release\n\nNote: Actions considered safe may always be executed in parallel (i.e.: mu st)\n\nNote: Passing --timeit in any command will print the time for the command.\n```\n",
      "summary": "bash",
      "date_published": "2021-06-10T10:44:17Z",
      "date_modified": "2021-06-10T10:44:17Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/upcoming-streams/",
      "url": "https://go.waylonwalker.com/upcoming-streams/",
      "title": "Upcoming Stream",
      "content_html": "\u003cdiv class=\"admonition caution\"\u003e\n\u003cp class=\"admonition-title\"\u003eI\u0026#39;m no longer streaming\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eAs much as I would really love to make streaming work, its really hard for\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003emy family situation to make large blocks of time work for me.\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003e\u003ca href=\"https://stackoverflow.com/questions/16720541/python-string-replace-regular-expression\" class=\"hoverlink  has-avatar has-avatar-before\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/stackoverflow.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/stackoverflow.com.ico\"\u003ehttps://stackoverflow.com/questions/16720541/python-string-replace-regular-expression\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eI am starting to stream 3 days per week, before I start work in the morning.\nThese streams will likely be me just talking through things I am already doing.\u003c/p\u003e\n\u003ch2 id=\"making-dags-do-magical-things--open-source-python--kedro-plugins-\"\u003eMaking DAGs do 🔮Magical Things | Open Source 🐍Python | kedro plugins | \u003ca href=\"#making-dags-do-magical-things--open-source-python--kedro-plugins-\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eScience \u0026amp; Technology | Every Monday • 7:00 AM - 9:00 AM CDT\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eOn Monday’s I am going to be working on open source packages/plugins for kedro.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ekedro-diff\u003c/li\u003e\n\u003cli\u003etest kedro-diff on piplines with history\u003c/li\u003e\n\u003cli\u003esetup deploy pipeline\u003c/li\u003e\n\u003cli\u003edeply to pypi\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"-digital-gardening--blogging-with-python--building-markata-a-static-site-generator-in-python-for-waylonwalkercom\"\u003e🌱 Digital Gardening | Blogging with 🐍Python | Building 🔮Markata a static site generator in python for waylonwalker.com \u003ca href=\"#-digital-gardening--blogging-with-python--building-markata-a-static-site-generator-in-python-for-waylonwalkercom\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eScience \u0026amp; Technology | Every Wednesday • 7:00 AM - 9:00 AM CDT\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eOn Wednesday morning I will be working on my personal website and the static\nsite generator that I built for it, Markata.\u003c/p\u003e\n\u003ch3 id=\"features\"\u003eFeatures \u003ca href=\"#features\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDONE \u003cdel\u003eone_line_gif\u003c/del\u003e\u003c/li\u003e\n\u003cli\u003eDONE automate mp4’s\u003c/li\u003e\n\u003cli\u003eFix big images\u003c/li\u003e\n\u003cli\u003eFix Amp issues\u003c/li\u003e\n\u003cli\u003espeed up build times\u003c/li\u003e\n\u003cli\u003emeasure plugin performance\u003c/li\u003e\n\u003cli\u003espeed up images.waylonwalker builds\u003c/li\u003e\n\u003cli\u003ebuild footer\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"error-correction\"\u003eError Correction \u003ca href=\"#error-correction\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eredirect detector\u003c/li\u003e\n\u003cli\u003edetect multiple H1\u003c/li\u003e\n\u003cli\u003etitle too short (50-70 characters)\u003c/li\u003e\n\u003cli\u003emissing alt text\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"building-dags-with--python---writing-data-pipelines-wih-kedro\"\u003eBuilding DAGS with 🐍 Python | 🛢 Writing data pipelines wih Kedro \u003ca href=\"#building-dags-with--python---writing-data-pipelines-wih-kedro\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eScience \u0026amp; Technology | Every Friday • 7:00 AM - 9:00 AM CDT\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eFriday will be all about building DAG’s or data related things in python. I\nmight reach for something like tidy tuesday, makeover monday, or just do my own\nthing. I have a few ideas of things to do on my own first.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eopen pypi package names\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\n\n!!! Caution  I'm no longer streaming\n    As much as I would really love to make streaming work, its really hard for\n    my family situation to make large blocks of time work for me.\n\n[https://stackoverflow.com/questions/16720541/python-string-replace-regular-expression](https://stackoverflow.com/questions/16720541/python-string-replace-regular-expression){.hoverlink}\n\nI am starting to stream 3 days per week, before I start work in the morning.\nThese streams will likely be me just talking through things I am already doing.\n\n## Making DAGs do 🔮Magical Things | Open Source 🐍Python | kedro plugins |\n\n_Science \u0026 Technology | Every Monday • 7:00 AM - 9:00 AM CDT_\n\nOn Monday's I am going to be working on open source packages/plugins for kedro.\n\n- kedro-diff\n- test kedro-diff on piplines with history\n- setup deploy pipeline\n- deply to pypi\n\n## 🌱 Digital Gardening | Blogging with 🐍Python | Building 🔮Markata a static site generator in python for waylonwalker.com\n\n_Science \u0026 Technology | Every Wednesday • 7:00 AM - 9:00 AM CDT_\n\nOn Wednesday morning I will be working on my personal website and the static\nsite generator that I built for it, Markata.\n\n### Features\n\n- DONE ~one_line_gif~\n- DONE automate mp4's\n- Fix big images\n- Fix Amp issues\n- speed up build times\n- measure plugin performance\n- speed up images.waylonwalker builds\n- build footer\n\n### Error Correction\n\n- redirect detector\n- detect multiple H1\n- title too short (50-70 characters)\n- missing alt text\n\n## Building DAGS with 🐍 Python | 🛢 Writing data pipelines wih Kedro\n\n_Science \u0026 Technology | Every Friday • 7:00 AM - 9:00 AM CDT_\n\nFriday will be all about building DAG's or data related things in python. I\nmight reach for something like tidy tuesday, makeover monday, or just do my own\nthing. I have a few ideas of things to do on my own first.\n\n- open pypi package names\n",
      "summary": "!!! Caution I'm no longer streaming As much as I would really love to make streaming work, its really hard for my family situation to make large blocks of...",
      "date_published": "2021-06-08T20:27:53Z",
      "date_modified": "2021-06-08T20:27:53Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "stream",
        "kedro",
        "python",
        "blog",
        "markata"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/awesome-people/",
      "url": "https://go.waylonwalker.com/awesome-people/",
      "title": "Awesome People",
      "content_html": "\u003cp\u003eThese are awesome people that inspire me every day.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://swyx.io/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/swyx.io.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/swyx.io.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://swyx.io/\u003c/a\u003e\n\u003ca href=\"https://alanwsmith.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/alanwsmith.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/alanwsmith.com.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://alanwsmith.com/\u003c/a\u003e\n\u003ca href=\"https://css-tricks.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/css-tricks.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/css-tricks.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://css-tricks.com/\u003c/a\u003e\n\u003ca href=\"https://daily-dev-tips.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/daily-dev-tips.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/daily-dev-tips.com.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://daily-dev-tips.com/\u003c/a\u003e\n\u003ca href=\"https://daverupert.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/daverupert.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/daverupert.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://daverupert.com/\u003c/a\u003e\n\u003ca href=\"https://joelhooks.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/joelhooks.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/joelhooks.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://joelhooks.com/\u003c/a\u003e\n\u003ca href=\"https://joshbranchaud.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/joshbranchaud.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/joshbranchaud.com.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://joshbranchaud.com/\u003c/a\u003e\n\u003ca href=\"https://kedrozerotohero.com/\"\u003ehttps://kedrozerotohero.com/\u003c/a\u003e\n\u003ca href=\"https://maggieappleton.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/maggieappleton.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/maggieappleton.com.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://maggieappleton.com/\u003c/a\u003e\n\u003ca href=\"https://mxstbr.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/mxstbr.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/mxstbr.com.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://mxstbr.com/\u003c/a\u003e\n\u003ca href=\"https://notes.mxstbr.com/About_these_notes\"\u003ehttps://notes.mxstbr.com/About_these_notes\u003c/a\u003e\n\u003ca href=\"https://tomcritchlow.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/tomcritchlow.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/tomcritchlow.com.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://tomcritchlow.com/\u003c/a\u003e\n\u003ca href=\"https://wesbos.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/wesbos.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/wesbos.com.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://wesbos.com/\u003c/a\u003e\n\u003ca href=\"https://www.christopherbiscardi.com/garden\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.christopherbiscardi.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.christopherbiscardi.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://www.christopherbiscardi.com/garden\u003c/a\u003e\n\u003ca href=\"https://www.helenanderson.co.nz/\"\u003ehttps://www.helenanderson.co.nz/\u003c/a\u003e\n\u003ca href=\"https://www.scotttolinski.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.scotttolinski.com.svg\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.scotttolinski.com.svg\" class=\"has-avatar  has-avatar-before\"\u003ehttps://www.scotttolinski.com/\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\nThese are awesome people that inspire me every day.\n\n\u003chttps://swyx.io/\u003e\n\u003chttps://alanwsmith.com/\u003e\n\u003chttps://css-tricks.com/\u003e\n\u003chttps://daily-dev-tips.com/\u003e\n\u003chttps://daverupert.com/\u003e\n\u003chttps://joelhooks.com/\u003e\n\u003chttps://joshbranchaud.com/\u003e\n\u003chttps://kedrozerotohero.com/\u003e\n\u003chttps://maggieappleton.com/\u003e\n\u003chttps://mxstbr.com/\u003e\n\u003chttps://notes.mxstbr.com/About_these_notes\u003e\n\u003chttps://tomcritchlow.com/\u003e\n\u003chttps://wesbos.com/\u003e\n\u003chttps://www.christopherbiscardi.com/garden\u003e\n\u003chttps://www.helenanderson.co.nz/\u003e\n\u003chttps://www.scotttolinski.com/\u003e\n",
      "summary": "These are awesome people that inspire me every day.",
      "date_published": "2021-06-05T10:57:59Z",
      "date_modified": "2021-06-05T10:57:59Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "single-page"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/modal-jumping/",
      "url": "https://go.waylonwalker.com/modal-jumping/",
      "title": "Modal jumping",
      "content_html": "\u003cpre\u003e\u003ccode\u003ennoremap \u0026lt;leader\u0026gt;e :execute getline(\u0026#34;.\u0026#34;)\u0026lt;cr\u0026gt;j\n\u003c/code\u003e\u003c/pre\u003e\n\u003cpre\u003e\u003ccode\u003ennoremap \u0026lt;c-j\u0026gt; g,\nnnoremap \u0026lt;c-k\u0026gt; g;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cpre\u003e\u003ccode\u003ennoremap \u0026lt;c-j\u0026gt; \u0026lt;c-]\u0026gt;\nnnoremap \u0026lt;c-k\u0026gt; g;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cpre\u003e\u003ccode\u003ennoremap \u0026lt;c-j\u0026gt; :cnext\u0026lt;cr\u0026gt;\nnnoremap \u0026lt;c-k\u0026gt; :cprev\u0026lt;cr\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cpre\u003e\u003ccode\u003ennoremap \u0026lt;c-j\u0026gt; :lnext\u0026lt;cr\u0026gt;\nnnoremap \u0026lt;c-k\u0026gt; :lprev\u0026lt;cr\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cpre\u003e\u003ccode\u003ennoremap \u0026lt;c-j\u0026gt; :tnext\u0026lt;cr\u0026gt;\nnnoremap \u0026lt;c-k\u0026gt; :tprevious\u0026lt;cr\u0026gt;\nnnoremap \u0026lt;c-j\u0026gt; :trewind\u0026lt;cr\u0026gt;\nnnoremap \u0026lt;c-k\u0026gt; :tprevious\u0026lt;cr\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n",
      "content_text": "\n```\nnnoremap \u003cleader\u003ee :execute getline(\".\")\u003ccr\u003ej\n```\n\n```\nnnoremap \u003cc-j\u003e g,\nnnoremap \u003cc-k\u003e g;\n```\n\n```\nnnoremap \u003cc-j\u003e \u003cc-]\u003e\nnnoremap \u003cc-k\u003e g;\n```\n\n```\nnnoremap \u003cc-j\u003e :cnext\u003ccr\u003e\nnnoremap \u003cc-k\u003e :cprev\u003ccr\u003e\n```\n\n```\nnnoremap \u003cc-j\u003e :lnext\u003ccr\u003e\nnnoremap \u003cc-k\u003e :lprev\u003ccr\u003e\n```\n\n```\nnnoremap \u003cc-j\u003e :tnext\u003ccr\u003e\nnnoremap \u003cc-k\u003e :tprevious\u003ccr\u003e\nnnoremap \u003cc-j\u003e :trewind\u003ccr\u003e\nnnoremap \u003cc-k\u003e :tprevious\u003ccr\u003e\n```\n\n",
      "date_published": "2021-06-03T21:30:35Z",
      "date_modified": "2021-06-03T21:30:35Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "vim"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/kedro-node/",
      "url": "https://go.waylonwalker.com/kedro-node/",
      "title": "Comprehensive guide to creating kedro nodes",
      "content_html": "\u003cp\u003eThe Kedro node is an essential part of the pipeline. It defines what catalog\nentries get passed in, what function gets ran, and the catalog entry to save\nthe results under.\u003c/p\u003e\n\u003ch2 id=\"does-this-link-work\"\u003edoes this link work? \u003ca href=\"#does-this-link-work\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/what-is-kedro/\" class=\"hoverlink  has-avatar has-avatar-before\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/waylonwalker.com.ico\"\u003ehttps://waylonwalker.com/what-is-kedro/\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e👆 Unsure what kedro is? Check out this post.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"the-node-function\"\u003eThe node function \u003ca href=\"#the-node-function\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe node function is the most common and reccomended way to define kedro nodes.\nIt is a function that constructs and returns \u003ccode\u003eNode\u003c/code\u003e objects for you.\u003c/p\u003e\n\u003ch2 id=\"creating-your-first-kedro-node\"\u003eCreating your first kedro node \u003ca href=\"#creating-your-first-kedro-node\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003ekedro.pipeline\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003enode\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003eidentity\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003edf\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;a function that returns itself\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"n\"\u003edf\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003emy_first_node\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003enode\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003efunc\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003eidentity\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003einputs\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;raw_cars\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003eoutput\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;int_cars\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003etags\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;int\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"function\"\u003efunction \u003ca href=\"#function\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eThe \u003ccode\u003efunc\u003c/code\u003e passed into node can be any callable that accepts the inputs yout\nhave specified, and returns the correct output that you specify as your output.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eany callable\u003c/li\u003e\n\u003cli\u003ea function you write\u003c/li\u003e\n\u003cli\u003ea function from a library\u003c/li\u003e\n\u003cli\u003eclass constructor\u003c/li\u003e\n\u003cli\u003elambda function\u003c/li\u003e\n\u003cli\u003epartial function\u003c/li\u003e\n\u003cli\u003eliterally any callable\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/kedro-inputs/\" class=\"hoverlink  has-avatar has-avatar-before\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/waylonwalker.com.ico\"\u003ehttps://waylonwalker.com/kedro-inputs/\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eFor more information on how kedro passes inputs into your functions check out\nthis post\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003epandas\u003c/span\u003e \u003cspan class=\"k\"\u003eas\u003c/span\u003e \u003cspan class=\"nn\"\u003epd\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003ekedro.pipeline\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003enode\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003erange_node\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003enode\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"k\"\u003elambda\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"nb\"\u003erange\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e100\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;range\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ename\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;range\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003edataframe_node\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003enode\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003epd\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eDataFrame\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;range\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;df\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch4 id=\"using-a-lambda-as-a-function\"\u003eUsing a lambda as a function \u003ca href=\"#using-a-lambda-as-a-function\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h4\u003e\n\u003cp\u003eI keep my nodes short and sweet. They do one thing and do it well. I turn\nalmost every DataFrame transformation into its own node. It makes it must\neasier to pull catalog entries, than firing up the pipeline, running it,\nand starting a debugger. For this reason many of my nodes are build from\ninline lambdas.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003ekedro.pipeline\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003enode\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003emy_first_node\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003enode\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003efunc\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"k\"\u003elambda\u003c/span\u003e \u003cspan class=\"n\"\u003ex\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003ex\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003einputs\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;raw_cars\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003eoutput\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;int_cars\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003etags\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;int\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003emy_first_node\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003enode\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003efunc\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"k\"\u003elambda\u003c/span\u003e \u003cspan class=\"n\"\u003ecars\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003ecars\u003c/span\u003e\u003cspan class=\"p\"\u003e[[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;mpg\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;cyl\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;disp\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,]]\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003equery\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;disp\u0026gt;200\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003einputs\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;raw_cars\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003eoutput\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;int_cars\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003etags\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;pri\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch4 id=\"using-a-partial-function\"\u003eUsing a partial function \u003ca href=\"#using-a-partial-function\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h4\u003e\n\u003cp\u003eI prefer the simplicity of lambdas, but many others prefer using a partial as\nit can yield a better docstring, node name, and easier to reuse. I name all of\nmy nodes anyways, never look at the docstring of a partial, and almost always\nonly use them on a single node or set of nodes constructed together. So I\nprefer the readablility of the lambda most of the time, but if you like\npartials better, or need to assign it to a variable and reuse it, here are some\npartial examples.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003ekedro.pipeline\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003enode\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003efunctools\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003epartial\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eupdate_wrapper\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003edivide\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003earray\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eby\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"n\"\u003ei\u003c/span\u003e\u003cspan class=\"o\"\u003e/\u003c/span\u003e\u003cspan class=\"n\"\u003eby\u003c/span\u003e \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003ei\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003earray\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ehalfer\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eupdate_wrapper\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003epartial\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003edivide\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eby\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"mi\"\u003e2\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e \u003cspan class=\"n\"\u003edivide\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003emy_halfer_node\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003enode\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003efunc\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003ehalfer\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003einputs\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;raw_cars\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003eoutput\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;int_cars\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003etags\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;int\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eWe can achieve the same results that the partial gave with this lambda.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003emy_halfer_node\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003enode\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003efunc\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"k\"\u003elambda\u003c/span\u003e \u003cspan class=\"n\"\u003earray\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003edivide\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003earray\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mi\"\u003e2\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003einputs\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;raw_cars\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003eoutput\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;int_cars\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003etags\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;int\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eTo further show the point that any callable can be out node’s \u003ccode\u003efunc\u003c/code\u003e, I have\nmade a partial from the \u003ccode\u003epd.DataFrame\u003c/code\u003e class that has column names pre\npopulated.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003ekedro.pipeline\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003enode\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003epandas\u003c/span\u003e \u003cspan class=\"k\"\u003eas\u003c/span\u003e \u003cspan class=\"nn\"\u003epd\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003efunctools\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003epartial\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eupdate_wrapper\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eMyDataFrame\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eupdate_wrapper\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003epartial\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003epd\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eDataFrame\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ecolumns\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;mycol\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]),\u003c/span\u003e \u003cspan class=\"n\"\u003epd\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eDataFrame\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003erange_node\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003enode\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"k\"\u003elambda\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"nb\"\u003erange\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e100\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;range\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ename\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;range\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003edataframe_node\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003enode\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eMyDataFrame\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;range\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;df\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"inputsoutputs\"\u003einputs/outputs \u003ca href=\"#inputsoutputs\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003ekedro inputs and outputs can be \u003ccode\u003eNone\u003c/code\u003e, a catalog entry, or a dict mapping the functions\nkeyword arguments to catalog entries. Catalog entries are always represented\nas a string matching the key of the catalog entry you want to load.\u003c/p\u003e\n\u003ch4 id=\"none\"\u003eNone \u003ca href=\"#none\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h4\u003e\n\u003cp\u003e\u003cem\u003eno catalog entries\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eSometimes you may want to have a node without any inputs. This node may be\nused to generate some data from scratch, or fetch some data that does not have\nan existing DataSet type setup. DataSets are easy to setup, simply fork one of\nkedros built in ones and use it, but for one or two nodes the setup may not be\nworth it.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003ekedro.pipeline\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003enode\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003erandom_100_node\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003enode\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003efunc\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"k\"\u003elambda\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003erandom\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003esample\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"nb\"\u003erange\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mi\"\u003e100\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e \u003cspan class=\"mi\"\u003e100\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003einputs\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003eoutput\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;random_100\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003ename\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;create_random_100\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch4 id=\"str\"\u003estr \u003ca href=\"#str\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h4\u003e\n\u003cp\u003e\u003cem\u003eone catalog entry\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eThis is by far the most common input that you will use. This will simply tell\nkedro what dataset to load behind the scenes and passin to the function that\nyou provide.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003ekedro.pipeline\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003enode\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003erandom_100_node\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003enode\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003efunc\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"k\"\u003elambda\u003c/span\u003e \u003cspan class=\"n\"\u003erandom_100\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"n\"\u003ex\u003c/span\u003e\u003cspan class=\"o\"\u003e**\u003c/span\u003e\u003cspan class=\"mi\"\u003e2\u003c/span\u003e \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003ex\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003erandom_100\u003c/span\u003e\u003cspan class=\"p\"\u003e],\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003einputs\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;random_100\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003eoutput\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;random_squared\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003ename\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;create_random_squared\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003eNote, I am using a lot of lambdas here for simplicity as each function so far\nis a simple one-liner. These could also be a regular function if you are\nuncomfortable with lambdas.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch4 id=\"list\"\u003elist \u003ca href=\"#list\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h4\u003e\n\u003cp\u003e\u003cem\u003eseveral catalog entries, passed in by position\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eIn order to start passing in more than one DataSet into a kedro node you need\nto use a list or dictionary as the input. Using a list is convenient for a\nsmall number of inputs.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003ekedro.pipeline\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003enode\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003erandom_100_node\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003enode\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003efunc\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"k\"\u003elambda\u003c/span\u003e \u003cspan class=\"n\"\u003erandom_100\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003erandom_squared\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"nb\"\u003elist\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"nb\"\u003ezip\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003erandom_100\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003erandom_squared\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003einputs\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;random_100\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;random_squared\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e],\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003eoutput\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;random_join\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003ename\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;create_random_join\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch4 id=\"dict\"\u003edict \u003ca href=\"#dict\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h4\u003e\n\u003cp\u003e\u003cem\u003eseveral catalog entries, passed in by name\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003ekedro will unpack dictionaries into your function if you pass in a dictionary.\nIn code review I start suggesting converting from a list to dict at 3 and\nrequire it above 5. It gets way too hard to refactor and move things while\nkeeping track of the order of really long sets of inputs. Passing them in by\nname, as a dictionary, makes it such that order no longer matters.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003ekedro.pipeline\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003enode\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003erandom_100_node\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003enode\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003efunc\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"k\"\u003elambda\u003c/span\u003e \u003cspan class=\"n\"\u003ex\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ey\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"nb\"\u003elist\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"nb\"\u003ezip\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ex\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ey\u003c/span\u003e\u003cspan class=\"p\"\u003e)),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003einputs\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;x\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;random_100\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;y\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;random_squared\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003eoutput\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;random_join\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003ename\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;create_random_join\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003eSwitch from list to dict inputs between 3 and five inputs to improve\nreadability and prevent ordering mistakes.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3 id=\"tags\"\u003etags \u003ca href=\"#tags\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eTags provide an easy way to add a label nodes for something to interact with\nthem. This may be a node that we want a plugin to modify or a set of nodes\nthat we want quick access to during development.\u003c/p\u003e\n\u003cp\u003eTags are always passed in as a list of strings. They must be a 1-d data\nstructure. You may create that data structure however you want, but its still\njust a list of strings. Below I have set a global variable \u003ccode\u003eTAGS\u003c/code\u003e that I want\nto apply to every node within a given module, then I splat it into every nodes\ntags. This lets me easily apply a whole set of tags to an entire module of\nnodes. I can easily modify that list of nodes if I wanted to, but its acually\nrare that I do.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eTAGS\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;cars\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003emy_first_node\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003enode\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003efunc\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003eidentity\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003einputs\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;raw_cars\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003eoutput\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;int_cars\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003etags\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;int\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"o\"\u003e*\u003c/span\u003e\u003cspan class=\"n\"\u003eTAGS\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# get a pipeline of one node\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eone_node\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epipeline\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eonly_nodes_with_tags\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;int\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# get a pipeline of a few nodes\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eone_node\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epipeline\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eonly_nodes_with_tags\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;raw\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;int\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"name\"\u003ename \u003ca href=\"#name\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eThe name attribute is simple, it’s the name of the node. Later you can use the\nname to find the node or all nodes named a particular way. This name will also\nshow up in the logs provided by kedro or a plugin so naming things well makes\neverything much easier to read.\u003c/p\u003e\n\u003cp\u003eConsistent naming makes it easier to do things like extracting nodes out of a\npipeline, running them, and making pipelines from them.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# get a pipeline of one node\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eone_node\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epipeline\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eonly_nodes\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;a_raw_cars\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# get a pipeline of a few nodes\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eone_node\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epipeline\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eonly_nodes\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;a_raw_cars\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;a_raw_trains\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# create a pipeline by nodes that contain \u0026#39;raw\u0026#39; in the name\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eraw_nodes\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003ePipeline\u003c/span\u003e\u003cspan class=\"p\"\u003e([\u003c/span\u003e\u003cspan class=\"n\"\u003enode\u003c/span\u003e \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003enode\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003epipeline\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003enodes\u003c/span\u003e \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;raw\u0026#39;\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003enode\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e])\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003e⚠️ filtering by name requires a bit o diligence and consistency by the team,\nit’s a fantastic way to grab some nodes adhoc, but for production you probably\nwant something a bit more robust.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"using-partitioneddatasets\"\u003eUsing PartitionedDataSets \u003ca href=\"#using-partitioneddatasets\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003etimeseries_partitioned\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ecars\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003eDict\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003ek\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"nb\"\u003elen\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ecar\u003c/span\u003e\u003cspan class=\"p\"\u003e())\u003c/span\u003e \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003ek\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ecar\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003ecars\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eitems\u003c/span\u003e\u003cspan class=\"p\"\u003e()}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003enodes\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eappend\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003enode\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003efunc\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003etimeseries_partitioned\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003einputs\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;int_cars_partitioned\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003eoutputs\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;int_cars_timeseries_partitioned\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003ename\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;create_int_cars_timeseries_partitioned\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"using-incrementaldatasets\"\u003eUsing IncrementalDataSets \u003ca href=\"#using-incrementaldatasets\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003etimeseries_incremental\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ecars\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003eDict\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003ek\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"nb\"\u003elen\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ecar\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003ek\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ecar\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003ecars\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eitems\u003c/span\u003e\u003cspan class=\"p\"\u003e()}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003enodes\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eappend\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003enode\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003efunc\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003etimeseries_incremental\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003einputs\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;int_cars_incremental\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003eoutputs\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;int_cars_timeseries_incremental\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003ename\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;create_int_cars_timeseries_incremental\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003ca href=\"https://waylonwalker.com/kedro-incremental-versioned-datasets/\" class=\"hoverlink  has-avatar has-avatar-before\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/waylonwalker.com.ico\"\u003ehttps://waylonwalker.com/kedro-incremental-versioned-datasets/\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003efor more information in incremental and partitioned datasets see this post\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003chr/\u003e\n\u003cp\u003eThis may be a separate post on the pipeline object\u003c/p\u003e\n\u003ch2 id=\"execution-order\"\u003eExecution order \u003ca href=\"#execution-order\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eExecution order is set by resolving catalog dependencies. I imagine kedro taking\na razer blade tool and slicing out all nodes with completed dependencies,\nthrowing those in a bag drawing them out one by one randomly, then when the bag\nis full it slices more out and repeats until there are no more nodes. This idea\nof randomness can be really maddening when there are two separate issues on your\npipeline. If you are debugging an error in your pipeline run the erroring node\nby itself.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e🔥 If you are debugging an error in your pipeline run the erroring node by itself.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"running-specific-nodes\"\u003eRunning specific nodes \u003ca href=\"#running-specific-nodes\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003ethe power of the DAG\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eOne of the greatest benefits of using kedro is that it gives you a Pipeline\nobject that is a DAG. This is a powerful object that can quickly pull decide a\nset of nodes to run when you tell it to run to or from somewhere. Somewhere\nbeing either a catalog entry or node.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eDAG (directed acyclic graph) is a fancy word for a data structure that may\nbranch and join, but may not loop\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3 id=\"by-name\"\u003eby name \u003ca href=\"#by-name\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003ch3 id=\"by-tag\"\u003eby tag \u003ca href=\"#by-tag\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003ch3 id=\"to-inputs\"\u003eto_inputs \u003ca href=\"#to-inputs\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003ch3 id=\"to-outputs\"\u003eto_outputs \u003ca href=\"#to-outputs\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003ch3 id=\"from-inputs\"\u003efrom_inputs \u003ca href=\"#from-inputs\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003ch3 id=\"from-outputs\"\u003efrom outputs \u003ca href=\"#from-outputs\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n",
      "content_text": "\nThe Kedro node is an essential part of the pipeline. It defines what catalog\nentries get passed in, what function gets ran, and the catalog entry to save\nthe results under.\n\n## does this link work?\n\n[https://waylonwalker.com/what-is-kedro/](https://waylonwalker.com/what-is-kedro/){.hoverlink}\n\n\u003e 👆 Unsure what kedro is? Check out this post.\n\n## The node function\n\nThe node function is the most common and reccomended way to define kedro nodes.\nIt is a function that constructs and returns `Node` objects for you.\n\n## Creating your first kedro node\n\n```python\nfrom kedro.pipeline import node\n\ndef identity(df):\n    \"a function that returns itself\"\n    return df\n\nmy_first_node = node(\n   func=identity,\n   inputs='raw_cars',\n   output='int_cars',\n   tags=['int',]\n   )\n```\n\n### function\n\nThe `func` passed into node can be any callable that accepts the inputs yout\nhave specified, and returns the correct output that you specify as your output.\n\n- any callable\n- a function you write\n- a function from a library\n- class constructor\n- lambda function\n- partial function\n- literally any callable\n\n[https://waylonwalker.com/kedro-inputs/](https://waylonwalker.com/kedro-inputs/){.hoverlink}\n\n\u003e For more information on how kedro passes inputs into your functions check out\n\u003e this post\n\n```python\nimport pandas as pd\nfrom kedro.pipeline import node\n\nrange_node = node(lambda: range(100), None, \"range\", name=\"range\"),\ndataframe_node = node(pd.DataFrame, \"range\", \"df\"),\n```\n\n#### Using a lambda as a function\n\nI keep my nodes short and sweet. They do one thing and do it well. I turn\nalmost every DataFrame transformation into its own node. It makes it must\neasier to pull catalog entries, than firing up the pipeline, running it,\nand starting a debugger. For this reason many of my nodes are build from\ninline lambdas.\n\n```python\nfrom kedro.pipeline import node\n\nmy_first_node = node(\n   func=lambda x: x,\n   inputs='raw_cars',\n   output='int_cars',\n   tags=['int',]\n   )\n\nmy_first_node = node(\n   func=lambda cars: cars[['mpg', 'cyl', 'disp',]].query('disp\u003e200'),\n   inputs='raw_cars',\n   output='int_cars',\n   tags=['pri',]\n   )\n```\n\n#### Using a partial function\n\nI prefer the simplicity of lambdas, but many others prefer using a partial as\nit can yield a better docstring, node name, and easier to reuse. I name all of\nmy nodes anyways, never look at the docstring of a partial, and almost always\nonly use them on a single node or set of nodes constructed together. So I\nprefer the readablility of the lambda most of the time, but if you like\npartials better, or need to assign it to a variable and reuse it, here are some\npartial examples.\n\n```python\nfrom kedro.pipeline import node\nfrom functools import partial, update_wrapper\n\ndef divide(array, by):\n    return [i/by for i in array]\n\nhalfer = update_wrapper(partial(divide, by=2), divide)\n\nmy_halfer_node = node(\n   func=halfer,\n   inputs='raw_cars',\n   output='int_cars',\n   tags=['int',]\n   )\n```\n\nWe can achieve the same results that the partial gave with this lambda.\n\n```python\nmy_halfer_node = node(\n   func=lambda array: divide(array, 2),\n   inputs='raw_cars',\n   output='int_cars',\n   tags=['int',]\n   )\n```\n\nTo further show the point that any callable can be out node's `func`, I have\nmade a partial from the `pd.DataFrame` class that has column names pre\npopulated.\n\n```python\nfrom kedro.pipeline import node\nimport pandas as pd\nfrom functools import partial, update_wrapper\n\nMyDataFrame = update_wrapper(partial(pd.DataFrame, columns=[\"mycol\"]), pd.DataFrame)\n\nrange_node = node(lambda: range(100), None, \"range\", name=\"range\"),\ndataframe_node = node(MyDataFrame, \"range\", \"df\"),\n```\n\n### inputs/outputs\n\nkedro inputs and outputs can be `None`, a catalog entry, or a dict mapping the functions\nkeyword arguments to catalog entries. Catalog entries are always represented\nas a string matching the key of the catalog entry you want to load.\n\n#### None\n\n_no catalog entries_\n\nSometimes you may want to have a node without any inputs. This node may be\nused to generate some data from scratch, or fetch some data that does not have\nan existing DataSet type setup. DataSets are easy to setup, simply fork one of\nkedros built in ones and use it, but for one or two nodes the setup may not be\nworth it.\n\n```python\nfrom kedro.pipeline import node\n\nrandom_100_node = node(\n   func=lambda: random.sample(range(0, 100), 100),\n   inputs=None,\n   output='random_100',\n   name='create_random_100',\n   )\n```\n\n#### str\n\n_one catalog entry_\n\nThis is by far the most common input that you will use. This will simply tell\nkedro what dataset to load behind the scenes and passin to the function that\nyou provide.\n\n```python\nfrom kedro.pipeline import node\n\nrandom_100_node = node(\n   func=lambda random_100: [x**2 for x in random_100],\n   inputs='random_100',\n   output='random_squared',\n   name='create_random_squared',\n   )\n```\n\n\u003e Note, I am using a lot of lambdas here for simplicity as each function so far\n\u003e is a simple one-liner. These could also be a regular function if you are\n\u003e uncomfortable with lambdas.\n\n#### list\n\n_several catalog entries, passed in by position_\n\nIn order to start passing in more than one DataSet into a kedro node you need\nto use a list or dictionary as the input. Using a list is convenient for a\nsmall number of inputs.\n\n```python\nfrom kedro.pipeline import node\n\nrandom_100_node = node(\n   func=lambda random_100, random_squared: list(zip(random_100, random_squared)\n   inputs=['random_100', 'random_squared'],\n   output='random_join',\n   name='create_random_join',\n   )\n```\n\n#### dict\n\n_several catalog entries, passed in by name_\n\nkedro will unpack dictionaries into your function if you pass in a dictionary.\nIn code review I start suggesting converting from a list to dict at 3 and\nrequire it above 5. It gets way too hard to refactor and move things while\nkeeping track of the order of really long sets of inputs. Passing them in by\nname, as a dictionary, makes it such that order no longer matters.\n\n```python\nfrom kedro.pipeline import node\n\nrandom_100_node = node(\n   func=lambda x, y: list(zip(x, y)),\n   inputs={'x': 'random_100', 'y':'random_squared'},\n   output='random_join',\n   name='create_random_join',\n   )\n```\n\n\u003e Switch from list to dict inputs between 3 and five inputs to improve\n\u003e readability and prevent ordering mistakes.\n\n### tags\n\nTags provide an easy way to add a label nodes for something to interact with\nthem. This may be a node that we want a plugin to modify or a set of nodes\nthat we want quick access to during development.\n\nTags are always passed in as a list of strings. They must be a 1-d data\nstructure. You may create that data structure however you want, but its still\njust a list of strings. Below I have set a global variable `TAGS` that I want\nto apply to every node within a given module, then I splat it into every nodes\ntags. This lets me easily apply a whole set of tags to an entire module of\nnodes. I can easily modify that list of nodes if I wanted to, but its acually\nrare that I do.\n\n```python\nTAGS = ['cars']\n\nmy_first_node = node(\n   func=identity,\n   inputs='raw_cars',\n   output='int_cars',\n   tags=['int', *TAGS]\n   )\n\n```\n\n```python\n# get a pipeline of one node\none_node = pipeline.only_nodes_with_tags('int')\n\n# get a pipeline of a few nodes\none_node = pipeline.only_nodes_with_tags('raw', 'int')\n```\n\n### name\n\nThe name attribute is simple, it's the name of the node. Later you can use the\nname to find the node or all nodes named a particular way. This name will also\nshow up in the logs provided by kedro or a plugin so naming things well makes\neverything much easier to read.\n\nConsistent naming makes it easier to do things like extracting nodes out of a\npipeline, running them, and making pipelines from them.\n\n```python\n# get a pipeline of one node\none_node = pipeline.only_nodes('a_raw_cars')\n\n# get a pipeline of a few nodes\none_node = pipeline.only_nodes('a_raw_cars', 'a_raw_trains')\n\n# create a pipeline by nodes that contain 'raw' in the name\nraw_nodes = Pipeline([node for node in pipeline.nodes if 'raw' in node.name])\n```\n\n\u003e ⚠️ filtering by name requires a bit o diligence and consistency by the team,\n\u003e it's a fantastic way to grab some nodes adhoc, but for production you probably\n\u003e want something a bit more robust.\n\n## Using PartitionedDataSets\n\n```python\ndef timeseries_partitioned(cars: Dict):\n    return {k:len(car()) for k, car in cars.items()}\n\nnodes.append(\n        node(\n            func=timeseries_partitioned,\n            inputs='int_cars_partitioned',\n            outputs='int_cars_timeseries_partitioned',\n            name='create_int_cars_timeseries_partitioned',\n            )\n        )\n```\n\n## Using IncrementalDataSets\n\n```python\ndef timeseries_incremental(cars: Dict):\n    return {k:len(car) for k, car in cars.items()}\n\nnodes.append(\n        node(\n            func=timeseries_incremental,\n            inputs='int_cars_incremental',\n            outputs='int_cars_timeseries_incremental',\n            name='create_int_cars_timeseries_incremental',\n            )\n        )\n```\n\n[https://waylonwalker.com/kedro-incremental-versioned-datasets/](https://waylonwalker.com/kedro-incremental-versioned-datasets/){.hoverlink}\n\n\u003e for more information in incremental and partitioned datasets see this post\n\n---\n\nThis may be a separate post on the pipeline object\n\n## Execution order\n\nExecution order is set by resolving catalog dependencies. I imagine kedro taking\na razer blade tool and slicing out all nodes with completed dependencies,\nthrowing those in a bag drawing them out one by one randomly, then when the bag\nis full it slices more out and repeats until there are no more nodes. This idea\nof randomness can be really maddening when there are two separate issues on your\npipeline. If you are debugging an error in your pipeline run the erroring node\nby itself.\n\n\u003e 🔥 If you are debugging an error in your pipeline run the erroring node by itself.\n\n## Running specific nodes\n\n_the power of the DAG_\n\nOne of the greatest benefits of using kedro is that it gives you a Pipeline\nobject that is a DAG. This is a powerful object that can quickly pull decide a\nset of nodes to run when you tell it to run to or from somewhere. Somewhere\nbeing either a catalog entry or node.\n\n\u003e DAG (directed acyclic graph) is a fancy word for a data structure that may\n\u003e branch and join, but may not loop\n\n### by name\n\n### by tag\n\n### to_inputs\n\n### to_outputs\n\n### from_inputs\n\n### from outputs\n",
      "summary": "The Kedro node is an essential part of the pipeline. It defines what catalog entries get passed in, what function gets ran, and the catalog entry to save the...",
      "date_published": "2021-06-03T21:30:35Z",
      "date_modified": "2021-06-03T21:30:35Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "kedro",
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/rockstar74-interview-review/",
      "url": "https://go.waylonwalker.com/rockstar74-interview-review/",
      "title": "Rockstar74 Interview Review",
      "content_html": "\u003cp\u003e\u003ca href=\"https://www.twitch.tv/videos/1042380964\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.twitch.tv.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.twitch.tv.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://www.twitch.tv/videos/1042380964\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\n\nhttps://www.twitch.tv/videos/1042380964\n",
      "summary": "https://www.twitch.tv/videos/1042380964",
      "date_published": "2021-06-03T10:24:04Z",
      "date_modified": "2021-06-03T10:24:04Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/kedro-pypi-list/",
      "url": "https://go.waylonwalker.com/kedro-pypi-list/",
      "title": "Creating pypi-list with kedro",
      "content_html": "\u003cp\u003eI had an idea come to me via twitter. Short one word name packages are becoming\nhard to find on pypi.  Short one word readable package names that are not a\nplay on words are easy to remember, easy to spell correctly, and quick to type\nout.\u003c/p\u003e\n\u003ch2 id=\"simple-index\"\u003eSimple index \u003ca href=\"#simple-index\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI started with the simple index.  Pypi provides a single page listing to every\nsingle package hosted on pypi via the \u003ca href=\"https://pypi.org/simple/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/pypi.org.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/pypi.org.ico\" class=\"has-avatar  has-avatar-before\"\u003esimple-index\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\n\nI had an idea come to me via twitter. Short one word name packages are becoming\nhard to find on pypi.  Short one word readable package names that are not a\nplay on words are easy to remember, easy to spell correctly, and quick to type\nout.\n\n## Simple index\n\nI started with the simple index.  Pypi provides a single page listing to every\nsingle package hosted on pypi via the [simple-index](https://pypi.org/simple/)\n",
      "summary": "I had an idea come to me via twitter. Short one word name packages are becoming hard to find on pypi. Short one word readable package names that are not a...",
      "date_published": "2021-05-23T22:02:16Z",
      "date_modified": "2021-05-23T22:02:16Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "kedro",
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/build-a-portfolio/",
      "url": "https://go.waylonwalker.com/build-a-portfolio/",
      "title": "Build A Portfolio",
      "content_html": "\u003cp\u003e\u003ca href=\"https://twitter.com/oliverjumpertz/status/1395689074594287625\"\u003ehttps://twitter.com/oliverjumpertz/status/1395689074594287625\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFollow this over time.  If you want to use code repositories for your portfolio.\nMake sure that you have made it unique in some way.  Think about what kind of\nsignal you are sending to hiring managers if you are linking to a project with\nno docs, and one commit from 3 days ago.\u003c/p\u003e\n\u003cp\u003eThey don’t have to be PERFECT either, it’s likely that it’s not something you\nwere paid to do, hence not able to put your full time into. Just having\nsomething that generally follows some GOOD practice will set you above most\nother candidates.\u003c/p\u003e\n\u003cp\u003eMake sure that it reflects you as a person.  The worst that can happen is for\nyou to hire in based on some false pretense and hate where you end up.\u003c/p\u003e\n\u003cp\u003e🎨 Make it unique\u003c/p\u003e\n\u003cp\u003e👌 It does not need to be perfect\u003c/p\u003e\n\u003cp\u003e🤏It does not matter how small it is\u003c/p\u003e\n\u003cp\u003e⏳ Don’t wait till the last minute\u003c/p\u003e\n\u003cp\u003e👇 Follow Oliver’s advice\u003c/p\u003e\n",
      "content_text": "\n\nhttps://twitter.com/oliverjumpertz/status/1395689074594287625\n\nFollow this over time.  If you want to use code repositories for your portfolio.\nMake sure that you have made it unique in some way.  Think about what kind of\nsignal you are sending to hiring managers if you are linking to a project with\nno docs, and one commit from 3 days ago.\n\nThey don't have to be PERFECT either, it's likely that it's not something you\nwere paid to do, hence not able to put your full time into. Just having\nsomething that generally follows some GOOD practice will set you above most\nother candidates.\n\nMake sure that it reflects you as a person.  The worst that can happen is for\nyou to hire in based on some false pretense and hate where you end up.\n\n\n\n🎨 Make it unique\n\n👌 It does not need to be perfect\n\n🤏It does not matter how small it is\n\n⏳ Don't wait till the last minute\n\n👇 Follow Oliver's advice\n",
      "summary": "https://twitter.com/oliverjumpertz/status/1395689074594287625",
      "date_published": "2021-05-21T11:26:18Z",
      "date_modified": "2021-05-21T11:26:18Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "soft"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/vow/",
      "url": "https://go.waylonwalker.com/vow/",
      "title": "vows",
      "content_html": "\u003ch1 id=\"story\"\u003eStory\u003c/h1\u003e\n\u003cp\u003eI can still rememember the day that we we realized our new baby girl had gone\ndays without a bowel movement. Holding her while she looked as if she was\nabout to pop at any moment, completely nervous for what was to come.\u003c/p\u003e\n\u003cp\u003eLittle did we know what that strong little girl had in store for us. She was\nperparing us for something much bigger. Little did we know how much scary\nmedical journeys would soon become a “normal” part of our life. We spent two\nsolid years fighting for this girl every day.\u003c/p\u003e\n\u003cp\u003eI still remember that Fall day. That day you drove my car home alone while I\nsat with our kids, patiently awaiting your arrival. When you arrived, no words\nneeded to be spoken, the minute you opened the car door I knew our lives had\nchanged forever.\u003c/p\u003e\n\u003cp\u003eScared out of our minds we held it together the best we could for those two\nkids we were holding. Fast forward 6 weeks, you are recovering from the\nbiggest surgery of your life, and we notice that little girl is now feeding\nenough for herself. No longer in need of the feeding pump the g-tube. No\nlonger in need to wear a backpack with constant feed.\u003c/p\u003e\n\u003cp\u003eAll along she was preparing us for something much bigger, soemthing we could\nnot have imagined, something we could not have taken without the training\nshe had given us.\u003c/p\u003e\n\u003cp\u003eTogether we are stronger after the battles we have faced. The long battles we\nhave won. Stronger than ever we are ready for anything.\u003c/p\u003e\n\u003ch1 id=\"promise\"\u003ePromise\u003c/h1\u003e\n\u003cp\u003eI promise to stay strong and grow with you.\u003c/p\u003e\n\u003cp\u003eI promise to hold your hand through the scary moments and tell you everything\nwill be ok. We will find a solution, we always do.\u003c/p\u003e\n\u003cp\u003eI will check the house in the middle of the night when there are noises no\nmatter how tired I am. I know that it causes you really strong feelings that\nyou cannot shake until its been checked.\u003c/p\u003e\n\u003cp\u003eI promise to sit by your side when you are down, no matter how many times we\nre-watch Big Bang Theory it will never be too much.\u003c/p\u003e\n\u003ch1 id=\"support\"\u003esupport\u003c/h1\u003e\n\u003cp\u003eI will accept support on my bad days. I know that I try to be the rock of the\nfamily and push until I cannot push anymore, no matter how much you tell me to\nrest. I really do appreciate when you take notice that things are going harder\nthan normal.\u003c/p\u003e\n\u003cp\u003eI will accept your coaching in handling social emotional issues that are hard\nfor me to understand on my own.\u003c/p\u003e\n",
      "content_text": "\n# Story\n\nI can still rememember the day that we we realized our new baby girl had gone\ndays without a bowel movement. Holding her while she looked as if she was\nabout to pop at any moment, completely nervous for what was to come.\n\nLittle did we know what that strong little girl had in store for us. She was\nperparing us for something much bigger. Little did we know how much scary\nmedical journeys would soon become a \"normal\" part of our life. We spent two\nsolid years fighting for this girl every day.\n\nI still remember that Fall day. That day you drove my car home alone while I\nsat with our kids, patiently awaiting your arrival. When you arrived, no words\nneeded to be spoken, the minute you opened the car door I knew our lives had\nchanged forever.\n\nScared out of our minds we held it together the best we could for those two\nkids we were holding. Fast forward 6 weeks, you are recovering from the\nbiggest surgery of your life, and we notice that little girl is now feeding\nenough for herself. No longer in need of the feeding pump the g-tube. No\nlonger in need to wear a backpack with constant feed.\n\nAll along she was preparing us for something much bigger, soemthing we could\nnot have imagined, something we could not have taken without the training\nshe had given us.\n\nTogether we are stronger after the battles we have faced. The long battles we\nhave won. Stronger than ever we are ready for anything.\n\n# Promise\n\nI promise to stay strong and grow with you.\n\nI promise to hold your hand through the scary moments and tell you everything\nwill be ok. We will find a solution, we always do.\n\nI will check the house in the middle of the night when there are noises no\nmatter how tired I am. I know that it causes you really strong feelings that\nyou cannot shake until its been checked.\n\nI promise to sit by your side when you are down, no matter how many times we\nre-watch Big Bang Theory it will never be too much.\n\n# support\n\nI will accept support on my bad days. I know that I try to be the rock of the\nfamily and push until I cannot push anymore, no matter how much you tell me to\nrest. I really do appreciate when you take notice that things are going harder\nthan normal.\n\nI will accept your coaching in handling social emotional issues that are hard\nfor me to understand on my own.\n",
      "summary": "I can still rememember the day that we we realized our new baby girl had gone days without a bowel movement. Holding her while she looked as if she was about...",
      "date_published": "2021-05-20T10:07:29Z",
      "date_modified": "2021-05-20T10:07:29Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "personal"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/setup-pylsp/",
      "url": "https://go.waylonwalker.com/setup-pylsp/",
      "title": "python lsp setup",
      "content_html": "\u003cp\u003eSetting up python with the native nvim\u0026gt;0.5 lsp was mr\u003c/p\u003e\n\u003ch2 id=\"lsp-config\"\u003elsp-config \u003ca href=\"#lsp-config\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/neovim/nvim-lspconfig\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://github.com/neovim/nvim-lspconfig\u003c/a\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003elua\u003c/span\u003e \u003cspan class=\"p\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e \u003cspan class=\"nx\"\u003eEOF\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003erequire\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;lspconfig\u0026#39;\u003c/span\u003e.\u003cspan class=\"nx\"\u003epyright\u003c/span\u003e.\u003cspan class=\"nx\"\u003esetup\u003c/span\u003e{}\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003eEOF\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"pyls190\"\u003epyls#190 \u003ca href=\"#pyls190\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/palantir/python-language-server/issues/190\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://github.com/palantir/python-language-server/issues/190\u003c/a\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003elspconfig.pyls\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003esetup\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"n\"\u003ecmd\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;pyls\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"n\"\u003efiletypes\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;python\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"n\"\u003esettings\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003epyls\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"n\"\u003econfigurationSources\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;flake8\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"n\"\u003eplugins\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003ejedi_completion\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003eenabled\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"kc\"\u003etrue\u003c/span\u003e\u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003ejedi_hover\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003eenabled\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"kc\"\u003etrue\u003c/span\u003e\u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003ejedi_references\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003eenabled\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"kc\"\u003etrue\u003c/span\u003e\u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003ejedi_signature_help\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003eenabled\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"kc\"\u003etrue\u003c/span\u003e\u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003ejedi_symbols\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003eenabled\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"kc\"\u003etrue\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eall_scopes\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"kc\"\u003etrue\u003c/span\u003e\u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003epycodestyle\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003eenabled\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"kc\"\u003efalse\u003c/span\u003e\u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003eflake8\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"n\"\u003eenabled\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"kc\"\u003etrue\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"n\"\u003eignore\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"n\"\u003emaxLineLength\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"mi\"\u003e160\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003emypy\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003eenabled\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"kc\"\u003efalse\u003c/span\u003e\u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003eisort\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003eenabled\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"kc\"\u003efalse\u003c/span\u003e\u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003eyapf\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003eenabled\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"kc\"\u003efalse\u003c/span\u003e\u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003epylint\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003eenabled\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"kc\"\u003efalse\u003c/span\u003e\u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003epydocstyle\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003eenabled\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"kc\"\u003efalse\u003c/span\u003e\u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003emccabe\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003eenabled\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"kc\"\u003efalse\u003c/span\u003e\u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003epreload\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003eenabled\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"kc\"\u003efalse\u003c/span\u003e\u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003erope_completion\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003eenabled\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"kc\"\u003efalse\u003c/span\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"n\"\u003eon_attach\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eon_attach\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"mypy\"\u003emypy \u003ca href=\"#mypy\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eGetting mypy working with lsp was tricky for me.  I had some issues trying to\nrun mypy in ci and pyright in my editor and I really wanted them to match.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epipx install \u003cspan class=\"s1\"\u003e\u0026#39;python-lsp-server[all]\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epipx inject python-lsp-server pylsp-mypy\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nSetting up python with the native nvim\u003e0.5 lsp was mr\n\n\n## lsp-config\n\nhttps://github.com/neovim/nvim-lspconfig\n\n``` vim\nlua \u003c\u003c EOF\nrequire'lspconfig'.pyright.setup{}\nEOF\n```\n\n## pyls#190\n\nhttps://github.com/palantir/python-language-server/issues/190\n\n``` lua\nlspconfig.pyls.setup {\n  cmd = {\"pyls\"},\n  filetypes = {\"python\"},\n  settings = {\n    pyls = {\n      configurationSources = {\"flake8\"},\n      plugins = {\n        jedi_completion = {enabled = true},\n        jedi_hover = {enabled = true},\n        jedi_references = {enabled = true},\n        jedi_signature_help = {enabled = true},\n        jedi_symbols = {enabled = true, all_scopes = true},\n        pycodestyle = {enabled = false},\n        flake8 = {\n          enabled = true,\n          ignore = {},\n          maxLineLength = 160\n        },\n        mypy = {enabled = false},\n        isort = {enabled = false},\n        yapf = {enabled = false},\n        pylint = {enabled = false},\n        pydocstyle = {enabled = false},\n        mccabe = {enabled = false},\n        preload = {enabled = false},\n        rope_completion = {enabled = false}\n      }\n    }\n  },\n  on_attach = on_attach\n}\n```\n\n\n## mypy\n\nGetting mypy working with lsp was tricky for me.  I had some issues trying to\nrun mypy in ci and pyright in my editor and I really wanted them to match.\n\n``` bash\npipx install 'python-lsp-server[all]'\npipx inject python-lsp-server pylsp-mypy\n```\n",
      "summary": "Setting up python with the native nvim\u003e0.5 lsp was mr",
      "date_published": "2021-05-17T16:13:42Z",
      "date_modified": "2021-05-17T16:13:42Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "vim",
        "linux",
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/cherry-pick/",
      "url": "https://go.waylonwalker.com/cherry-pick/",
      "title": "How to use git cherry pick",
      "content_html": "\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e~/git via 🐍 v3.8.5\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ mkdir git-cherry-pick-learn\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e~/git via 🐍 v3.8.5\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ \u003cspan class=\"nb\"\u003ecd\u003c/span\u003e git-cherry-pick-learn\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e~/git/git-cherry-pick-learn\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ git init\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eInitialized empty Git repository in /home/walkews/git/git-cherry-pick-learn/.git/\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit-cherry-pick-learn on  main\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ touch readme.md\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit-cherry-pick-learn on  main \u003cspan class=\"o\"\u003e[\u003c/span\u003e?\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ git status\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eOn branch main\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eNo commits yet\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUntracked files:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"o\"\u003e(\u003c/span\u003euse \u003cspan class=\"s2\"\u003e\u0026#34;git add \u0026lt;file\u0026gt;...\u0026#34;\u003c/span\u003e to include in what will be committed\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        readme.md\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003enothing added to commit but untracked files present \u003cspan class=\"o\"\u003e(\u003c/span\u003euse \u003cspan class=\"s2\"\u003e\u0026#34;git add\u0026#34;\u003c/span\u003e to track\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit-cherry-pick-learn on  main \u003cspan class=\"o\"\u003e[\u003c/span\u003e?\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ git add .\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit-cherry-pick-learn on  main \u003cspan class=\"o\"\u003e[\u003c/span\u003e+\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ git commit -m \u003cspan class=\"s2\"\u003e\u0026#34;init readme\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e[\u003c/span\u003emain \u003cspan class=\"o\"\u003e(\u003c/span\u003eroot-commit\u003cspan class=\"o\"\u003e)\u003c/span\u003e ebd1ff2\u003cspan class=\"o\"\u003e]\u003c/span\u003e init readme\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e \u003cspan class=\"m\"\u003e1\u003c/span\u003e file changed, \u003cspan class=\"m\"\u003e0\u003c/span\u003e insertions\u003cspan class=\"o\"\u003e(\u003c/span\u003e+\u003cspan class=\"o\"\u003e)\u003c/span\u003e, \u003cspan class=\"m\"\u003e0\u003c/span\u003e deletions\u003cspan class=\"o\"\u003e(\u003c/span\u003e-\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e create mode \u003cspan class=\"m\"\u003e100644\u003c/span\u003e readme.md\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit-cherry-pick-learn on  main\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ \u003cspan class=\"nb\"\u003eecho\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Learn Cherry Pick\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eLearn Cherry Pick\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit-cherry-pick-learn on  main\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ git add .\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit-cherry-pick-learn on  main\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ git commit -m \u003cspan class=\"s2\"\u003e\u0026#34;add title\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003egit-cherry-pick-learn on  main\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e❯ echo \u0026#34;\u003c/span\u003e\u003cspan class=\"c1\"\u003e# Learn Cherry Pick\u0026#34; \u0026gt; readme.md\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit-cherry-pick-learn on  main \u003cspan class=\"o\"\u003e[\u003c/span\u003e!\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ git add .\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit-cherry-pick-learn on  main \u003cspan class=\"o\"\u003e[\u003c/span\u003e+\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ git diff\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit-cherry-pick-learn on  main \u003cspan class=\"o\"\u003e[\u003c/span\u003e+\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ git diff --staged\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ediff --git a/readme.md b/readme.md\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eindex e69de29..3490cef \u003cspan class=\"m\"\u003e100644\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e--- a/readme.md\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e+++ b/readme.md\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e@@ -0,0 +1 @@\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e+# Learn Cherry Pick\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit-cherry-pick-learn on  main \u003cspan class=\"o\"\u003e[\u003c/span\u003e+\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ git commit -m \u003cspan class=\"s2\"\u003e\u0026#34;add title\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e[\u003c/span\u003emain 148264d\u003cspan class=\"o\"\u003e]\u003c/span\u003e add title\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e \u003cspan class=\"m\"\u003e1\u003c/span\u003e file changed, \u003cspan class=\"m\"\u003e1\u003c/span\u003e insertion\u003cspan class=\"o\"\u003e(\u003c/span\u003e+\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit-cherry-pick-learn on  main\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ git checkout -b trash-branch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSwitched to a new branch \u003cspan class=\"s1\"\u003e\u0026#39;trash-branch\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit-cherry-pick-learn on  trash-branch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ \u003cspan class=\"nb\"\u003eecho\u003c/span\u003e \u0026gt;\u0026gt; readme.md\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit-cherry-pick-learn on  trash-branch \u003cspan class=\"o\"\u003e[\u003c/span\u003e!\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ \u003cspan class=\"nb\"\u003eecho\u003c/span\u003e \u0026gt;\u0026gt; readme.md\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit-cherry-pick-learn on  trash-branch \u003cspan class=\"o\"\u003e[\u003c/span\u003e!\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ \u003cspan class=\"nb\"\u003eecho\u003c/span\u003e \u0026gt;\u0026gt; \u003cspan class=\"s2\"\u003e\u0026#34;Cherry Pick is amazing\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit-cherry-pick-learn on  trash-branch \u003cspan class=\"o\"\u003e[\u003c/span\u003e!?\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ cat readme.md\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e───────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e       │ File: readme.md\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e───────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"m\"\u003e1\u003c/span\u003e   │ \u003cspan class=\"c1\"\u003e# Learn Cherry Pick\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"m\"\u003e2\u003c/span\u003e + │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"m\"\u003e3\u003c/span\u003e + │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e───────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit-cherry-pick-learn on  trash-branch \u003cspan class=\"o\"\u003e[\u003c/span\u003e!?\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ \u003cspan class=\"nb\"\u003eecho\u003c/span\u003e  \u003cspan class=\"s2\"\u003e\u0026#34;Cherry Pick is amazing\u0026#34;\u003c/span\u003e \u0026gt;\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit-cherry-pick-learn on  trash-branch \u003cspan class=\"o\"\u003e[\u003c/span\u003e!?\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ git commit -m \u003cspan class=\"s2\"\u003e\u0026#34;add whitespace\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eOn branch trash-branch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eChanges not staged \u003cspan class=\"k\"\u003efor\u003c/span\u003e commit:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"o\"\u003e(\u003c/span\u003euse \u003cspan class=\"s2\"\u003e\u0026#34;git add \u0026lt;file\u0026gt;...\u0026#34;\u003c/span\u003e to update what will be committed\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"o\"\u003e(\u003c/span\u003euse \u003cspan class=\"s2\"\u003e\u0026#34;git restore \u0026lt;file\u0026gt;...\u0026#34;\u003c/span\u003e to discard changes in working directory\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        modified:   readme.md\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUntracked files:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"o\"\u003e(\u003c/span\u003euse \u003cspan class=\"s2\"\u003e\u0026#34;git add \u0026lt;file\u0026gt;...\u0026#34;\u003c/span\u003e to include in what will be committed\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        Cherry Pick is amazing\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eno changes added to commit \u003cspan class=\"o\"\u003e(\u003c/span\u003euse \u003cspan class=\"s2\"\u003e\u0026#34;git add\u0026#34;\u003c/span\u003e and/or \u003cspan class=\"s2\"\u003e\u0026#34;git commit -a\u0026#34;\u003c/span\u003e\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit-cherry-pick-learn on  trash-branch \u003cspan class=\"o\"\u003e[\u003c/span\u003e!?\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ git add .\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit-cherry-pick-learn on  trash-branch \u003cspan class=\"o\"\u003e[\u003c/span\u003e+\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ git commit -m \u003cspan class=\"s2\"\u003e\u0026#34;add whitespace\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e[\u003c/span\u003etrash-branch 94f734b\u003cspan class=\"o\"\u003e]\u003c/span\u003e add whitespace\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e \u003cspan class=\"m\"\u003e2\u003c/span\u003e files changed, \u003cspan class=\"m\"\u003e3\u003c/span\u003e insertions\u003cspan class=\"o\"\u003e(\u003c/span\u003e+\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e create mode \u003cspan class=\"m\"\u003e100644\u003c/span\u003e Cherry Pick is amazing\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit-cherry-pick-learn on  trash-branch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ \u003cspan class=\"nb\"\u003eecho\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;TRASH\u0026#34;\u003c/span\u003e \u0026gt;\u0026gt; readme.md\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit-cherry-pick-learn on  trash-branch \u003cspan class=\"o\"\u003e[\u003c/span\u003e!\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ git add .\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit-cherry-pick-learn on  trash-branch \u003cspan class=\"o\"\u003e[\u003c/span\u003e+\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ git commit -m \u003cspan class=\"s2\"\u003e\u0026#34;add trash\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e[\u003c/span\u003etrash-branch ec43879\u003cspan class=\"o\"\u003e]\u003c/span\u003e add trash\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e \u003cspan class=\"m\"\u003e1\u003c/span\u003e file changed, \u003cspan class=\"m\"\u003e1\u003c/span\u003e insertion\u003cspan class=\"o\"\u003e(\u003c/span\u003e+\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit-cherry-pick-learn on  trash-branch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ \u003cspan class=\"nb\"\u003eecho\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Cherry Pick is Amazing\u0026#34;\u003c/span\u003e \u0026gt;\u0026gt; readme.md\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit-cherry-pick-learn on  trash-branch \u003cspan class=\"o\"\u003e[\u003c/span\u003e!\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ git commit -m \u003cspan class=\"s2\"\u003e\u0026#34;add cherry pick is amazing\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eOn branch trash-branch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eChanges not staged \u003cspan class=\"k\"\u003efor\u003c/span\u003e commit:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"o\"\u003e(\u003c/span\u003euse \u003cspan class=\"s2\"\u003e\u0026#34;git add \u0026lt;file\u0026gt;...\u0026#34;\u003c/span\u003e to update what will be committed\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"o\"\u003e(\u003c/span\u003euse \u003cspan class=\"s2\"\u003e\u0026#34;git restore \u0026lt;file\u0026gt;...\u0026#34;\u003c/span\u003e to discard changes in working directory\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        modified:   readme.md\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eno changes added to commit \u003cspan class=\"o\"\u003e(\u003c/span\u003euse \u003cspan class=\"s2\"\u003e\u0026#34;git add\u0026#34;\u003c/span\u003e and/or \u003cspan class=\"s2\"\u003e\u0026#34;git commit -a\u0026#34;\u003c/span\u003e\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit-cherry-pick-learn on  trash-branch \u003cspan class=\"o\"\u003e[\u003c/span\u003e!\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ git add .\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit-cherry-pick-learn on  trash-branch \u003cspan class=\"o\"\u003e[\u003c/span\u003e+\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ git commit -m \u003cspan class=\"s2\"\u003e\u0026#34;add cherry pick is amazing\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e[\u003c/span\u003etrash-branch 6691a34\u003cspan class=\"o\"\u003e]\u003c/span\u003e add cherry pick is amazing\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e \u003cspan class=\"m\"\u003e1\u003c/span\u003e file changed, \u003cspan class=\"m\"\u003e1\u003c/span\u003e insertion\u003cspan class=\"o\"\u003e(\u003c/span\u003e+\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit-cherry-pick-learn on  trash-branch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ cat readme.md\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e───────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e       │ File: readme.md\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e───────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"m\"\u003e1\u003c/span\u003e   │ \u003cspan class=\"c1\"\u003e# Learn Cherry Pick\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"m\"\u003e2\u003c/span\u003e   │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"m\"\u003e3\u003c/span\u003e   │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"m\"\u003e4\u003c/span\u003e   │ TRASH\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"m\"\u003e5\u003c/span\u003e   │ Cherry Pick is Amazing\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e───────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit-cherry-pick-learn on  trash-branch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ git log\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecommit 6691a343e0ba35d0700c49ec09a99fa8f1f385b9 \u003cspan class=\"o\"\u003e(\u003c/span\u003eHEAD -\u0026gt; trash-branch\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eAuthor: Waylon Walker \u0026lt;walker_waylon_s@cat.com\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eDate:   Thu May \u003cspan class=\"m\"\u003e13\u003c/span\u003e 08:54:58 \u003cspan class=\"m\"\u003e2021\u003c/span\u003e -0500\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    add cherry pick is amazing\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecommit ec438790af36c23aef8eee2122f0dda95313496b\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eAuthor: Waylon Walker \u0026lt;walker_waylon_s@cat.com\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eDate:   Thu May \u003cspan class=\"m\"\u003e13\u003c/span\u003e 08:54:07 \u003cspan class=\"m\"\u003e2021\u003c/span\u003e -0500\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    add trash\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecommit 94f734b1adcee0f503c818c0f6bc9da97a0066e2\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eAuthor: Waylon Walker \u0026lt;walker_waylon_s@cat.com\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eDate:   Thu May \u003cspan class=\"m\"\u003e13\u003c/span\u003e 08:50:35 \u003cspan class=\"m\"\u003e2021\u003c/span\u003e -0500\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    add whitespace\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecommit 148264da5641033caa537727c6d5199068d58a4d \u003cspan class=\"o\"\u003e(\u003c/span\u003emain\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eAuthor: Waylon Walker \u0026lt;walker_waylon_s@cat.com\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eDate:   Thu May \u003cspan class=\"m\"\u003e13\u003c/span\u003e 08:48:58 \u003cspan class=\"m\"\u003e2021\u003c/span\u003e -0500\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    add title\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecommit ebd1ff22493d860e001f2b96ec948684d496355b\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eAuthor: Waylon Walker \u0026lt;walker_waylon_s@cat.com\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eDate:   Thu May \u003cspan class=\"m\"\u003e13\u003c/span\u003e 08:47:10 \u003cspan class=\"m\"\u003e2021\u003c/span\u003e -0500\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    init readme\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit-cherry-pick-learn on  trash-branch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ git checkout main\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSwitched to branch \u003cspan class=\"s1\"\u003e\u0026#39;main\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit-cherry-pick-learn on  main\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ cat readme.md\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e───────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e       │ File: readme.md\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e───────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"m\"\u003e1\u003c/span\u003e   │ \u003cspan class=\"c1\"\u003e# Learn Cherry Pick\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e───────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n``` bash\n~/git via 🐍 v3.8.5\n❯ mkdir git-cherry-pick-learn\n\n~/git via 🐍 v3.8.5\n❯ cd git-cherry-pick-learn\n\n~/git/git-cherry-pick-learn\n❯ git init\nInitialized empty Git repository in /home/walkews/git/git-cherry-pick-learn/.git/\n\ngit-cherry-pick-learn on  main\n❯ touch readme.md\n\ngit-cherry-pick-learn on  main [?]\n❯ git status\nOn branch main\n\nNo commits yet\n\nUntracked files:\n  (use \"git add \u003cfile\u003e...\" to include in what will be committed)\n        readme.md\n\nnothing added to commit but untracked files present (use \"git add\" to track)\n\ngit-cherry-pick-learn on  main [?]\n❯ git add .\n\ngit-cherry-pick-learn on  main [+]\n❯ git commit -m \"init readme\"\n[main (root-commit) ebd1ff2] init readme\n 1 file changed, 0 insertions(+), 0 deletions(-)\n create mode 100644 readme.md\n\ngit-cherry-pick-learn on  main\n❯ echo \"Learn Cherry Pick\"\nLearn Cherry Pick\n\ngit-cherry-pick-learn on  main\n❯ git add .\n\ngit-cherry-pick-learn on  main\n❯ git commit -m \"add title\n\ngit-cherry-pick-learn on  main\n❯ echo \"# Learn Cherry Pick\" \u003e readme.md\n\ngit-cherry-pick-learn on  main [!]\n❯ git add .\n\ngit-cherry-pick-learn on  main [+]\n❯ git diff\n\ngit-cherry-pick-learn on  main [+]\n❯ git diff --staged\ndiff --git a/readme.md b/readme.md\nindex e69de29..3490cef 100644\n--- a/readme.md\n+++ b/readme.md\n@@ -0,0 +1 @@\n+# Learn Cherry Pick\n\ngit-cherry-pick-learn on  main [+]\n❯ git commit -m \"add title\"\n[main 148264d] add title\n 1 file changed, 1 insertion(+)\n\ngit-cherry-pick-learn on  main\n❯ git checkout -b trash-branch\nSwitched to a new branch 'trash-branch'\n\ngit-cherry-pick-learn on  trash-branch\n❯ echo \u003e\u003e readme.md\n\ngit-cherry-pick-learn on  trash-branch [!]\n❯ echo \u003e\u003e readme.md\n\ngit-cherry-pick-learn on  trash-branch [!]\n❯ echo \u003e\u003e \"Cherry Pick is amazing\"\n\ngit-cherry-pick-learn on  trash-branch [!?]\n❯ cat readme.md\n───────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n       │ File: readme.md\n───────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n   1   │ # Learn Cherry Pick\n   2 + │\n   3 + │\n───────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n\ngit-cherry-pick-learn on  trash-branch [!?]\n❯ echo  \"Cherry Pick is amazing\" \u003e\u003e\n\ngit-cherry-pick-learn on  trash-branch [!?]\n❯ git commit -m \"add whitespace\"\nOn branch trash-branch\nChanges not staged for commit:\n  (use \"git add \u003cfile\u003e...\" to update what will be committed)\n  (use \"git restore \u003cfile\u003e...\" to discard changes in working directory)\n        modified:   readme.md\n\nUntracked files:\n  (use \"git add \u003cfile\u003e...\" to include in what will be committed)\n        Cherry Pick is amazing\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\n\ngit-cherry-pick-learn on  trash-branch [!?]\n❯ git add .\n\ngit-cherry-pick-learn on  trash-branch [+]\n❯ git commit -m \"add whitespace\"\n[trash-branch 94f734b] add whitespace\n 2 files changed, 3 insertions(+)\n create mode 100644 Cherry Pick is amazing\n```\n\n``` bash\ngit-cherry-pick-learn on  trash-branch\n❯ echo \"TRASH\" \u003e\u003e readme.md\n\ngit-cherry-pick-learn on  trash-branch [!]\n❯ git add .\n\ngit-cherry-pick-learn on  trash-branch [+]\n❯ git commit -m \"add trash\"\n[trash-branch ec43879] add trash\n 1 file changed, 1 insertion(+)\n\ngit-cherry-pick-learn on  trash-branch\n❯ echo \"Cherry Pick is Amazing\" \u003e\u003e readme.md\n\ngit-cherry-pick-learn on  trash-branch [!]\n❯ git commit -m \"add cherry pick is amazing\"\nOn branch trash-branch\nChanges not staged for commit:\n  (use \"git add \u003cfile\u003e...\" to update what will be committed)\n  (use \"git restore \u003cfile\u003e...\" to discard changes in working directory)\n        modified:   readme.md\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\n\ngit-cherry-pick-learn on  trash-branch [!]\n❯ git add .\n\ngit-cherry-pick-learn on  trash-branch [+]\n❯ git commit -m \"add cherry pick is amazing\"\n[trash-branch 6691a34] add cherry pick is amazing\n 1 file changed, 1 insertion(+)\n\ngit-cherry-pick-learn on  trash-branch\n❯ cat readme.md\n───────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n       │ File: readme.md\n───────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n   1   │ # Learn Cherry Pick\n   2   │\n   3   │\n   4   │ TRASH\n   5   │ Cherry Pick is Amazing\n───────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n```\n\n``` bash\ngit-cherry-pick-learn on  trash-branch\n❯ git log\ncommit 6691a343e0ba35d0700c49ec09a99fa8f1f385b9 (HEAD -\u003e trash-branch)\nAuthor: Waylon Walker \u003cwalker_waylon_s@cat.com\u003e\nDate:   Thu May 13 08:54:58 2021 -0500\n\n    add cherry pick is amazing\n\ncommit ec438790af36c23aef8eee2122f0dda95313496b\nAuthor: Waylon Walker \u003cwalker_waylon_s@cat.com\u003e\nDate:   Thu May 13 08:54:07 2021 -0500\n\n    add trash\n\ncommit 94f734b1adcee0f503c818c0f6bc9da97a0066e2\nAuthor: Waylon Walker \u003cwalker_waylon_s@cat.com\u003e\nDate:   Thu May 13 08:50:35 2021 -0500\n\n    add whitespace\n\ncommit 148264da5641033caa537727c6d5199068d58a4d (main)\nAuthor: Waylon Walker \u003cwalker_waylon_s@cat.com\u003e\nDate:   Thu May 13 08:48:58 2021 -0500\n\n    add title\n\ncommit ebd1ff22493d860e001f2b96ec948684d496355b\nAuthor: Waylon Walker \u003cwalker_waylon_s@cat.com\u003e\nDate:   Thu May 13 08:47:10 2021 -0500\n\n    init readme\n```\n\n``` bash\ngit-cherry-pick-learn on  trash-branch\n❯ git checkout main\nSwitched to branch 'main'\n\ngit-cherry-pick-learn on  main\n❯ cat readme.md\n───────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n       │ File: readme.md\n───────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n   1   │ # Learn Cherry Pick\n───────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────\n\n```\n",
      "date_published": "2021-05-13T08:51:45Z",
      "date_modified": "2021-05-13T08:51:45Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "cli",
        "git"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/vim-fugitive/",
      "url": "https://go.waylonwalker.com/vim-fugitive/",
      "title": "Vim Fugitive",
      "content_html": "\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"nx\"\u003eG\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"nx\"\u003eG\u003c/span\u003e \u003cspan class=\"nx\"\u003estatus\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"nx\"\u003eG\u003c/span\u003e \u003cspan class=\"nx\"\u003ecommit\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"nx\"\u003eG\u003c/span\u003e \u003cspan class=\"nx\"\u003eadd\u003c/span\u003e %\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"nx\"\u003eGdiff\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"nx\"\u003eG\u003c/span\u003e \u003cspan class=\"nx\"\u003epush\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"nx\"\u003eGlog\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"add-current-file-and-commit-with-diff-in-a-split\"\u003eAdd current file and commit with diff in a split \u003ca href=\"#add-current-file-and-commit-with-diff-in-a-split\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003efunction\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"nx\"\u003es\u003c/span\u003e:\u003cspan class=\"nx\"\u003eGitAdd\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nx\"\u003eexe\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;G add %\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nx\"\u003eexe\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;G diff --staged\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nx\"\u003eexe\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;only\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nx\"\u003eexe\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;G commit\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eendfunction\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"nx\"\u003ecommand\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"nx\"\u003eGitAdd\u003c/span\u003e :\u003cspan class=\"nx\"\u003ecall\u003c/span\u003e \u003cspan class=\"nx\"\u003es\u003c/span\u003e:\u003cspan class=\"nx\"\u003eGitAdd\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003ennoremap\u003c/span\u003e \u003cspan class=\"nx\"\u003egic\u003c/span\u003e :\u003cspan class=\"nx\"\u003eGitAdd\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nx\"\u003eCR\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"only\"\u003e:on[ly] \u003ca href=\"#only\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eC-W o\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e:on[ly] will make the current buffer the only one on the screen.  This is super helpful as many of fugitive commands will open in a split by default.\u003c/p\u003e\n\u003ch2 id=\"c-i-c-o\"\u003eC-I C-O \u003ca href=\"#c-i-c-o\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003ecycle through the jumplist\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eThis one has nothing to do with fugitive, but is a native vim feature that\nmakes fugitive glorious.  Before I realized how to utilize \u003ccode\u003eC-i\u003c/code\u003e and \u003ccode\u003eC-o\u003c/code\u003e, I\nwould get completely lost when using fugitive.  Digging deep into the log,\nopening a file from a specific commit, then no way to get back where I was in\nthe log.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eC-i jump\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3 id=\"jumps\"\u003e:jump[s] \u003ca href=\"#jumps\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003e\u003cem\u003eshow the jumplist\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eThe jumplist is sorted Oldest to newest\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3 id=\"telescope-jumplist\"\u003e:Telescope jumplist \u003ca href=\"#telescope-jumplist\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eWhen navigating the jumplist with \u003ccode\u003e:Telescope jumplist\u003c/code\u003e, it will add a new entry\nto the jumplist and let you get back to where you were with a \u003ccode\u003eC-O\u003c/code\u003e.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e:Telescope jumplist adds to the jumplist\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"c-w-j--c-w-l\"\u003eC-W J / C-W L \u003ca href=\"#c-w-j--c-w-l\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"g-log\"\u003e:G log \u003ca href=\"#g-log\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e:G log\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e:G log -p\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e:Glog\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"ggrep\"\u003eGgrep \u003ca href=\"#ggrep\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e:Ggrep python **/*md\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eUnlike \u003ccode\u003e:vim[grep]\u003c/code\u003e you don’t need to specify a file glob.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e:Ggrep python\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"staging-hunks\"\u003eStaging Hunks \u003ca href=\"#staging-hunks\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIn the file you want to stage hunks of run \u003ccode\u003e:Gdiff\u003c/code\u003e.  Then use vim’s diff\ncommands (\u003ccode\u003edp\u003c/code\u003e, \u003ccode\u003edo\u003c/code\u003e, \u003ccode\u003e:diffput\u003c/code\u003e, \u003ccode\u003e:diffget\u003c/code\u003e) to move the hunk between the\nstage/index.  Then write the file to stage.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"n\"\u003eGdiff\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003edp\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"n\"\u003ew\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"n\"\u003eGcommit\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n\n``` vim\n:G\n:G status\n:G commit\n:G add %\n:Gdiff\n:G push\n:Glog\n```\n\n\n## Add current file and commit with diff in a split\n\n``` vim\nfunction! s:GitAdd()\n    exe \"G add %\"\n    exe \"G diff --staged\"\n    exe \"only\"\n    exe \"G commit\"\nendfunction\n:command! GitAdd :call s:GitAdd()\nnnoremap gic :GitAdd\u003cCR\u003e\n```\n\n## :on[ly]\n\n_C-W o_\n\n:on[ly] will make the current buffer the only one on the screen.  This is super helpful as many of fugitive commands will open in a split by default.\n\n\n## C-I C-O\n\n_cycle through the jumplist_\n\nThis one has nothing to do with fugitive, but is a native vim feature that\nmakes fugitive glorious.  Before I realized how to utilize `C-i` and `C-o`, I\nwould get completely lost when using fugitive.  Digging deep into the log,\nopening a file from a specific commit, then no way to get back where I was in\nthe log.\n\n\n\u003e C-i jump\n\n### :jump[s]\n\n_show the jumplist_\n\n\u003e The jumplist is sorted Oldest to newest\n\n\n### :Telescope jumplist\n\nWhen navigating the jumplist with `:Telescope jumplist`, it will add a new entry\nto the jumplist and let you get back to where you were with a `C-O`.\n\n\u003e :Telescope jumplist adds to the jumplist\n\n\n## C-W J / C-W L\n\n## :G log\n\n``` bash\n:G log\n:G log -p\n:Glog\n```\n\n## Ggrep\n\n``` bash\n:Ggrep python **/*md\n```\n\nUnlike `:vim[grep]` you don't need to specify a file glob.\n``` bash\n:Ggrep python\n```\n\n## Staging Hunks\n\nIn the file you want to stage hunks of run `:Gdiff`.  Then use vim's diff\ncommands (`dp`, `do`, `:diffput`, `:diffget`) to move the hunk between the\nstage/index.  Then write the file to stage.\n\n``` python\n:Gdiff\ndp\n:w\n:Gcommit\n```\n",
      "summary": "_",
      "date_published": "2021-05-08T22:51:53Z",
      "date_modified": "2021-05-08T22:51:53Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "kedro",
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/vim-diffsplit/",
      "url": "https://go.waylonwalker.com/vim-diffsplit/",
      "title": "How to compare two files in vim",
      "content_html": "\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"nx\"\u003evert\u003c/span\u003e \u003cspan class=\"nx\"\u003ediffsplit\u003c/span\u003e \u003cspan class=\"nx\"\u003efiletwo\u003c/span\u003e.\u003cspan class=\"nx\"\u003epy\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"nx\"\u003ediffthis\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"nx\"\u003ediffoff\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"nx\"\u003eGdiff\u003c/span\u003e \u003cspan class=\"nx\"\u003emain\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n\n``` vim\n:vert diffsplit filetwo.py\n```\n\n``` vim\n:diffthis\n```\n\n``` vim\n:diffoff\n```\n\n``` vim\n:Gdiff main\n```\n",
      "date_published": "2021-05-06T09:43:17Z",
      "date_modified": "2021-05-06T09:43:17Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux",
        "vim"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/custom-kedro-logger/",
      "url": "https://go.waylonwalker.com/custom-kedro-logger/",
      "title": "Custom Kedro Logger",
      "content_html": "\u003cp\u003eDRAFT -\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003eformatters\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003emine\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"nt\"\u003eformat\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;%(asctime)s - %(name)s - %(levelname)s - %(message)s - %(me)s\u0026#34;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003ehandlers\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003emine_handler\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"nt\"\u003eclass\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003elogging.StreamHandler\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"nt\"\u003elevel\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eINFO\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"nt\"\u003eformatter\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003emine\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"nt\"\u003estream\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eext://sys.stdout\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003eloggers\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eme\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"nt\"\u003elevel\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eDEBUG\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"nt\"\u003ehandlers\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"l\"\u003emine_handler]\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"nt\"\u003eroot\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003elevel\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eINFO\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003ehandlers\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"l\"\u003econsole, info_file_handler, error_file_handler]\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nDRAFT -\n\n\n\n``` yaml\nformatters:\n    mine:\n        format: \"%(asctime)s - %(name)s - %(levelname)s - %(message)s - %(me)s\"\n\nhandlers:\n\n    mine_handler:\n        class: logging.StreamHandler\n        level: INFO\n        formatter: mine\n        stream: ext://sys.stdout\n\nloggers:\n    me:\n        level: DEBUG\n        handlers: [mine_handler]\n\nroot:\n    level: INFO\n    handlers: [console, info_file_handler, error_file_handler]\n```\n",
      "summary": "DRAFT -",
      "date_published": "2021-05-02T09:45:22Z",
      "date_modified": "2021-05-02T09:45:22Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "kedro",
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/docker-deep-dive/",
      "url": "https://go.waylonwalker.com/docker-deep-dive/",
      "title": "📝 Docker Deep Dive - Notes",
      "content_html": "\u003cp\u003e\u003ca href=\"https://www.hanselminutes.com/784/doing-open-source-with-brian-douglas\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.hanselminutes.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.hanselminutes.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://www.hanselminutes.com/784/doing-open-source-with-brian-douglas\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"play-with-docker\"\u003ePlay With Docker \u003ca href=\"#play-with-docker\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eA handy way to try weird things in docker is using\n\u003ca href=\"https://play-with-docker.com\"\u003eplay-with-docker\u003c/a\u003e.  You get a four hour session for\nfree, after four hours everything will be deleted, but you can start a new\nsession.\u003c/p\u003e\n\u003ch3 id=\"installing-docker-on-linux\"\u003eInstalling Docker on Linux \u003ca href=\"#installing-docker-on-linux\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eInstalling on Ubuntu.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ewget -qO- https://get.docker.com/ \u003cspan class=\"p\"\u003e|\u003c/span\u003e sh\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"running-docker-commands-without-sudo\"\u003eRunning Docker commands without sudo \u003ca href=\"#running-docker-commands-without-sudo\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eIn order to run docker commands without using sudo you need to add docker to\nyour group.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo usermod -aG docker ubuntu\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"architecture-and-theory\"\u003eArchitecture and Theory \u003ca href=\"#architecture-and-theory\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eContainer\u003c/strong\u003e - Isolated area of an OS with resource usage limits applied.\u003c/p\u003e\n\u003cp\u003eNamespaces and Control Groups are hard, which is why containers were unusable\nby mortals before docker.\u003c/p\u003e\n\u003ch2 id=\"namespaces\"\u003eNamespaces \u003ca href=\"#namespaces\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eIsolation\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eEach container looks and feels like a regular OS. It has its own eth0, users,\nkernel.  These are completely isolated from every other container running on\nthe system.\u003c/p\u003e\n\u003cp\u003eNamespaces are analogous to what Hypervisors do on hardware.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eProcess ID (pid)\u003c/li\u003e\n\u003cli\u003eNetwork (net)\u003c/li\u003e\n\u003cli\u003eFilesystem/mount (mnt)\u003c/li\u003e\n\u003cli\u003eInter-proc comms (ipc)\u003c/li\u003e\n\u003cli\u003eUTS (uts)\u003c/li\u003e\n\u003cli\u003eUser (usr)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"control-groups\"\u003eControl Groups \u003ca href=\"#control-groups\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eResource usage limits\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\n\u003chttps://www.hanselminutes.com/784/doing-open-source-with-brian-douglas\u003e\n\n## Play With Docker\n\nA handy way to try weird things in docker is using\n[play-with-docker](https://play-with-docker.com).  You get a four hour session for\nfree, after four hours everything will be deleted, but you can start a new\nsession.\n\n### Installing Docker on Linux\n\nInstalling on Ubuntu.\n\n``` bash\nwget -qO- https://get.docker.com/ | sh\n```\n\n### Running Docker commands without sudo\n\nIn order to run docker commands without using sudo you need to add docker to\nyour group.\n\n``` bash\nsudo usermod -aG docker ubuntu\n```\n\n## Architecture and Theory\n\n**Container** - Isolated area of an OS with resource usage limits applied.\n\nNamespaces and Control Groups are hard, which is why containers were unusable\nby mortals before docker.\n\n## Namespaces\n\n_Isolation_\n\nEach container looks and feels like a regular OS. It has its own eth0, users,\nkernel.  These are completely isolated from every other container running on\nthe system.\n\nNamespaces are analogous to what Hypervisors do on hardware.\n\n* Process ID (pid)\n* Network (net)\n* Filesystem/mount (mnt)\n* Inter-proc comms (ipc)\n* UTS (uts)\n* User (usr)\n\n## Control Groups\n\n_Resource usage limits_\n",
      "date_published": "2021-04-23T09:41:29Z",
      "date_modified": "2021-04-23T09:41:29Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "docker",
        "linux"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/mentorship-vs-sponsorship/",
      "url": "https://go.waylonwalker.com/mentorship-vs-sponsorship/",
      "title": "Mentorship Vs Sponsorship",
      "content_html": "\u003cp\u003e\u003ca href=\"https://www.hanselminutes.com/784/doing-open-source-with-brian-douglas\" class=\"hoverlink  has-avatar has-avatar-before\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.hanselminutes.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.hanselminutes.com.ico\"\u003ehttps://www.hanselminutes.com/784/doing-open-source-with-brian-douglas\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\n[https://www.hanselminutes.com/784/doing-open-source-with-brian-douglas](https://www.hanselminutes.com/784/doing-open-source-with-brian-douglas){.hoverlink}\n",
      "summary": "https://www.hanselminutes.com/784/doing-open-source-with-brian-douglas",
      "date_published": "2021-04-17T00:00:00Z",
      "date_modified": "2021-04-17T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "catalytic",
        "soft"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/zev-averbach-interview/",
      "url": "https://go.waylonwalker.com/zev-averbach-interview/",
      "title": "Zev Averbach Interview",
      "content_html": "\u003cp\u003eZev Averbach,\n\u003cem\u003eFrustrated spreadsheet jockey to software developer at 36\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eQ: Tell me about your journey as a spreadsheet jockey into Data Engineering?\u003c/p\u003e\n\u003cp\u003eA: First of all, it’s hilarious that I accidentally found your questions for this interview by Googling myself. 😊\u003c/p\u003e\n\u003cp\u003eI’ve always been a frustrated software user, and that frustration led me to be a “power user” (keyboard shortcuts etc) of my most used applications, as well as a “visual coder” using desktop automation like Alfred and Keyboard Maestro (Mac).\u003c/p\u003e\n\u003cp\u003eNow that I’ve met data analysts and finance people that use Excel all day, I don’t think I’d claim to have been a true “spreadsheet jockey” in comparison to them. However, hitting up against the limitations of spreadsheets for running \u003ca href=\"https://avtranscription.com\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/avtranscription.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/avtranscription.com.png\" class=\"has-avatar  has-avatar-before\"\u003emy transcription business\u003c/a\u003e – specifically for bookkeeping – created a new frustration for me:\u003c/p\u003e\n\u003cp\u003eAs the business grew I was spending more and more time copying entries from Google Sheets to the Freshbooks web app for invoicing purposes. I tried to automate that process, but I was doing it using desktop automation, which was finicky and still more time-consuming than I wanted.\u003c/p\u003e\n\u003cp\u003eThe other big frustration was assigning transcription work: My days were punctuated with the task of assigning and re-assigning transcription projects using dropdown menus in a web app someone had built for me previously.\u003c/p\u003e\n\u003cp\u003eI tried to get devs to automate those two things – invoicing and assignment of work – but I wasn’t successful, and had been waiting \u003cem\u003ea couple of years\u003c/em\u003e for this to come through.\u003c/p\u003e\n\u003cp\u003eThe short version of my journey is that I learned to code and ended up building these automations as my first “real world” projects.\u003c/p\u003e\n\u003cp\u003eThe medium version is that it turned out to be really fun to write software, and that I’ve written quite a bit more since then, both for myself and my company as well as for others (open source and contract work). Then I got a job as a data engineer solely based on my Python skills, and have been writing and maintaining a pile of Airflow DAGs, as well as the code that generates many of them, for the past couple years.\u003c/p\u003e\n\u003cp\u003eQ: \u003cstrong\u003eWhy\u003c/strong\u003e should a \u003cem\u003e“spreadsheet jockey”\u003c/em\u003e add something like Python to their\ntoolbelt?\u003c/p\u003e\n\u003cp\u003eA: To simply make their life a lot easier. Sure, heavy spreadsheet users have probably hit up against the size and performance limitations of their tool, and Python- or Scala-based tools are definitely viable solutions to that. But for me the power of imperative programming, of translating steps A to Z that you normally perform in a spreadsheet into \u003cstrong\u003ehuman- and machine-readable language\u003c/strong\u003e, is a magic you can’t ignore once you know about it.\u003c/p\u003e\n\u003cp\u003eOn the ground, this magic translates into massive productivity gains, and frees you up to do higher-level thinking and experimentation which you don’t normally have time for.\u003c/p\u003e\n\u003cp\u003eQ: What tips do you have for others trying to expand their skillset later in\nlife with limited time and resources for learning?\u003c/p\u003e\n\u003cp\u003eA: That’s a hard one because I actually had abundant time and sufficient resources for learning and noodling around with Python and, later on, JS. I know someone like \u003ca href=\"https://twitter.com/DThompsonDev\"\u003eDanny Thompson\u003c/a\u003e would say – or at least model – “sleep less, work when your kids are sleeping,” etc., but I’m not totally sure that’s doable for many. Personally, I’m pretty sensitive to sleep deprivation.\u003c/p\u003e\n\u003cp\u003eSo here’s a path that could work for a subset of the “later in life coding learners” which resembles mine at least a little: Find ways to make your job more productive using Python or JS. If there’s something mind-numbing and/or repetitive which you’d like to not do anymore, make that the project you build as you’re learning to code. \u003ca href=\"https://automatetheboringstuff.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/automatetheboringstuff.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/automatetheboringstuff.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eAutomate the Boring Stuff\u003c/a\u003e is a great jumping-off point.\u003c/p\u003e\n\u003cp\u003eIf you can’t think of anything to automate, you’re probably not looking hard enough. 😆 But if you think harder and still can’t come up with anything, \u003ca href=\"mailto:zev@averba.ch\"\u003eemail me\u003c/a\u003e!\u003c/p\u003e\n\u003cp\u003eQ: How do you fight imposter syndrome after a mid-career switch?\u003c/p\u003e\n\u003cp\u003eA: I have no answer for this, as I still fight the syndrome on a daily basis! Anecdotally this doesn’t really go away, even for CS majors with successful startup acquisitions, etc. My current theory for why this could be is the largely solitudinous nature of writing software. I don’t think coding has to be a solo activity, but it’s just worked out that way for most of us. As you know, Waylon, I really enjoy pair programming, especially as a way to teach and learn, but I also think it’s a great way to fight the syndrome. This is partly because you’ll inevitably discover that everyone’s knowledge is uneven and that there’s always something you as a novice can teach a more experienced dev.\u003c/p\u003e\n\u003cp\u003eTo put it in simpler terms, how can you even know whether you’re an imposter if you work in a one-person silo all day?\u003c/p\u003e\n\u003cp\u003eQ: Where can we find you online?\u003c/p\u003e\n\u003cp\u003eA: That’d be \u003ca href=\"https://averba.ch\"\u003ehere\u003c/a\u003e!\u003c/p\u003e\n",
      "content_text": "\nZev Averbach, \n_Frustrated spreadsheet jockey to software developer at 36_\n\nQ: Tell me about your journey as a spreadsheet jockey into Data Engineering?\n\nA: First of all, it's hilarious that I accidentally found your questions for this interview by Googling myself. 😊\n\nI've always been a frustrated software user, and that frustration led me to be a \"power user\" (keyboard shortcuts etc) of my most used applications, as well as a \"visual coder\" using desktop automation like Alfred and Keyboard Maestro (Mac).\n\nNow that I've met data analysts and finance people that use Excel all day, I don't think I'd claim to have been a true \"spreadsheet jockey\" in comparison to them. However, hitting up against the limitations of spreadsheets for running [my transcription business](https://avtranscription.com) -- specifically for bookkeeping -- created a new frustration for me: \n\nAs the business grew I was spending more and more time copying entries from Google Sheets to the Freshbooks web app for invoicing purposes. I tried to automate that process, but I was doing it using desktop automation, which was finicky and still more time-consuming than I wanted. \n\nThe other big frustration was assigning transcription work: My days were punctuated with the task of assigning and re-assigning transcription projects using dropdown menus in a web app someone had built for me previously.\n\nI tried to get devs to automate those two things -- invoicing and assignment of work -- but I wasn't successful, and had been waiting *a couple of years* for this to come through.\n\nThe short version of my journey is that I learned to code and ended up building these automations as my first \"real world\" projects.\n\nThe medium version is that it turned out to be really fun to write software, and that I've written quite a bit more since then, both for myself and my company as well as for others (open source and contract work). Then I got a job as a data engineer solely based on my Python skills, and have been writing and maintaining a pile of Airflow DAGs, as well as the code that generates many of them, for the past couple years.\n\nQ: **Why** should a _\"spreadsheet jockey\"_ add something like Python to their\ntoolbelt?\n\nA: To simply make their life a lot easier. Sure, heavy spreadsheet users have probably hit up against the size and performance limitations of their tool, and Python- or Scala-based tools are definitely viable solutions to that. But for me the power of imperative programming, of translating steps A to Z that you normally perform in a spreadsheet into **human- and machine-readable language**, is a magic you can't ignore once you know about it.\n\nOn the ground, this magic translates into massive productivity gains, and frees you up to do higher-level thinking and experimentation which you don't normally have time for.\n\nQ: What tips do you have for others trying to expand their skillset later in\nlife with limited time and resources for learning?\n\nA: That's a hard one because I actually had abundant time and sufficient resources for learning and noodling around with Python and, later on, JS. I know someone like [Danny Thompson](https://twitter.com/DThompsonDev) would say -- or at least model -- \"sleep less, work when your kids are sleeping,\" etc., but I'm not totally sure that's doable for many. Personally, I'm pretty sensitive to sleep deprivation.\n\nSo here's a path that could work for a subset of the \"later in life coding learners\" which resembles mine at least a little: Find ways to make your job more productive using Python or JS. If there's something mind-numbing and/or repetitive which you'd like to not do anymore, make that the project you build as you're learning to code. [Automate the Boring Stuff](https://automatetheboringstuff.com/) is a great jumping-off point.\n\nIf you can't think of anything to automate, you're probably not looking hard enough. 😆 But if you think harder and still can't come up with anything, [email me](mailto:zev@averba.ch)!\n\nQ: How do you fight imposter syndrome after a mid-career switch?\n\nA: I have no answer for this, as I still fight the syndrome on a daily basis! Anecdotally this doesn't really go away, even for CS majors with successful startup acquisitions, etc. My current theory for why this could be is the largely solitudinous nature of writing software. I don't think coding has to be a solo activity, but it's just worked out that way for most of us. As you know, Waylon, I really enjoy pair programming, especially as a way to teach and learn, but I also think it's a great way to fight the syndrome. This is partly because you'll inevitably discover that everyone's knowledge is uneven and that there's always something you as a novice can teach a more experienced dev. \n\nTo put it in simpler terms, how can you even know whether you're an imposter if you work in a one-person silo all day?\n\nQ: Where can we find you online?\n\nA: That'd be [here](https://averba.ch)!\n",
      "summary": "Zev Averbach, _",
      "date_published": "2021-04-09T17:40:42Z",
      "date_modified": "2021-04-09T17:40:42Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "data",
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/career-day-wapello-2021/",
      "url": "https://go.waylonwalker.com/career-day-wapello-2021/",
      "title": "Career Day Wapello 2021",
      "content_html": "\u003ch2 id=\"waylon-walker\"\u003eWaylon Walker \u003ca href=\"#waylon-walker\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eSenor Data Scientist\u003c/em\u003e\u003c/p\u003e\n\u003cstyle\u003e\nh3 {\n    color: #ff66c4 !important;\n    font-size: 1.5rem !important;\n    margin-left: -12rem !important;\n}\n\nul {\ncolor: #ffffff94;\nfont-size: 32px;\n\n}\nli {\nlist-style-type: none;\n}\nem {\ncolor: goldenrod;\n}\n\u003c/style\u003e\n\u003chr/\u003e\n\u003ch3 id=\"waylon-walker-1\"\u003eWaylon Walker \u003ca href=\"#waylon-walker-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIowa State University\u003c/li\u003e\n\u003cli\u003eMusco Sports Lighting\u003c/li\u003e\n\u003cli\u003eCaterpillar\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr/\u003e\n\u003ch3 id=\"values\"\u003eValues \u003ca href=\"#values\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eContinuous Learning\u003c/li\u003e\n\u003cli\u003eRespect\u003c/li\u003e\n\u003cli\u003eNetworking\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"continuous-learning\"\u003eContinuous Learning \u003ca href=\"#continuous-learning\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eLearning doesn’t stop here\u003c/em\u003e\u003c/p\u003e\n\u003ch2 id=\"respect\"\u003eRespect \u003ca href=\"#respect\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eDon’t be an ass\u003c/em\u003e\u003c/p\u003e\n\u003ch2 id=\"networking\"\u003eNetworking \u003ca href=\"#networking\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n",
      "content_text": "\n## Waylon Walker\n\n_Senor Data Scientist_\n\n\u003cstyle\u003e\nh3 {\n    color: #ff66c4 !important;\n    font-size: 1.5rem !important;\n    margin-left: -12rem !important;\n}\n\nul {\ncolor: #ffffff94;\nfont-size: 32px;\n\n}\nli {\nlist-style-type: none;\n}\nem {\ncolor: goldenrod;\n}\n\u003c/style\u003e\n\n---\n\n### Waylon Walker\n\n- Iowa State University\n- Musco Sports Lighting\n- Caterpillar\n\n---\n\n### Values\n\n- Continuous Learning\n- Respect\n- Networking\n\n## Continuous Learning\n\n_Learning doesn't stop here_\n\n## Respect\n\n_Don't be an ass_\n\n## Networking\n",
      "summary": "_",
      "date_published": "2021-03-25T22:16:15Z",
      "date_modified": "2021-03-25T22:16:15Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/fix-crlf-entire-repo/",
      "url": "https://go.waylonwalker.com/fix-crlf-entire-repo/",
      "title": "fix crlf for entire git repo",
      "content_html": "\u003ch2 id=\"final-result\"\u003eFinal Result \u003ca href=\"#final-result\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit checkout main\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit reset --hard\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit rm -rf --cached .\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eecho\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;* text=auto\u0026#34;\u003c/span\u003e \u0026gt; .gitattributes\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit add .\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n## Final Result\n\n``` bash\ngit checkout main\ngit reset --hard\ngit rm -rf --cached .\necho \"* text=auto\" \u003e .gitattributes\ngit add .\n```\n",
      "date_published": "2021-03-22T00:00:00Z",
      "date_modified": "2021-03-22T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/auto_conda_env/",
      "url": "https://go.waylonwalker.com/auto_conda_env/",
      "title": "Automatic Conda Environments",
      "content_html": "\u003cp\u003eI have automated my process to create virtual environments in my python\nprojects, here is how I did it.\u003c/p\u003e\n\u003cp\u003eI’ve really been digging my new tmux session management setup. Now I have\nleveled it up by adding direnv to my workflow. It will execute a shell script\nwhenever I cd into a directory. One thing I wanted to add to this was,\nautomatic activation of python environments whenever I cd into a directory, or\ncreate a new environment if one does not exist.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/tmux-nav-2021/\" class=\"hoverlink  has-avatar has-avatar-before\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/waylonwalker.com.ico\"\u003ehttps://waylonwalker.com/tmux-nav-2021/\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"direnv\"\u003eDirenv \u003ca href=\"#direnv\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eYou can learn more about \u003ca href=\"https://direnv.net/\"\u003edirenv\u003c/a\u003e on their website. There\nare several libraries that seem to do a similar concept, \u003cem\u003erun a bash script\nwhen I cd into a directory\u003c/em\u003e direnv is the one that I chose to use, but you can\nlikely do the same concept in other ones.\u003c/p\u003e\n\u003ch3 id=\"installation\"\u003eInstallation \u003ca href=\"#installation\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003edirenv is in many package repos, or can be installed from binary builds with a\none liner. See their \u003ca href=\"https://direnv.net/docs/installation.html\"\u003einstallation\u003c/a\u003e\ninstructions for more information.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecurl -sfL https://direnv.net/install.sh \u003cspan class=\"p\"\u003e|\u003c/span\u003e bash\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"envrc\"\u003e.envrc \u003ca href=\"#envrc\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003edirenv works by executing the contents of known safe \u003ccode\u003e.envrc\u003c/code\u003e files. Here are\nsome of the basic commands to get you started.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# edit or create a new .envrc and flag it as allowed\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edirenv edit .\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# flag a .envrc file as allowed or not\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edirenv allow .\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edirenv deny .\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# reexecute a .envrc\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edirenv reload\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"conda\"\u003eConda \u003ca href=\"#conda\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI most often use conda to manage my virtual environments. I dont use it to\n\u003ccode\u003econda install\u003c/code\u003e packages, but I really like the convenience of combinging the\npython interpreter with the environment.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003econda create -n my-project \u003cspan class=\"nv\"\u003epython\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e3.9 -y\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003eevery time I start a new project I need to create a new environment\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003econda activate my-project\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# or source depending on if conda init has been ran on the system\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003esource\u003c/span\u003e activate my-project\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003eevery subsequent time I start work in that project I need to remember to activate\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3 id=\"lazy\"\u003elazy \u003ca href=\"#lazy\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eI’ll admit that sometimes I get lazy and will use an existing environment with\nsimilar dependencies. This kind of works in a pinch, but almost always I need\nmore packages and start trampling in that other projects environment.\u003c/p\u003e\n\u003ch2 id=\"naming-the-environment\"\u003enaming the environment \u003ca href=\"#naming-the-environment\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eSince I want this process to be easily automated I chose to name my\nenvironments after the name of the directory the project is in. In bash we can\nget the current directory with \u003ccode\u003e$PWD\u003c/code\u003e, and trim it to just the directory name\nwith the \u003ccode\u003ebasename\u003c/code\u003e command.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ebasename \u003cspan class=\"nv\"\u003e$PWD\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003ethis will return the name of the current working directory\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"condanew\"\u003econdanew \u003ca href=\"#condanew\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI reates a short bash function that will create a new conda environment,\nactivate it, and install anything extra that the project needs.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003econdanew\u003cspan class=\"o\"\u003e()\u003c/span\u003e \u003cspan class=\"o\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    conda create -n \u003cspan class=\"k\"\u003e$(\u003c/span\u003ebasename \u003cspan class=\"nv\"\u003e$PWD\u003c/span\u003e\u003cspan class=\"k\"\u003e)\u003c/span\u003e \u003cspan class=\"nv\"\u003epython\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e3.8 -y\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nb\"\u003esource\u003c/span\u003e activate \u003cspan class=\"k\"\u003e$(\u003c/span\u003ebasename \u003cspan class=\"nv\"\u003e$PWD\u003c/span\u003e\u003cspan class=\"k\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    pip install lolcat\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003eThis will create a new python environment named after the current directory.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3 id=\"project-install\"\u003eproject install \u003ca href=\"#project-install\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eOften I will modify the condanew function to install project specific things.\nI leverage editable installs of projects I am working on quite extensively,\nthat’s what the \u003ccode\u003e-e\u003c/code\u003e is.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003econdanew\u003cspan class=\"o\"\u003e()\u003c/span\u003e \u003cspan class=\"o\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    conda create -n \u003cspan class=\"k\"\u003e$(\u003c/span\u003ebasename \u003cspan class=\"nv\"\u003e$PWD\u003c/span\u003e\u003cspan class=\"k\"\u003e)\u003c/span\u003e \u003cspan class=\"nv\"\u003epython\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e3.8 -y\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nb\"\u003esource\u003c/span\u003e activate \u003cspan class=\"k\"\u003e$(\u003c/span\u003ebasename \u003cspan class=\"nv\"\u003e$PWD\u003c/span\u003e\u003cspan class=\"k\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    pip install -e \u003cspan class=\"s2\"\u003e\u0026#34;.[dev]\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"c1\"\u003e# or\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    pip install -r requirements.txt\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"bash-error-handling\"\u003eBash error handling \u003ca href=\"#bash-error-handling\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI dive deeper into this subject in this post about creating\n\u003ca href=\"https://waylonwalker.com/reusable-bash/#error-handling\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ereusable-bash\u003c/a\u003e\nscripts. But to auto create the environment I am going to try to activate. If\nit fails, create a new environment based on the name of the project.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/reusable-bash/#error-handling\" class=\"hoverlink  has-avatar has-avatar-before\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/waylonwalker.com.ico\"\u003ehttps://waylonwalker.com/reusable-bash/#error-handling\u003c/a\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003esource\u003c/span\u003e activate \u003cspan class=\"k\"\u003e$(\u003c/span\u003ebasename \u003cspan class=\"nv\"\u003e$PWD\u003c/span\u003e\u003cspan class=\"k\"\u003e)\u003c/span\u003e \u003cspan class=\"o\"\u003e||\u003c/span\u003e condanew\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003eTry to activate the environment, if it fails make a new one.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"final-result\"\u003eFinal Result \u003ca href=\"#final-result\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch3 id=\"conda-1\"\u003eConda \u003ca href=\"#conda-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edirenv edit .\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"cp\"\u003e#!/bin/bash\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"cp\"\u003e\u003c/span\u003e\u003cspan class=\"c1\"\u003e# shortcut for creating new conda environments based on the current working directory\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003econdanew\u003cspan class=\"o\"\u003e()\u003c/span\u003e \u003cspan class=\"o\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    conda create -n \u003cspan class=\"k\"\u003e$(\u003c/span\u003ebasename \u003cspan class=\"nv\"\u003e$PWD\u003c/span\u003e\u003cspan class=\"k\"\u003e)\u003c/span\u003e \u003cspan class=\"nv\"\u003epython\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e3.8 -y\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nb\"\u003esource\u003c/span\u003e activate \u003cspan class=\"k\"\u003e$(\u003c/span\u003ebasename \u003cspan class=\"nv\"\u003e$PWD\u003c/span\u003e\u003cspan class=\"k\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    pip install lolcat\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eecho\u003c/span\u003e \u003cspan class=\"k\"\u003e$(\u003c/span\u003ebasename \u003cspan class=\"nv\"\u003e$PWD\u003c/span\u003e\u003cspan class=\"k\"\u003e)\u003c/span\u003e \u003cspan class=\"p\"\u003e|\u003c/span\u003e lolcat\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003esource\u003c/span\u003e activate \u003cspan class=\"k\"\u003e$(\u003c/span\u003ebasename \u003cspan class=\"nv\"\u003e$PWD\u003c/span\u003e\u003cspan class=\"k\"\u003e)\u003c/span\u003e \u003cspan class=\"o\"\u003e||\u003c/span\u003e condanew\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"venv\"\u003eVenv \u003ca href=\"#venv\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eHere is a modified version using venv from the standard library.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"cp\"\u003e#!/bin/bash\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"cp\"\u003e\u003c/span\u003e\u003cspan class=\"c1\"\u003e# shortcut for creating new virtual environments\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003evenvnew\u003cspan class=\"o\"\u003e()\u003c/span\u003e \u003cspan class=\"o\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    python -m venv .venv\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nb\"\u003esource\u003c/span\u003e .venv/bin/activate\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    pip install lolcat\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eecho\u003c/span\u003e \u003cspan class=\"k\"\u003e$(\u003c/span\u003ebasename \u003cspan class=\"nv\"\u003e$PWD\u003c/span\u003e\u003cspan class=\"k\"\u003e)\u003c/span\u003e \u003cspan class=\"p\"\u003e|\u003c/span\u003e lolcat\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003esource\u003c/span\u003e .venv/bin/activate \u003cspan class=\"o\"\u003e||\u003c/span\u003e venvnew\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nI have automated my process to create virtual environments in my python\nprojects, here is how I did it.\n\nI've really been digging my new tmux session management setup. Now I have\nleveled it up by adding direnv to my workflow. It will execute a shell script\nwhenever I cd into a directory. One thing I wanted to add to this was,\nautomatic activation of python environments whenever I cd into a directory, or\ncreate a new environment if one does not exist.\n\n[https://waylonwalker.com/tmux-nav-2021/](https://waylonwalker.com/tmux-nav-2021/){.hoverlink}\n\n## Direnv\n\nYou can learn more about [direnv](https://direnv.net/) on their website. There\nare several libraries that seem to do a similar concept, _run a bash script\nwhen I cd into a directory_ direnv is the one that I chose to use, but you can\nlikely do the same concept in other ones.\n\n### Installation\n\ndirenv is in many package repos, or can be installed from binary builds with a\none liner. See their [installation](https://direnv.net/docs/installation.html)\ninstructions for more information.\n\n```bash\ncurl -sfL https://direnv.net/install.sh | bash\n```\n\n### .envrc\n\ndirenv works by executing the contents of known safe `.envrc` files. Here are\nsome of the basic commands to get you started.\n\n```bash\n# edit or create a new .envrc and flag it as allowed\ndirenv edit .\n\n# flag a .envrc file as allowed or not\ndirenv allow .\ndirenv deny .\n\n# reexecute a .envrc\ndirenv reload\n```\n\n## Conda\n\nI most often use conda to manage my virtual environments. I dont use it to\n`conda install` packages, but I really like the convenience of combinging the\npython interpreter with the environment.\n\n```bash\nconda create -n my-project python=3.9 -y\n```\n\n\u003e every time I start a new project I need to create a new environment\n\n```bash\nconda activate my-project\n# or source depending on if conda init has been ran on the system\nsource activate my-project\n```\n\n\u003e every subsequent time I start work in that project I need to remember to activate\n\n### lazy\n\nI'll admit that sometimes I get lazy and will use an existing environment with\nsimilar dependencies. This kind of works in a pinch, but almost always I need\nmore packages and start trampling in that other projects environment.\n\n## naming the environment\n\nSince I want this process to be easily automated I chose to name my\nenvironments after the name of the directory the project is in. In bash we can\nget the current directory with `$PWD`, and trim it to just the directory name\nwith the `basename` command.\n\n```bash\nbasename $PWD\n```\n\n\u003e this will return the name of the current working directory\n\n## condanew\n\nI reates a short bash function that will create a new conda environment,\nactivate it, and install anything extra that the project needs.\n\n```bash\ncondanew() {\n    conda create -n $(basename $PWD) python=3.8 -y\n    source activate $(basename $PWD)\n    pip install lolcat\n}\n```\n\n\u003e This will create a new python environment named after the current directory.\n\n### project install\n\nOften I will modify the condanew function to install project specific things.\nI leverage editable installs of projects I am working on quite extensively,\nthat's what the `-e` is.\n\n```bash\ncondanew() {\n    conda create -n $(basename $PWD) python=3.8 -y\n    source activate $(basename $PWD)\n    pip install -e \".[dev]\"\n    # or\n    pip install -r requirements.txt\n}\n```\n\n## Bash error handling\n\nI dive deeper into this subject in this post about creating\n[reusable-bash](https://waylonwalker.com/reusable-bash/#error-handling)\nscripts. But to auto create the environment I am going to try to activate. If\nit fails, create a new environment based on the name of the project.\n\n[https://waylonwalker.com/reusable-bash/#error-handling](https://waylonwalker.com/reusable-bash/#error-handling){.hoverlink}\n\n```bash\nsource activate $(basename $PWD) || condanew\n```\n\n\u003e Try to activate the environment, if it fails make a new one.\n\n## Final Result\n\n### Conda\n\n```bash\ndirenv edit .\n```\n\n```bash\n#!/bin/bash\n# shortcut for creating new conda environments based on the current working directory\ncondanew() {\n    conda create -n $(basename $PWD) python=3.8 -y\n    source activate $(basename $PWD)\n    pip install lolcat\n}\necho $(basename $PWD) | lolcat\nsource activate $(basename $PWD) || condanew\n```\n\n### Venv\n\nHere is a modified version using venv from the standard library.\n\n```bash\n#!/bin/bash\n# shortcut for creating new virtual environments\nvenvnew() {\n    python -m venv .venv\n    source .venv/bin/activate\n    pip install lolcat\n}\necho $(basename $PWD) | lolcat\nsource .venv/bin/activate || venvnew\n```\n",
      "summary": "I have automated my process to create virtual environments in my python projects, here is how I did it.",
      "date_published": "2021-03-22T00:00:00Z",
      "date_modified": "2021-03-22T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/how-i-review-kedro-projects/",
      "url": "https://go.waylonwalker.com/how-i-review-kedro-projects/",
      "title": "How I Review Pipeline Code",
      "content_html": "\u003cp\u003eI have started doing more regular PR’s on my teams\n\u003ca href=\"https://waylonwalker.com/what-is-kedro\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eKedro\u003c/a\u003e pipelines.  I generally take a\ntwo phase approach to the review in order to give the reviewee both quick and\ndetailed feedback.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/what-is-kedro/\" class=\"wikilink\" data-title=\"What is Kedro\" data-description=\"Kedro is an unopinionated Data Engineering framework that comes with a somewhat opinionated template. It gives the user a way to build pipelines that...\" data-date=\"2021-08-17\" data-preview=\"Kedro is an unopinionated Data Engineering framework that comes with a somewhat opinionated template. It gives the user a way to build pipelines that...\"\u003eWhat is Kedro\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"initial-scan-phase1\"\u003einitial scan (Phase1) \u003ca href=\"#initial-scan-phase1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epassing ci\u003c/li\u003e\n\u003cli\u003eVariable Names\u003c/li\u003e\n\u003cli\u003eAntipatterns\u003c/li\u003e\n\u003cli\u003eNo commented out code\u003c/li\u003e\n\u003cli\u003eDocsttrings generally make sense\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePhase1 is typically a quick scan over the PR right within the PR window in my browser.\u003c/p\u003e\n\u003ch3 id=\"passing-ci\"\u003ePassing CI \u003ca href=\"#passing-ci\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eflake8\u003c/li\u003e\n\u003cli\u003eblack\u003c/li\u003e\n\u003cli\u003eisort\u003c/li\u003e\n\u003cli\u003einterrogate\u003c/li\u003e\n\u003cli\u003epytest\u003c/li\u003e\n\u003cli\u003ebuild\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe very first thing that needs to happen is automated CI.  We use things like\nflake8, black, isort, interrogate to ensure that everyone follows generic style\nguides like pep8.  The project does a build within the PR, but no deploy.\u003c/p\u003e\n\u003ch2 id=\"variable-names\"\u003eVariable Names \u003ca href=\"#variable-names\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI strugle really hard to not impose my own opinion into the PR at this point,\nand sometimes really want to change a lot of variable names.  Typically I make\nsure they don’t grow longer than necessary, too short, misspelled, or\ninconsistent.  I make sure that I can follow the flow without gettign tripped\nup by names.\u003c/p\u003e\n\u003ch2 id=\"antipatterns\"\u003eAntipatterns \u003ca href=\"#antipatterns\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI am not too much of a zealot of any paradigm.  I am mostly looking for\nreadability and consistency.  Many times as we dig into an antipattern the\nresponse is “Well I tried to do it the other way, but hit this issue”.\nGenerally we figure out the problem together and avoid the antipattern, or\nunderstand that this is an edge case and leave a comment for our future selves\nto know why it is the way it is.\u003c/p\u003e\n\u003ch2 id=\"no-commented-code\"\u003eNo Commented Code \u003ca href=\"#no-commented-code\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eOne of the biggest scars of a hard problem solving session is leaving behind\nall the other things you tried commented out with no context.  I am a fan of\nkeeping things clean, because its real easy to forget which line was working\nnext time you comment out the good one.  You have made your best choice, run\nwith it and get rid of the clutter..\u003c/p\u003e\n\u003chr/\u003e\n\u003ch2 id=\"clone-phase2\"\u003eclone (Phase2) \u003ca href=\"#clone-phase2\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAt this point it depends on the complexity of the change and confidence of the\nreviewee.  If their changes are simple enough and they are confident with the\nresults its probably good enough to just review the changes.  If its a bigger\nchange I want to see the pipeline myself.\u003c/p\u003e\n\u003ch2 id=\"viz\"\u003eviz \u003ca href=\"#viz\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edisconnects\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"load-data\"\u003eload data \u003ca href=\"#load-data\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"step-through-operations\"\u003estep through operations \u003ca href=\"#step-through-operations\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"run-sections\"\u003erun sections \u003ca href=\"#run-sections\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"run-functions\"\u003erun functions \u003ca href=\"#run-functions\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n",
      "content_text": "\nI have started doing more regular PR's on my teams\n[Kedro](https://waylonwalker.com/what-is-kedro) pipelines.  I generally take a\ntwo phase approach to the review in order to give the reviewee both quick and\ndetailed feedback.\n\n\n\u003ca href=\"/what-is-kedro/\" class=\"wikilink\" data-title=\"What is Kedro\" data-description=\"Kedro is an unopinionated Data Engineering framework that comes with a somewhat opinionated template. It gives the user a way to build pipelines that...\" data-date=\"2021-08-17\"\u003eWhat is Kedro\u003c/a\u003e\n\n## initial scan (Phase1)\n\n* passing ci\n* Variable Names\n* Antipatterns\n* No commented out code\n* Docsttrings generally make sense\n\n\nPhase1 is typically a quick scan over the PR right within the PR window in my browser.\n\n### Passing CI\n\n* flake8\n* black\n* isort\n* interrogate\n* pytest\n* build\n\nThe very first thing that needs to happen is automated CI.  We use things like\nflake8, black, isort, interrogate to ensure that everyone follows generic style\nguides like pep8.  The project does a build within the PR, but no deploy.\n\n## Variable Names\n\nI strugle really hard to not impose my own opinion into the PR at this point,\nand sometimes really want to change a lot of variable names.  Typically I make\nsure they don't grow longer than necessary, too short, misspelled, or\ninconsistent.  I make sure that I can follow the flow without gettign tripped\nup by names.\n\n## Antipatterns\n\nI am not too much of a zealot of any paradigm.  I am mostly looking for\nreadability and consistency.  Many times as we dig into an antipattern the\nresponse is \"Well I tried to do it the other way, but hit this issue\".\nGenerally we figure out the problem together and avoid the antipattern, or\nunderstand that this is an edge case and leave a comment for our future selves\nto know why it is the way it is.\n\n## No Commented Code\n\nOne of the biggest scars of a hard problem solving session is leaving behind\nall the other things you tried commented out with no context.  I am a fan of\nkeeping things clean, because its real easy to forget which line was working\nnext time you comment out the good one.  You have made your best choice, run\nwith it and get rid of the clutter..\n\n\n---\n\n## clone (Phase2)\n\nAt this point it depends on the complexity of the change and confidence of the\nreviewee.  If their changes are simple enough and they are confident with the\nresults its probably good enough to just review the changes.  If its a bigger\nchange I want to see the pipeline myself.\n\n\n\n\n## viz\n\n* disconnects\n\n## load data\n\n## step through operations\n\n## run sections\n\n## run functions\n",
      "summary": "I have started doing more regular PR's on my teams Kedro pipelines. I generally take a two phase approach to the review in order to give the reviewee both...",
      "date_published": "2021-03-21T00:00:00Z",
      "date_modified": "2021-03-21T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/sample/",
      "url": "https://go.waylonwalker.com/sample/",
      "title": "Sample",
      "content_html": "\u003ch1 id=\"title\"\u003etitle\u003c/h1\u003e\n\u003ch2 id=\"subtitle\"\u003esubtitle \u003ca href=\"#subtitle\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch3 id=\"sub-subtitle\"\u003esub-subtitle \u003ca href=\"#sub-subtitle\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003ch4 id=\"sub-sub-subtitle\"\u003esub-sub-subtitle \u003ca href=\"#sub-sub-subtitle\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h4\u003e\n\u003ch5 id=\"sub-sub-sub-subtitle\"\u003esub-sub-sub-subtitle\u003c/h5\u003e\n\u003ch6 id=\"sub-sub-sub-sub-subtitle\"\u003esub-sub-sub-sub-subtitle\u003c/h6\u003e\n\u003ch2 id=\"glossary\"\u003eGlossary \u003ca href=\"#glossary\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThere is a glossary item in \u003ca href=\"/vibe-coding/\" class=\"glossary-term\" title=\"A coding style popularized in 2025. It is the act of using LLMs to generate code for an application, but the author never looks at the output. The author...\"\u003evibe coding\u003c/a\u003e here and \u003ca href=\"/\u003ca href=\"/clippy/\" class=\"glossary-term\" title=\"Clippy is a virtual office assistant from Microsoft, shipped from office 97 to office 2003. It was used to help train people how to use the software that was...\"\u003eclippy\u003c/a\u003e-no-simpy/\" class=\"glossary-term\" title=\"\u0026#34;Clippy no Simpy\u0026#34; is a term coined by Louis Rossmann, when people try to stand up for companies doing scummy things like charging your for features that you...\"\u003eclippy no simpy\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eNow you don’t have to manually link to how to create a \u003ca href=\"/virtual-environment/\" class=\"glossary-term\" title=\"Virtual Environment is term for a sandboxed environment commonly associated with the python programming language. If you are installing any sort of python...\"\u003evirtual environment\u003c/a\u003e\nevery time you mention virtual environments in any post that needs a virtual\nenvironment.\u003c/p\u003e\n\u003ch2 id=\"paragraph\"\u003eParagraph \u003ca href=\"#paragraph\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor\n\u003cspan class=\"bg-pink-500\" id=\"inline-tooltip\"\u003eHover me\u003c/span\u003e\nincididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis\nnostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\nDuis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu\nfugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in\nculpa qui officia deserunt mollit anim id est laborum.\u003c/p\u003e\n\u003ch2 id=\"codeblock\"\u003eCodeBlock \u003ca href=\"#codeblock\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003ethis\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;that\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"horizontal-rule\"\u003eHorizontal rule \u003ca href=\"#horizontal-rule\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003chr/\u003e\n\u003ch2 id=\"blockquote\"\u003eBlockquote \u003ca href=\"#blockquote\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003eLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\ntempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,\nquis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo\nconsequat. Duis aute irure dolor in reprehenderit in voluptate velit esse\ncillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non\nproident, sunt in culpa qui officia deserunt mollit anim id est laborum.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"table\"\u003eTable \u003ca href=\"#table\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eSyntax\u003c/th\u003e\n\u003cth\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003eHeader\u003c/td\u003e\n\u003ctd\u003eTitle\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eParagraph\u003c/td\u003e\n\u003ctd\u003eText\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2 id=\"task-list\"\u003eTask List \u003ca href=\"#task-list\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cinput checked=\"\" disabled=\"\" type=\"checkbox\"/\u003e Write the press release\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e Update the website\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e Contact the media\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"highlight\"\u003eHighlight \u003ca href=\"#highlight\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI need to highlight these \u003cmark\u003every important words\u003c/mark\u003e.\u003c/p\u003e\n\u003ch2 id=\"bold\"\u003eBold \u003ca href=\"#bold\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis text has \u003cstrong\u003ebold\u003c/strong\u003e text\u003c/p\u003e\n\u003ch2 id=\"italics\"\u003eItalics \u003ca href=\"#italics\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis text has \u003cem\u003eitalic\u003c/em\u003e text\u003c/p\u003e\n\u003ch2 id=\"subscript\"\u003eSubscript \u003ca href=\"#subscript\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eH~2~0\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eH\u003cdel\u003e2\u003c/del\u003eO\u003c/p\u003e\n\u003ch2 id=\"superscript\"\u003eSuperscript \u003ca href=\"#superscript\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eX^2^\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eX^2^\u003c/p\u003e\n\u003ch2 id=\"emoji\"\u003eEmoji \u003ca href=\"#emoji\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eEmoji support not yet working\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eThat is so funny! :joy:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e:rocket:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e:thumbs_up:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e:grinning_face:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e:fire:\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eThat is so funny! 😂\u003c/p\u003e\n\u003cp\u003e🚀\u003c/p\u003e\n\u003cp\u003e:thumbs_up:\u003c/p\u003e\n\u003cp\u003e:grinning_face:\u003c/p\u003e\n\u003cp\u003e🔥\u003c/p\u003e\n\u003ch2 id=\"abbreviations\"\u003eAbbreviations \u003ca href=\"#abbreviations\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e*[\u003ca href=\"/html/\" class=\"glossary-term\" title=\"HTML (HyperText Markup Language) is the standard markup language used to create and design documents on the World Wide Web. It structures web content by...\"\u003eHTML\u003c/a\u003e]: Hyper Text Markup Language\n*[W3C]:  World Wide Web Consortium\nThe HTML specification\nis maintained by the W3C.\u003c/p\u003e\n\u003ch2 id=\"keys\"\u003eKeys \u003ca href=\"#keys\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cspan class=\"keys\"\u003e\u003ckbd class=\"kbd key-ctrl\"\u003eCtrl\u003c/kbd\u003e\u003cspan class=\"key-separator\"\u003e+\u003c/span\u003e\u003ckbd class=\"kbd key-alt\"\u003eAlt\u003c/kbd\u003e\u003cspan class=\"key-separator\"\u003e+\u003c/span\u003e\u003ckbd class=\"kbd key-delete\"\u003eDel\u003c/kbd\u003e\u003c/span\u003e\u003c/p\u003e\n\u003cp\u003e\u003cspan class=\"keys\"\u003e\u003ckbd class=\"kbd key-win\"\u003eWin\u003c/kbd\u003e\u003cspan class=\"key-separator\"\u003e+\u003c/span\u003e\u003ckbd class=\"kbd\"\u003e9\u003c/kbd\u003e\u003c/span\u003e\u003c/p\u003e\n\u003ch2 id=\"mark\"\u003eMark \u003ca href=\"#mark\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e==marked==\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cmark\u003emarked\u003c/mark\u003e\u003c/p\u003e\n\u003cp\u003e\u003cmark\u003emarked\u003c/mark\u003e =\u0026gt; \u003cmark\u003einserted\u003c/mark\u003e\u003c/p\u003e\n\u003ch2 id=\"containers\"\u003eContainers \u003ca href=\"#containers\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cdiv class=\"container bg-pink-500\"\u003e\n\u003cp\u003e\u003cem\u003ehere be dragons\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003ehere\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003ewarning\u003c/p\u003e\n\u003cp class=\"bg-pink-500\"\u003e\u003c/p\u003e\n\u003cdiv class=\"warning\"\u003e\n\u003cp\u003e\u003cem\u003ehere be dragons\u003c/em\u003e\nbe careful\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003emore containers\u003c/p\u003e\n\u003cdiv class=\"name\"\u003e\n\u003cdiv class=\"name\"\u003e\n\u003cp\u003e\u003cem\u003emarkdown\u003c/em\u003e\n:::\u003c/p\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cp class=\"bg-pink-500\"\u003e{.text-pink-900}\n::::\u003c/p\u003e\n\u003ch2 id=\"here\"\u003ehere \u003ca href=\"#here\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003ethere\u003c/p\u003e\n\u003ch2 id=\"there\"\u003ethere \u003ca href=\"#there\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003ethis\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e:::\u003c/p\u003e\n\u003cp\u003e:::\nsecond container\u003c/p\u003e\n\u003cp\u003eI still have pink text, but no pink background\n:::\u003c/p\u003e\n\u003cp\u003e::::\u003c/p\u003e\n\u003ch2 id=\"carousel\"\u003ecarousel \u003ca href=\"#carousel\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp class=\"carousel\"\u003e\u003c/p\u003e\n\u003ch2 id=\"admonitions\"\u003eAdmonitions \u003ca href=\"#admonitions\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003esample note\u003c/p\u003e\n\u003cp\u003ethis is a sample\u003c/p\u003e\n\u003c/div\u003e\n\u003cdetails class=\"admonition note\" open=\"\"\u003e\n\u003csummary class=\"admonition-title\"\u003esample note\u003c/summary\u003e\n\u003cp\u003ethis is a sample\u003c/p\u003e\n\u003cp\u003eit’s collapsible and open\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails class=\"admonition note\"\u003e\n\u003csummary class=\"admonition-title\"\u003esample note\u003c/summary\u003e\n\u003cp\u003ethis is a sample\u003c/p\u003e\n\u003cp\u003eit’s collapsible and closed\u003c/p\u003e\n\u003c/details\u003e\n\u003cdiv class=\"admonition danger\"\u003e\n\u003cp class=\"admonition-title\"\u003ebe careful\u003c/p\u003e\n\u003cp\u003ethis is super dang.\u003c/p\u003e\n\u003ch2 id=\"subtitle-1\"\u003esubtitle \u003ca href=\"#subtitle-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003c/div\u003e\n\u003cdiv class=\"admonition reminder\"\u003e\n\u003cp class=\"admonition-title\"\u003eReminder\u003c/p\u003e\n\u003cp\u003ethis is a reminder\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"admonition caution\"\u003e\n\u003cp class=\"admonition-title\"\u003eCaution\u003c/p\u003e\n\u003cp\u003ethis is a caution\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"admonition attention\"\u003e\n\u003cp class=\"admonition-title\"\u003eAttention\u003c/p\u003e\n\u003cp\u003ethis is a attention\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"admonition hint\"\u003e\n\u003cp class=\"admonition-title\"\u003eHint\u003c/p\u003e\n\u003cp\u003ethis is a hint\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"admonition error\"\u003e\n\u003cp class=\"admonition-title\"\u003eError\u003c/p\u003e\n\u003cp\u003ethis is a error\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"admonition important\"\u003e\n\u003cp class=\"admonition-title\"\u003eImportant\u003c/p\u003e\n\u003cp\u003ethis is a important\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"admonition seealso\"\u003e\n\u003cp class=\"admonition-title\"\u003eSeealso\u003c/p\u003e\n\u003cp\u003ethis is a seealso\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"admonition tip\"\u003e\n\u003cp class=\"admonition-title\"\u003eTip\u003c/p\u003e\n\u003cp\u003ethis is a tip\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"admonition todo\"\u003e\n\u003cp class=\"admonition-title\"\u003eTodo\u003c/p\u003e\n\u003cp\u003ethis is a todo\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"admonition warning\"\u003e\n\u003cp class=\"admonition-title\"\u003eWarning\u003c/p\u003e\n\u003cp\u003ethis is a warning\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"admonition settings\"\u003e\n\u003cp class=\"admonition-title\"\u003eSettings\u003c/p\u003e\n\u003cp\u003ethis is a settings\u003c/p\u003e\n\u003c/div\u003e\n\u003ch2 id=\"vsplit\"\u003evsplit \u003ca href=\"#vsplit\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e!!! vsplit I Have two opinions\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    !!! vsplit Left Opinion\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        supporting arguments\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003e*\u003c/span\u003e lorem ipsum\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003e*\u003c/span\u003e ipsum dolor\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003e- [x]\u003c/span\u003e lorem ipsum\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003e- [ ]\u003c/span\u003e ipsum dolor\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    !!! vsplit Right Opinion\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        supporting arguments\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003e*\u003c/span\u003e lorem ipsum\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003e*\u003c/span\u003e ipsum dolor\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003e- [ ]\u003c/span\u003e lorem ipsum\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003e- [x]\u003c/span\u003e ipsum dolor\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eHere is the result of that markdown.\u003c/p\u003e\n\u003cdiv class=\"admonition vsplit\"\u003e\n\u003cp class=\"admonition-title\"\u003eI Have two opinions\u003c/p\u003e\n\u003cdiv class=\"admonition vsplit\"\u003e\n\u003cp class=\"admonition-title\"\u003eLeft Opinion\u003c/p\u003e\n\u003cp\u003esupporting arguments\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003elorem ipsum\u003c/li\u003e\n\u003cli\u003eipsum dolor\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cinput checked=\"\" disabled=\"\" type=\"checkbox\"/\u003e lorem ipsum\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e ipsum dolor\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/div\u003e\n\u003cdiv class=\"admonition vsplit\"\u003e\n\u003cp class=\"admonition-title\"\u003eRight Opinion\u003c/p\u003e\n\u003cp\u003esupporting arguments\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003elorem ipsum\u003c/li\u003e\n\u003cli\u003eipsum dolor\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e lorem ipsum\u003c/li\u003e\n\u003cli\u003e\u003cinput checked=\"\" disabled=\"\" type=\"checkbox\"/\u003e ipsum dolor\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eA clean vsplit\u003c/p\u003e\n\u003cp class=\"clean\"\u003e\u003c/p\u003e\n\u003cdiv class=\"admonition vsplit\"\u003e\n\u003cp class=\"admonition-title\"\u003eVsplit\u003c/p\u003e\n\u003cdiv class=\"admonition vsplit\"\u003e\n\u003cp class=\"admonition-title\"\u003eHello World\u003c/p\u003e\n\u003cp\u003eHere is a hello world application written in the typer cli framework\nfor cli.\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"admonition vsplit\"\u003e\n\u003cp class=\"admonition-title\"\u003eVsplit\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e    ``` python\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e#!/usr/bin/env -S uv run –quiet –script\u003c/p\u003e\n\u003ch1 id=\"heading\"\u003e///\u003c/h1\u003e\n\u003ch1 id=\"requires-python--312\"\u003erequires-python = “\u0026gt;=3.12”\u003c/h1\u003e\n\u003ch1 id=\"dependencies--\"\u003edependencies = [\u003c/h1\u003e\n\u003ch1 id=\"typer\"\u003e“typer”,\u003c/h1\u003e\n\u003ch1 id=\"heading-1\"\u003e]\u003c/h1\u003e\n\u003ch1 id=\"heading-2\"\u003e///\u003c/h1\u003e\n\u003cp\u003eimport typer\u003c/p\u003e\n\u003cp\u003eapp = typer.Typer()\u003c/p\u003e\n\u003cp\u003e@app.command()\ndef hello(name: str = “World”):\n“““Prints a greeting message.”””\ntyper.echo(f\u0026#34;Hello, {name}!\u0026#34;)\u003c/p\u003e\n\u003cp\u003eif \u003cstrong\u003ename\u003c/strong\u003e == “\u003cstrong\u003emain\u003c/strong\u003e”:\napp()\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003ch2 id=\"html-in-md\"\u003ehtml in md \u003ca href=\"#html-in-md\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003ehtml without the markdown atrribute will not be parsed as markdown\u003c/p\u003e\n\u003cdiv class=\"admonition vsplit\"\u003e\n\u003cp class=\"admonition-title\"\u003eVsplit\u003c/p\u003e\n\u003cdiv class=\"admonition vsplit\"\u003e\n\u003cp class=\"admonition-title\"\u003eVsplit\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e    ``` markdown\n\u003c/code\u003e\u003c/pre\u003e\n\u003cdiv\u003e\n# markdown in html\n\u003cp\u003eThis is not markdown\u003c/p\u003e\n\u003c/div\u003e\n```\n\u003c/div\u003e\n\u003cdiv class=\"admonition vsplit\"\u003e\n\u003cp class=\"admonition-title\"\u003eVsplit\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e    \u0026lt;div\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch1 id=\"markdown-in-html\"\u003emarkdown in html\u003c/h1\u003e\n\u003cp\u003eThis is not markdown\u003c/p\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n",
      "content_text": "\n# title\n\n## subtitle\n\n### sub-subtitle\n\n#### sub-sub-subtitle\n\n##### sub-sub-sub-subtitle\n\n###### sub-sub-sub-sub-subtitle\n\n\n## Glossary\n\nThere is a glossary item in vibe coding here and clippy no simpy.\n\nNow you don't have to manually link to how to create a virtual environment\nevery time you mention virtual environments in any post that needs a virtual\nenvironment.\n\n\n## Paragraph\n\nLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor\n\u003cspan class=\"bg-pink-500\" id=\"inline-tooltip\"\u003eHover me\u003c/span\u003e\nincididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis\nnostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\nDuis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu\nfugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in\nculpa qui officia deserunt mollit anim id est laborum.\n\n## CodeBlock\n\n``` python\nimport this\n\nprint(\"that\")\n```\n\n## Horizontal rule\n\n---\n\n## Blockquote\n\n\u003e Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\n\u003e tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,\n\u003e quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo\n\u003e consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse\n\u003e cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non\n\u003e proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n\n## Table\n\n| Syntax | Description |\n| ----------- | ----------- |\n| Header | Title |\n| Paragraph | Text |\n\n## Task List\n\n- [x] Write the press release\n- [ ] Update the website\n- [ ] Contact the media\n\n## Highlight\n\nI need to highlight these ==very important words==.\n\n## Bold\n\nThis text has **bold** text\n\n## Italics\n\nThis text has _italic_ text\n\n## Subscript\n\n``` markdown\nH~2~0\n```\n\nH~2~O\n\n## Superscript\n\n``` markdown\nX^2^\n```\n\nX^2^\n\n## Emoji\n\nEmoji support not yet working\n\n``` markdown\nThat is so funny! :joy:\n\n:rocket:\n\n:thumbs_up:\n\n:grinning_face:\n\n:fire:\n```\n\nThat is so funny! :joy:\n\n:rocket:\n\n:thumbs_up:\n\n:grinning_face:\n\n:fire:\n\n## Abbreviations\n\n*[HTML]: Hyper Text Markup Language\n*[W3C]:  World Wide Web Consortium\nThe HTML specification\nis maintained by the W3C.\n\n## Keys\n\n++Ctrl+Alt+Del++\n\n++Win+9++\n\n## Mark\n\n``` markdown\n==marked==\n```\n\n==marked==\n\n==marked== =\u003e \u003cmark\u003einserted\u003c/mark\u003e\n\n## Containers\n\n::: container {.bg-pink-500}\n_here be dragons_\n\nhere\n:::\n\nwarning\n\n{.bg-pink-500}\n::: warning\n_here be dragons_\nbe careful\n:::\n\nmore containers\n\n:::: name\n::: name\n_markdown_\n:::\n::::\n\n{.text-pink-900}\n::::\n{.bg-pink-500}\n:::\ncontainer\n\n## here\n\nthere\n\n## there\n\n``` python\nimport this\n```\n\n:::\n\n:::\nsecond container\n\nI still have pink text, but no pink background\n:::\n\n::::\n\n## carousel\n\n{.carousel}\n::::\n:::\nhi\n:::\n:::\nhi\n:::\n:::\nhi\n:::\n:::\nhi\n:::\n:::\nhi\n:::\n::::\n\n## Admonitions\n\n!!! note sample note\n\n     this is a sample\n\n???+ note sample note\n\n     this is a sample\n\n     it's collapsible and open\n\n??? note sample note\n\n     this is a sample\n\n     it's collapsible and closed\n\n!!! danger be careful\n\n     this is super dang.\n\n     ## subtitle\n\n!!! reminder\n\n     this is a reminder\n\n!!! caution\n\n     this is a caution\n\n!!! attention\n\n     this is a attention\n\n!!! hint\n\n     this is a hint\n\n!!! error\n\n     this is a error\n\n!!! important\n\n     this is a important\n\n!!! seealso\n\n     this is a seealso\n\n!!! tip\n\n     this is a tip\n\n!!! todo\n\n     this is a todo\n\n!!! warning\n\n     this is a warning\n\n!!! settings\n\n     this is a settings\n\n## vsplit\n\n``` markdown\n!!! vsplit I Have two opinions\n\n    !!! vsplit Left Opinion\n\n        supporting arguments\n\n        * lorem ipsum\n        * ipsum dolor\n\n        - [x] lorem ipsum\n        - [ ] ipsum dolor\n\n    !!! vsplit Right Opinion\n\n        supporting arguments\n\n        * lorem ipsum\n        * ipsum dolor\n\n        - [ ] lorem ipsum\n        - [x] ipsum dolor\n```\n\nHere is the result of that markdown.\n\n!!! vsplit I Have two opinions\n\n    !!! vsplit Left Opinion\n\n        supporting arguments\n\n        * lorem ipsum\n        * ipsum dolor\n\n        - [x] lorem ipsum\n        - [ ] ipsum dolor\n\n    !!! vsplit Right Opinion\n\n        supporting arguments\n\n        * lorem ipsum\n        * ipsum dolor\n\n        - [ ] lorem ipsum\n        - [x] ipsum dolor\n\nA clean vsplit\n\n{.clean}\n!!! vsplit \"\"\n\n    !!! vsplit Hello World\n\n        Here is a hello world application written in the typer cli framework\n        for cli.\n\n    !!! vsplit \"\"\n        ``` python\n        #!/usr/bin/env -S uv run --quiet --script\n        # ///\n        # requires-python = \"\u003e=3.12\"\n        # dependencies = [\n        #     \"typer\",\n        # ]\n        # ///\n\n        import typer\n\n        app = typer.Typer()\n\n        @app.command()\n        def hello(name: str = \"World\"):\n            \"\"\"Prints a greeting message.\"\"\"\n            typer.echo(f\"Hello, {name}!\")\n\n        if __name__ == \"__main__\":\n            app()\n        ```\n\n## html in md\n\nhtml without the markdown atrribute will not be parsed as markdown\n\n!!! vsplit \"\"\n\n    !!! vsplit \"\"\n        ``` markdown\n        \u003cdiv\u003e\n        # markdown in html\n\n        This is not markdown\n        \u003c/div\u003e\n        ```\n\n    !!! vsplit \"\"\n        \u003cdiv\u003e\n        # markdown in html\n\n        This is not markdown\n        \u003c/div\u003e\n\nIf you give an html tag the `markdown=\"1\"` attribute, the markdown will be\nparsed and rendered as html inside of that tag.\n\n!!! vsplit \"\"\n    !!! vsplit \"\"\n        ``` markdown\n        \u003cdiv markdown=\"1\"\u003e\n\n        # markdown in html\n\n        This is a *Markdown* Paragraph.\n\n        \u003c/div\u003e\n        ```\n\n    !!! vsplit \"\"\n        \u003cdiv markdown=\"1\"\u003e\n\n        # markdown in html\n\n        This is a *Markdown* Paragraph.\n\n        \u003c/div\u003e\n\n## mermaid diagrams\n\n```mermaid\n---\nconfig:\nlayout: elk\nlook: handDrawn\ntheme: dark\n---\nflowchart TD\n    A[Raw Water Intake] --\u003e B[Screening]\n    B --\u003e C[Coagulation \u0026 Flocculation]\n    C --\u003e D[Sedimentation/Clarification]\n    D --\u003e E[Filtration]\n    E --\u003e F[Disinfection]\n    F --\u003e G[Storage/Distribution]\n```\n\n```mermaid\nxychart-beta\n    title \"Sales Revenue\"\n    x-axis [jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec]\n    y-axis \"Revenue (in $)\" 4000 --\u003e 11000\n    bar [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000]\n    line [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000]\n```\n\n```mermaid\n---\nconfig:\n  layout: elk\n  look: handDrawn\n  theme: dark\n---\n\ngraph TD\n  A[\\Replenish Value Add stock/] ---\u003eC\n  B(Order product with Value Add) ---\u003eC\n  C{Frequent process?} ---\u003e|Yes|D\n  C ---\u003e|No|F\n  D{New template?} ---\u003e|Yes|E\n  D ---\u003e|No|G\n  E(Create work order template) ---\u003eG\n  F(Create work order) ---\u003eH\n  G(Copy template to work order) ---\u003eI\n  H(Add materials to work order processes) ---\u003eJ\n  I(Adjust material quantities) ---\u003eJ\n  J(Monitor work orders) ---\u003eK\n  K{Material quantities in stock?} ---\u003e|No|L\n  K ---\u003e|Yes|M\n  L(Procure materials) ---\u003eM\n  M(Change status to In Progress) ---\u003eN\n  N{External Vendor to perform step?} ---\u003e|Yes|O\n  N ---\u003e|No|P\n  O(Add vendor costs) ---\u003eQ\n  P[\\Perform work order step/] ---\u003eR\n  Q([Ship materials to Vendor]) ---\u003eS ---\u003eX\n  R{Additional processing required?} ---\u003e|Yes|N\n  R---\u003e|No|T\n  S[\\Perform work order step/] ---\u003eU\n  T(Receive final stock) ---\u003eV\n  U(Receive product from vendor) ---\u003eW\n  V(Ship product on order) ---\u003eY\n  W{Partial quantity received?} ---\u003e|Yes|X\n  W ---\u003e|No|Z\n  X[Create work order backorder] ---\u003e J\n  Y(Change status to complete) ---\u003eAA\n  Z(Pay vendor invoice) ---\u003eR\n  AA([Finish])\n```\n\ngitgraph\n\n```mermaid\n\ngitGraph:\n    commit \"Ashish\"\n    branch newbranch\n    checkout newbranch\n    commit id:\"1111\"\n    commit tag:\"test\"\n    checkout main\n    commit type: HIGHLIGHT\n    commit\n    merge newbranch\n    commit\n    branch b2\n    commit\n```\n\n```mermaid\n\ngitGraph:\n    commit \"new stuff\"\n    branch make-server-feature\n    checkout make-server-feature\n    commit \"go\"\n    commit tag:\"test\"\n    commit\n    commit\n    commit\n    rebase\n    checkout main\n    commit type: HIGHLIGHT\n    commit\n    merge make-server-feature\n    commit\n\n```\n\n```mermaid\nmindmap\n  #python\n    uv\n    pip\n    ipython\n      jupyter\n      jupyterlab\n\n\n```\n\n```mermaid\nstateDiagram-v2\n    [*] --\u003e Still\n    Still --\u003e [*]\n    Still --\u003e Moving\n    Moving --\u003e Still\n    Moving --\u003e Crash\n    Crash --\u003e [*]\n```\n\nThe journey\n\n```mermaid\njourney\n    title My working day\n    section Go to work\n      Make tea: 5: Me\n      Go upstairs: 3: Me\n      Do work: 1: Me, Cat\n      Play with cat: 10: Me, Cat\n    section Go home\n      Go downstairs: 5: Me\n      Sit down: 5: Me\n```\n\n```mermaid\n---\nconfig:\n  layout: elk\n  look: handDrawn\n  theme: dark\n---\ntimeline\n    title History of Social Media Platform\n    2002 : LinkedIn\n    2004 : Facebook\n         : Google\n    2005 : Youtube\n    2006 : Twitter\n```\n\n```mermaid\narchitecture-beta\n    group api(cloud)[API]\n\n    service db(database)[Database] in api\n    service disk1(disk)[Storage] in api\n    service disk2(disk)[Storage] in api\n    service server(server)[Server] in api\n\n    db:L -- R:server\n    disk1:T -- B:server\n    disk2:T -- B:db\n\n```\n\n```` markdown\n``` mermaid\narchitecture-beta\n    group api(logos:aws-lambda)[API]\n\n    service db(logos:aws-aurora)[Database] in api\n    service disk1(logos:aws-glacier)[Storage] in api\n    service disk2(logos:aws-s3)[Storage] in api\n    service server(logos:aws-ec2)[Server] in api\n\n    db:L -- R:server\n    disk1:T -- B:server\n    disk2:T -- B:db\n```\n````\n\n```mermaid\narchitecture-beta\n    group api(logos:aws-lambda)[API]\n\n    service db(logos:aws-aurora)[Database] in api\n    service disk1(logos:aws-glacier)[Storage] in api\n    service disk2(logos:aws-s3)[Storage] in api\n    service server(logos:aws-ec2)[Server] in api\n\n    db:L -- R:server\n    disk1:T -- B:server\n    disk2:T -- B:db\n\n\n```\n\n## can it vsplit\n\n!!! vsplit \"\"\n    !!! vsplit \"\"\n        ```` markdown\n        ``` mermaid\n        architecture-beta\n            group api[logos:aws-lambda](API)\n\n            service db(logos:aws-aurora)[Database] in api\n            service disk1(logos:aws-glacier)[Storage] in api\n            service disk2(logos:aws-s3)[Storage] in api\n            service server(logos:aws-ec2)[Server] in api\n\n            db:L -- R:server\n            disk1:T -- B:server\n            disk2:T -- B:db\n        ```\n        ````\n\n    !!! vsplit \"\"\n        ``` mermaid\n        architecture-beta\n            group api(logos:aws-lambda)[API]\n\n            service db(logos:aws-aurora)[Database] in api\n            service disk1(logos:aws-glacier)[Storage] in api\n            service disk2(logos:aws-s3)[Storage] in api\n            service server(logos:aws-ec2)[Server] in api\n\n            db:L -- R:server\n            disk1:T -- B:server\n        ```\n\nversion {{ version }}\n\n\u003cwa-tooltip  for=\"inline-tooltip\" trigger='manual' id='inline-tooltip-tooltip'\u003e\n    \u003cdiv class='bg-black rounded-xl border-2 border-pink-500 max-h-96 overflow-y-scroll'\u003e\n        \u003ca href='/glossary/vibe-coding' class=\"bg-pink-500 text-white uppercase mx-4\" style='color:white'\u003eVibe Coding\u003c/a\u003e\n        \u003cdiv  hx-get='/glossary/vibe-coding/partial' hx-trigger='load' hx-swap='outerHTML'\u003e\u003c/div\u003e\n    \u003c/div\u003e\n\u003c/wa-tooltip\u003e\n\n\u003cscript\u003e\n  const tooltip = document.getElementById('inline-tooltip-tooltip');\n  const anchor  = document.getElementById('inline-tooltip');\n\n  let overAnchor = false;\n  let overTip    = false;\n  let closeTimer = null;\n\n  function openTip() {\n    clearTimeout(closeTimer);\n    tooltip.open = true;\n  }\n  function scheduleClose(delay = 200) {\n    clearTimeout(closeTimer);\n    closeTimer = setTimeout(() =\u003e {\n      if (!overAnchor \u0026\u0026 !overTip) tooltip.open = false;\n    }, delay);\n  }\n\n  // Anchor hover intent\n  anchor.addEventListener('pointerenter', () =\u003e {\n    overAnchor = true;\n    openTip();\n  });\n  anchor.addEventListener('pointerleave', () =\u003e {\n    overAnchor = false;\n    // give the user time to move into the tooltip\n    scheduleClose(200);\n  });\n\n  // Tooltip hover intent\n  tooltip.addEventListener('pointerenter', () =\u003e {\n    overTip = true;\n    openTip();\n  });\n  tooltip.addEventListener('pointerleave', () =\u003e {\n    overTip = false;\n    scheduleClose(100);\n  });\n\n  // Optional: open on focus, close on blur/Escape for a11y\n  anchor.addEventListener('focusin', openTip);\n  anchor.addEventListener('focusout', () =\u003e scheduleClose(100));\n  document.addEventListener('keydown', (e) =\u003e {\n    if (e.key === 'Escape') tooltip.open = false;\n  });\n\u003c/script\u003e\n",
      "summary": "There is a glossary item in vibe coding here and clippy no simpy.",
      "date_published": "2021-01-25T00:00:00Z",
      "date_modified": "2021-01-25T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "meta"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/python-pluggable-architecture/",
      "url": "https://go.waylonwalker.com/python-pluggable-architecture/",
      "title": "🐍 Pluggable Architecture with Python",
      "content_html": "\u003cp\u003epytest has open sourced their amazing plugin framework \u003ccode\u003epluggy\u003c/code\u003e, it allows\nlibrary authors to give their users a way to modify the libaries behavior\nwithout needing to submit a change that may not make sense to the entire\nlibrary.\u003c/p\u003e\n\u003ch2 id=\"previous-experience\"\u003ePrevious Experience \u003ca href=\"#previous-experience\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eMy experience so far as a plugin user, and plugin author has been great.\nBuilding and using plugins are incredibly intuitive.  I wanted to dive a bit\ndeeper and see how they are implemented inside of a library and its a bit of a\nmind bend the first time you try to do it.\u003c/p\u003e\n\u003ch2 id=\"plugins-vs-hooks\"\u003ePlugins vs. Hooks \u003ca href=\"#plugins-vs-hooks\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eA hook is a single function that has a specific place that it is ran by the PluginManager.\u003c/p\u003e\n\u003cp\u003eA Plugin is a collection of one or more hooks.\u003c/p\u003e\n\u003ch2 id=\"layers\"\u003eLayers \u003ca href=\"#layers\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003elibrary author\u003c/li\u003e\n\u003cli\u003eplugin author\u003c/li\u003e\n\u003cli\u003eend user\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"using-a-plugin\"\u003eUsing a plugin \u003ca href=\"#using-a-plugin\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eFor a plugin to be registered is must be registered by the PluginManager which\nis implemented by the library author.  It is the job of the library author to\ndetermine what plugins are actively registered or disabled.  There are two\ncommon ways that I have seen that plugins are registered, through entrypoints\nor configuration.\u003c/p\u003e\n\u003ch2 id=\"using-a-plugin---entrypoints\"\u003eUsing a plugin - entrypoints \u003ca href=\"#using-a-plugin---entrypoints\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003ePlugins that are implemented with entrypoints are the simplest for the user.\nThey are simply activated by \u003ccode\u003epip install plugin\u003c/code\u003e or deactivated by \u003ccode\u003epip uninstall plugin\u003c/code\u003e.  The library author will show an entrypoint in their docs\nwhich tells plugin authors how to setup entrypoints so that they will be loaded\nautommatically.\u003c/p\u003e\n\u003ch2 id=\"using-a-plugin---config\"\u003eUsing a plugin - config \u003ca href=\"#using-a-plugin---config\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAnother way to configure plugins is through configuration.  This may come in\nthe form of a list in a python module or listed in a text file in the config.\nThis route requires the user to add the plugin to a list or import it into a\npython module.\u003c/p\u003e\n\u003ch2 id=\"examples\"\u003eExamples \u003ca href=\"#examples\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI really stuggled to find a good example of pluggy to get started.  I found the\nbest way for me to understand was to create one myself.  the pluggy repo has\none simple\n\u003ca href=\"https://github.com/pytest-dev/pluggy/blob/master/docs/examples/toy-example.py\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eexample\u003c/a\u003e,\nbut it is unclear who owns each piece from the example.  The whole point of\npluggy is to pass ownership of  implementation from the library author to the\nplugin author.\u003c/p\u003e\n\u003ch2 id=\"floris-bruynooghe\"\u003eFloris Bruynooghe \u003ca href=\"#floris-bruynooghe\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.youtube.com/watch?v=zZsNPDfOoHU\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://www.youtube.com/watch?v=zZsNPDfOoHU\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFloris Bruynooghe has a great talk from \u003ca href=\"https://www.youtube.com/watch?v=zZsNPDfOoHU\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003eEuroPython\n2015\u003c/a\u003e where he shows how to build\na project thats plugins all the way down.  His \u003ca href=\"https://devork.be/talks/pluggy\"\u003eslides\u003c/a\u003e are also available.\u003c/p\u003e\n\u003ch2 id=\"kedro\"\u003eKedro \u003ca href=\"#kedro\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eKedro is a data pipelining framekwork that includes a hooks based architecture\nthat allows users to modify the behavior of the framework at different points\nthrough the lifecycle.  There is a\n\u003ca href=\"https://github.com/kedro-org/kedro/tree/dc1ee8e06b255d4d5a4348ad8a2e78048c547279/kedro/framework/hooks\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehooks\u003c/a\u003e\nmodule that implements everything, and a\n\u003ca href=\"https://github.com/kedro-org/kedro/blob/dc1ee8e06b255d4d5a4348ad8a2e78048c547279/features/steps/test_plugin/plugin.py\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003etest_plugin\u003c/a\u003e\nthat is used for testing, but also serves as a good example.\u003c/p\u003e\n\u003ch2 id=\"palantirpython-language-server\"\u003epalantir/python-language-server \u003ca href=\"#palantirpython-language-server\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAnother example is the palantir python language server.  Check out their\n\u003ca href=\"https://github.com/palantir/python-language-server/blob/91a13687dbd5247374253b245124befb8d9c60c9/pyls/hookspecs.py\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehookspec\u003c/a\u003e\nmodule.\u003c/p\u003e\n\u003ch2 id=\"tutorial\"\u003eTutorial \u003ca href=\"#tutorial\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"plugin-components\"\u003ePlugin Components \u003ca href=\"#plugin-components\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eproject_name\n\u003cul\u003e\n\u003cli\u003eimplemented by the library author\u003c/li\u003e\n\u003cli\u003egives a namespace for pluggy to store hooks\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ehookspec\n\u003cul\u003e\n\u003cli\u003ecreated and used by libary author\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ehookimpl\n\u003cul\u003e\n\u003cli\u003ecreated by libary author\u003c/li\u003e\n\u003cli\u003eused by plugin author\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ePluginManager\n\u003cul\u003e\n\u003cli\u003eimplementation of plugins in the library\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"hookspec\"\u003ehookspec \u003ca href=\"#hookspec\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e_empty hooks created by the library author\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# hookspec.py\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003epluggy\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ehookspec\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epluggy\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eHookspecMarker\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;printer\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eclass\u003c/span\u003e \u003cspan class=\"nc\"\u003ePrinterHooks\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nd\"\u003e@hookspec\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003epre_print\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003emsg\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s2\"\u003e\u0026#34;pre print hook\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003epass\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nd\"\u003e@hookspec\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003epost_print\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003emsg\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s2\"\u003e\u0026#34;pre print hook\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003epass\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"hookimpl\"\u003ehookimpl \u003ca href=\"#hookimpl\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eused by the plugin author\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eImplementations of plugins much match the name of the spec exactly.\nThey can include some or all of the arguments listed in the spec,\nbut no others.  They can be implemented as a module with functions\nthat match the name of the spec or as a class with methods that\nmatch the name of the spec.\u003c/p\u003e\n\u003ch3 id=\"class-style-plugin\"\u003eClass Style Plugin \u003ca href=\"#class-style-plugin\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# plug.py\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# would be imported from the library authors hookspec\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003ehookspec\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003ehookimpl\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eclass\u003c/span\u003e \u003cspan class=\"nc\"\u003ePre\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nd\"\u003e@hookimpl\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003epre_print\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003emsg\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003emsg\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003emsg\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eupper\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;BEFORE\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eclass\u003c/span\u003e \u003cspan class=\"nc\"\u003ePost\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nd\"\u003e@hookimpl\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003epost_print\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003emsg\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"se\"\u003e\\033\u003c/span\u003e\u003cspan class=\"s2\"\u003e[A\u003c/span\u003e\u003cspan class=\"se\"\u003e\\033\u003c/span\u003e\u003cspan class=\"s2\"\u003e[2Knot today\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"module-style-plugin\"\u003eModule Style Plugin \u003ca href=\"#module-style-plugin\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# plug/Pre.py\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003ehookspec\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003ehookimpl\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nd\"\u003e@hookimpl\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003epre_print\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003emsg\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003emsg\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003emsg\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eupper\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# plug/Post.py\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eclass\u003c/span\u003e \u003cspan class=\"nc\"\u003ePost\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nd\"\u003e@hookimpl\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003epost_print\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003emsg\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"se\"\u003e\\033\u003c/span\u003e\u003cspan class=\"s2\"\u003e[A\u003c/span\u003e\u003cspan class=\"se\"\u003e\\033\u003c/span\u003e\u003cspan class=\"s2\"\u003e[2Knot today\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003enote\u003c/strong\u003e These plugins only implement one hook.  Each plugin may\nimplement one or more hooks, a plugin is not required to only\nimplement one hook.\u003c/p\u003e\n\u003ch2 id=\"plugin-manager\"\u003ePlugin Manager \u003ca href=\"#plugin-manager\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eimplementing the hooks into the library\u003c/em\u003e\u003c/p\u003e\n\u003ch3 id=\"simple-example\"\u003eSimple Example \u003ca href=\"#simple-example\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003epluggy\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003eimportlib\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003ehookspec\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003ePrinterHooks\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003eplug\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003ePre\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epm\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epluggy\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ePluginManager\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;printer\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epm\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eadd_hookspecs\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ePrinterHooks\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epm\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eregister\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ePre\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003eprinter\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003emsg\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003epm\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ehook\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003epre_print\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003emsg\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003emsg\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003emsg\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003epm\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ehook\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003epost_print\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003emsg\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003emsg\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"running-the-library\"\u003eRunning the library \u003ca href=\"#running-the-library\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNow if we run the printer function as a user we will see this\noutput.\u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"language-pycon\"\u003e\u0026gt;\u0026gt;\u0026gt; printer(\u0026#39;hello world\u0026#39;)\nHELLO WORLD\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2 id=\"adding-post\"\u003eAdding Post \u003ca href=\"#adding-post\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNow if we register the Post plugin we will see the following output.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003eplug\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003ePre\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ePost\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epm\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eregister\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ePre\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epm\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eregister\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ePost\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre\u003e\u003ccode class=\"language-pycon\"\u003e\u0026gt;\u0026gt;\u0026gt; printer(\u0026#39;hello world\u0026#39;)\nnot today\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThe \u003ccode\u003ePost\u003c/code\u003e plugin wipes away the last line from the console and\nprints out \u003ccode\u003e\u0026#34;not today\u0026#34;\u003c/code\u003e\u003c/p\u003e\n\u003ch2 id=\"plugin-manager---with-dynamic-imports\"\u003ePlugin Manager - with dynamic imports \u003ca href=\"#plugin-manager---with-dynamic-imports\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIn a real library we might want to allow the user to configure their\nplugins through a config file.  If we do this we will need to reach\nfor \u003ccode\u003eimportlib\u003c/code\u003e to handle the imports based on a string.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003epluggy\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003eimportlib\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# from hookspec import hookspec\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003ehookspec\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003ePrinterHooks\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# from hookspec import hookimpl\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eplugins\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;plug.Pre\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;plug.Post\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epm\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epluggy\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ePluginManager\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;printer\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epm\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eadd_hookspecs\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ePrinterHooks\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003eplug\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003eplugins\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"nb\"\u003eisinstance\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eplug\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"nb\"\u003estr\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"c1\"\u003e# plug is a str representing a module to import\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003etry\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"c1\"\u003e# module style plugins\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003eplugin\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eimportlib\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eimport_module\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eplug\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003eexcept\u003c/span\u003e \u003cspan class=\"ne\"\u003eModuleNotFoundError\u003c/span\u003e \u003cspan class=\"k\"\u003eas\u003c/span\u003e \u003cspan class=\"n\"\u003ee\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"c1\"\u003e# class style plugins\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;.\u0026#34;\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003eplug\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"n\"\u003emod\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eimportlib\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eimport_module\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;.\u0026#34;\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ejoin\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eplug\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003esplit\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;.\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)[:\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"mi\"\u003e1\u003c/span\u003e\u003cspan class=\"p\"\u003e]))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"n\"\u003eplugin\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"nb\"\u003egetattr\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003emod\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eplug\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003esplit\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;.\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)[\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"mi\"\u003e1\u003c/span\u003e\u003cspan class=\"p\"\u003e])\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"k\"\u003eelse\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"k\"\u003eraise\u003c/span\u003e \u003cspan class=\"n\"\u003ee\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003eelse\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"c1\"\u003e# plug is a module that is already imported\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003eplugin\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eplug\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003epm\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eregister\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eplugin\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003eprinter\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003emsg\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003epm\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ehook\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003epre_print\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003emsg\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003emsg\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003emsg\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003epm\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ehook\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003epost_print\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003emsg\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003emsg\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"entrypoint-plugins\"\u003eEntryPoint plugins \u003ca href=\"#entrypoint-plugins\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n",
      "content_text": "\npytest has open sourced their amazing plugin framework `pluggy`, it allows\nlibrary authors to give their users a way to modify the libaries behavior\nwithout needing to submit a change that may not make sense to the entire\nlibrary.\n\n## Previous Experience\n\nMy experience so far as a plugin user, and plugin author has been great.\nBuilding and using plugins are incredibly intuitive.  I wanted to dive a bit\ndeeper and see how they are implemented inside of a library and its a bit of a\nmind bend the first time you try to do it.\n\n## Plugins vs. Hooks\n\nA hook is a single function that has a specific place that it is ran by the PluginManager.\n\nA Plugin is a collection of one or more hooks.\n\n## Layers\n\n* library author\n* plugin author\n* end user\n\n## Using a plugin\n\nFor a plugin to be registered is must be registered by the PluginManager which\nis implemented by the library author.  It is the job of the library author to\ndetermine what plugins are actively registered or disabled.  There are two\ncommon ways that I have seen that plugins are registered, through entrypoints\nor configuration.\n\n## Using a plugin - entrypoints\n\nPlugins that are implemented with entrypoints are the simplest for the user.\nThey are simply activated by `pip install plugin` or deactivated by `pip\nuninstall plugin`.  The library author will show an entrypoint in their docs\nwhich tells plugin authors how to setup entrypoints so that they will be loaded\nautommatically.\n\n## Using a plugin - config\n\nAnother way to configure plugins is through configuration.  This may come in\nthe form of a list in a python module or listed in a text file in the config.\nThis route requires the user to add the plugin to a list or import it into a\npython module.\n\n## Examples\n\nI really stuggled to find a good example of pluggy to get started.  I found the\nbest way for me to understand was to create one myself.  the pluggy repo has\none simple\n[example](https://github.com/pytest-dev/pluggy/blob/master/docs/examples/toy-example.py),\nbut it is unclear who owns each piece from the example.  The whole point of\npluggy is to pass ownership of  implementation from the library author to the\nplugin author.\n\n## Floris Bruynooghe\n\n\u003chttps://www.youtube.com/watch?v=zZsNPDfOoHU\u003e\n\nFloris Bruynooghe has a great talk from [EuroPython\n2015](https://www.youtube.com/watch?v=zZsNPDfOoHU) where he shows how to build\na project thats plugins all the way down.  His [slides](https://devork.be/talks/pluggy) are also available.\n\n## Kedro\n\nKedro is a data pipelining framekwork that includes a hooks based architecture\nthat allows users to modify the behavior of the framework at different points\nthrough the lifecycle.  There is a\n[hooks](https://github.com/kedro-org/kedro/tree/dc1ee8e06b255d4d5a4348ad8a2e78048c547279/kedro/framework/hooks)\nmodule that implements everything, and a\n[test_plugin](https://github.com/kedro-org/kedro/blob/dc1ee8e06b255d4d5a4348ad8a2e78048c547279/features/steps/test_plugin/plugin.py)\nthat is used for testing, but also serves as a good example.\n\n## palantir/python-language-server\n\nAnother example is the palantir python language server.  Check out their\n[hookspec](https://github.com/palantir/python-language-server/blob/91a13687dbd5247374253b245124befb8d9c60c9/pyls/hookspecs.py)\nmodule.\n\n## Tutorial\n\n## Plugin Components\n\n* project_name\n  * implemented by the library author\n  * gives a namespace for pluggy to store hooks\n* hookspec\n  * created and used by libary author\n* hookimpl\n  * created by libary author\n  * used by plugin author\n* PluginManager\n  * implementation of plugins in the library\n\n## hookspec\n\n_empty hooks created by the library author\n\n``` python\n# hookspec.py\nimport pluggy\n\nhookspec = pluggy.HookspecMarker(\"printer\")\n\nclass PrinterHooks:\n    @hookspec\n    def pre_print(msg):\n        \"pre print hook\"\n        pass\n\n    @hookspec\n    def post_print(msg):\n        \"pre print hook\"\n        pass\n```\n\n## hookimpl\n\n_used by the plugin author_\n\nImplementations of plugins much match the name of the spec exactly.\nThey can include some or all of the arguments listed in the spec,\nbut no others.  They can be implemented as a module with functions\nthat match the name of the spec or as a class with methods that\nmatch the name of the spec.\n\n### Class Style Plugin\n\n``` python\n# plug.py\n# would be imported from the library authors hookspec\nfrom hookspec import hookimpl\n\n\nclass Pre:\n    @hookimpl\n    def pre_print(msg):\n        msg = msg.upper()\n        return \"BEFORE\"\n\n\nclass Post:\n    @hookimpl\n    def post_print(msg):\n        print(f\"\\033[A\\033[2Knot today\")\n```\n\n### Module Style Plugin\n\n``` python\n# plug/Pre.py\nfrom hookspec import hookimpl\n\n\n@hookimpl\ndef pre_print(msg):\n    msg = msg.upper()\n\n\n# plug/Post.py\nclass Post:\n    @hookimpl\n    def post_print(msg):\n        print(f\"\\033[A\\033[2Knot today\")\n```\n\n**note** These plugins only implement one hook.  Each plugin may\nimplement one or more hooks, a plugin is not required to only\nimplement one hook.\n\n## Plugin Manager\n\n_implementing the hooks into the library_\n\n### Simple Example\n\n``` python\nimport pluggy\nimport importlib\n\nfrom hookspec import PrinterHooks\nfrom plug import Pre\n\npm = pluggy.PluginManager(\"printer\")\npm.add_hookspecs(PrinterHooks)\npm.register(Pre)\n\ndef printer(msg):\n    pm.hook.pre_print(msg=msg)\n    print(msg)\n    pm.hook.post_print(msg=msg)\n```\n\n## Running the library\n\nNow if we run the printer function as a user we will see this\noutput.\n\n``` pycon\n\u003e\u003e\u003e printer('hello world')\nHELLO WORLD\n```\n\n## Adding Post\n\nNow if we register the Post plugin we will see the following output.\n\n``` python\n\nfrom plug import Pre, Post\n\npm.register(Pre)\npm.register(Post)\n```\n\n``` pycon\n\u003e\u003e\u003e printer('hello world')\nnot today\n```\n\nThe `Post` plugin wipes away the last line from the console and\nprints out `\"not today\"`\n\n## Plugin Manager - with dynamic imports\n\nIn a real library we might want to allow the user to configure their\nplugins through a config file.  If we do this we will need to reach\nfor `importlib` to handle the imports based on a string.\n\n``` python\n\nimport pluggy\nimport importlib\n\n# from hookspec import hookspec\nfrom hookspec import PrinterHooks\n\n# from hookspec import hookimpl\n\nplugins = [\"plug.Pre\", \"plug.Post\"]\npm = pluggy.PluginManager(\"printer\")\npm.add_hookspecs(PrinterHooks)\n\nfor plug in plugins:\n    if isinstance(plug, str):\n        # plug is a str representing a module to import\n        try:\n            # module style plugins\n            plugin = importlib.import_module(plug)\n        except ModuleNotFoundError as e:\n            # class style plugins\n            if \".\" in plug:\n                mod = importlib.import_module(\".\".join(plug.split(\".\")[:-1]))\n                plugin = getattr(mod, plug.split(\".\")[-1])\n            else:\n                raise e\n    else:\n        # plug is a module that is already imported\n        plugin = plug\n\n    pm.register(plugin)\n\n\ndef printer(msg):\n    pm.hook.pre_print(msg=msg)\n    print(msg)\n    pm.hook.post_print(msg=msg)\n```\n\n## EntryPoint plugins\n",
      "summary": "pytest has open sourced their amazing plugin framework , it allows library authors to give their users a way to modify the libaries behavior without needing...",
      "date_published": "2021-01-23T00:00:00Z",
      "date_modified": "2021-01-23T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/create-og-image-covers-using-python/",
      "url": "https://go.waylonwalker.com/create-og-image-covers-using-python/",
      "title": "Create Og Image Covers Using Python",
      "content_html": "\u003cp\u003eThere are so many tutorials out there for creating \u003ca href=\"/og/\" class=\"glossary-term\" title=\"OG is short for open graph, a set of standard meta tags that are used for social media sharing. This is what tells other websites how to describe and display...\"\u003eOG\u003c/a\u003e images with \u003ccode\u003enodejs\u003c/code\u003e or\n\u003ccode\u003epuppeteer\u003c/code\u003e, but I have yet to see many using python.\u003c/p\u003e\n\u003ch2 id=\"pil\"\u003ePIL \u003ca href=\"#pil\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"template\"\u003eTemplate \u003ca href=\"#template\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"text\"\u003eText \u003ca href=\"#text\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"overlays\"\u003eOverlays \u003ca href=\"#overlays\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n",
      "content_text": "\nThere are so many tutorials out there for creating OG images with `nodejs` or\n`puppeteer`, but I have yet to see many using python.\n\n## PIL\n\n## Template\n\n## Text\n\n\n## Overlays\n",
      "summary": "There are so many tutorials out there for creating OG images with or , but I have yet to see many using python.",
      "date_published": "2021-01-22T00:00:00Z",
      "date_modified": "2021-01-22T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/python-tool-config/",
      "url": "https://go.waylonwalker.com/python-tool-config/",
      "title": "⚙ How Python Tools Are Configured",
      "content_html": "\u003cp\u003eThere are various ways to configure python tools, config files, code, or\nenvironment variables.  Let’s look at a few projects that allow users to\nconfigure them through the use of config files and how they do it.\u003c/p\u003e\n\u003ch2 id=\"motivation\"\u003eMotivation \u003ca href=\"#motivation\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis will not include how they are implemented, I’ve looked at a few and its\nnot simple.  This will focus on where config is placed and the order in which\nduplicates are resolved.\u003c/p\u003e\n\u003cp\u003eThe motivation of this article is to serve as a bit of a reference guide for\nthose who may want to create their own package that needs configuration.\u003c/p\u003e\n\u003ch2 id=\"flake8\"\u003eFlake8 \u003ca href=\"#flake8\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch3 id=\"global\"\u003eGlobal \u003ca href=\"#global\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eUser settings can exist in the users \u003ccode\u003e~/.config/flake8\u003c/code\u003e file to configure how\nflake8 runs on their machine.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e~/.config/flake8\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"per-project\"\u003ePer-Project \u003ca href=\"#per-project\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eOnly One project config file will be considered, but allows for several\noptions.  These files all use the \u003ccode\u003eini\u003c/code\u003e format and must have a \u003ccode\u003e[flake8]\u003c/code\u003e\nsection  header to be consideered.\u003c/p\u003e\n\u003cp\u003eSelection of the config file can also be overridden by the \u003ccode\u003e--config\u003c/code\u003e cli option.\u003c/p\u003e\n\u003cp\u003eAn extra config file may be selected as \u003ccode\u003e--append-config\u003c/code\u003e.  It will be read in\nlast and take highest precedence.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003etox.ini\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esetup.cfg\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e.pep8\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e.flake8\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"example-config\"\u003eExample Config \u003ca href=\"#example-config\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003evalid in any of the supported files\u003c/em\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e[flake8]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"na\"\u003emax-line-length\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"s\"\u003e88\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"na\"\u003eextend-ignore\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"s\"\u003eE203, W503\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"options\"\u003eOptions \u003ca href=\"#options\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eThe number of options configured through config files is fairly short for \u003ccode\u003eflake8\u003c/code\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eexclude\u003c/li\u003e\n\u003cli\u003efilename\u003c/li\u003e\n\u003cli\u003eselect\u003c/li\u003e\n\u003cli\u003eignore\u003c/li\u003e\n\u003cli\u003emax-line-length\u003c/li\u003e\n\u003cli\u003eformat\u003c/li\u003e\n\u003cli\u003emax-complexity\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"black\"\u003eBlack \u003ca href=\"#black\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eBlack only supports \u003ccode\u003eTOML\u003c/code\u003e file formats for configuration.\u003c/p\u003e\n\u003ch3 id=\"global-1\"\u003eGlobal \u003ca href=\"#global-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eBlack provides no global config support.  If you really needed one I guess you\ncould make a cli alias.\u003c/p\u003e\n\u003ch3 id=\"per-project-1\"\u003ePer-Project \u003ca href=\"#per-project-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eBlack states that it includes sane defaults that do not need configured, but if\nyou need to do so it only supports \u003ccode\u003epyproject.toml\u003c/code\u003e or cli arguments.\u003c/p\u003e\n\u003cp\u003ePersonally I believe that a lot of work went into making these sane defaults\nreally good.  I personally do not make any configuration changes to black.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003epyproject.toml\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"example\"\u003eExample \u003ca href=\"#example\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003epyproject.toml\u003c/em\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nx\"\u003etool\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003eblack\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003eline-length\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"mi\"\u003e88\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003etarget-version\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;py37\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003einclude\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;\\.pyi?$\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003eexclude\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;\u0026#39;\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e(\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e  /(\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \\.eggs         # exclude a few common directories in the\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e    | \\.git          # root of the project\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e    | \\.hg\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e    | \\.mypy_cache\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e    | \\.tox\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e    | \\.venv\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e    | _build\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e    | buck-out\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e    | build\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e    | dist\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e  )/\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e  | foo.py           # also separately exclude a file named foo.py in\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e                     # the root of the project\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e)\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e\u0026#39;\u0026#39;\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"resolution\"\u003eResolution \u003ca href=\"#resolution\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eBlack will use teh \u003ccode\u003epyproject.toml\u003c/code\u003e file for configuration, then make any\naddional overrides through the use of command line arguments.\u003c/p\u003e\n\u003ch2 id=\"mypy\"\u003eMyPy \u003ca href=\"#mypy\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003emypy\u003c/code\u003e takes the cake for the most complex configuration.  Primarily because\nyou can configure how it treats different modules specifically.  These modules\nmay be inside your codebase or installed and imported in.\u003c/p\u003e\n\u003ch3 id=\"per-project-2\"\u003ePer-Project \u003ca href=\"#per-project-2\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e–config-file\u003c/li\u003e\n\u003cli\u003emypy.ini\u003c/li\u003e\n\u003cli\u003e.mypy.ini\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"global-2\"\u003eGlobal \u003ca href=\"#global-2\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e$XDG_CONFIG_HOME/mypy/config\u003c/li\u003e\n\u003cli\u003e~/.config/mypy/config\u003c/li\u003e\n\u003cli\u003e~/.mypy.ini\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"resolution-1\"\u003eResolution \u003ca href=\"#resolution-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e–config-file\u003c/li\u003e\n\u003cli\u003emypy.ini\u003c/li\u003e\n\u003cli\u003e.mypy.ini\u003c/li\u003e\n\u003cli\u003esetup.cfg\u003c/li\u003e\n\u003cli\u003e$XDG_CONFIG_HOME/mypy/config\u003c/li\u003e\n\u003cli\u003e~/.config/mypy/config\u003c/li\u003e\n\u003cli\u003e~/.mypy.ini\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"example-1\"\u003eExample \u003ca href=\"#example-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003e\u003cem\u003emypy.ini\u003c/em\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e# Global options:\n\n[mypy]\npython_version = 2.7\nwarn_return_any = True\nwarn_unused_configs = True\n\n# Per-module options:\n\n[mypy-mycode.foo.*]\ndisallow_untyped_defs = True\n\n[mypy-mycode.bar]\nwarn_return_any = False\n\n[mypy-somelibrary]\nignore_missing_imports = True\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2 id=\"kedro---framework\"\u003eKedro - framework \u003ca href=\"#kedro---framework\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eKedro is a unique one here.  It offers two distinctly different configurations,\none for how the framework behaves and the other for actual project config.\u003c/p\u003e\n\u003cp\u003eKedro does utilizes a \u003ccode\u003esettings.py\u003c/code\u003e and \u003ccode\u003epyproject.toml\u003c/code\u003e to define a bit more\nof the framework settings.  These are the outter layer of your project.\u003c/p\u003e\n\u003cp\u003eThese files sit at the root of the project.\u003c/p\u003e\n\u003ch3 id=\"pyprojecttomlhttpsgithubcomkedro-orgkedroblobfb88cc2504ddbfc93b9b859ca436130b396b93c4docssource12-faq02-architecture-overviewmdpyprojecttoml\"\u003e\u003ca href=\"https://github.com/kedro-org/kedro/blob/fb88cc2504ddbfc93b9b859ca436130b396b93c4/docs/source/12_faq/02_architecture_overview.md#pyprojecttoml\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003epyproject.toml\u003c/a\u003e \u003ca href=\"#pyprojecttomlhttpsgithubcomkedro-orgkedroblobfb88cc2504ddbfc93b9b859ca436130b396b93c4docssource12-faq02-architecture-overviewmdpyprojecttoml\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eThis replaces much of what used to be specified in run.py.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003epackage_name\u003c/li\u003e\n\u003cli\u003eproject_name\u003c/li\u003e\n\u003cli\u003eproject_version\u003c/li\u003e\n\u003cli\u003esource_dir\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"settingspyhttpsgithubcomkedro-orgkedroblobfb88cc2504ddbfc93b9b859ca436130b396b93c4docssource12-faq02-architecture-overviewmdsettingspy\"\u003e\u003ca href=\"https://github.com/kedro-org/kedro/blob/fb88cc2504ddbfc93b9b859ca436130b396b93c4/docs/source/12_faq/02_architecture_overview.md#settingspy\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eSettings.py\u003c/a\u003e \u003ca href=\"#settingspyhttpsgithubcomkedro-orgkedroblobfb88cc2504ddbfc93b9b859ca436130b396b93c4docssource12-faq02-architecture-overviewmdsettingspy\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDISABLE_HOOKS_FOR_PLUGINS\u003c/li\u003e\n\u003cli\u003eHOOKS\u003c/li\u003e\n\u003cli\u003eSESSION_STORE_CLASS\u003c/li\u003e\n\u003cli\u003eSESSION_STORE_ARGS\u003c/li\u003e\n\u003cli\u003eCONTEXT_CLASS\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"kedro---project\"\u003eKedro - project \u003ca href=\"#kedro---project\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWithin the project generally in the \u003ccode\u003esrc/conf\u003c/code\u003e directory kedro allows you to\nset both local and base configurations.  Local configurations will be \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e\nignored and most commonly used for credentials.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ecatalog\u003c/li\u003e\n\u003cli\u003elogging\u003c/li\u003e\n\u003cli\u003ecredentials\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"config-loader\"\u003eConfig Loader \u003ca href=\"#config-loader\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eKedro lets you setup the config loader if you choose to do so.  You can\nconfigure the directories to look in as well as the glob pattern for files.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003ekedro.config\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eConfigLoader\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003econf_paths\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;conf/base\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;conf/local\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003econf_loader\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eConfigLoader\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003econf_paths\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003econf_catalog\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003econf_loader\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eget\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;catalog*\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;catalog*/**\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"additional-envs\"\u003eadditional envs \u003ca href=\"#additional-envs\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eAdditional to the \u003ccode\u003ebase\u003c/code\u003e and \u003ccode\u003elocal\u003c/code\u003e config, kedro lets you specify an env at\nruntime through a \u003ccode\u003e--env\u003c/code\u003e argumet or a \u003ccode\u003eKEDRO_ENV\u003c/code\u003e variable.  setting this will\nadditionally tell kedro to reach into \u003ccode\u003econf/\u0026lt;env-name\u0026gt;\u003c/code\u003e for configuration.\u003c/p\u003e\n\u003ch3 id=\"resolution-order\"\u003eResolution Order \u003ca href=\"#resolution-order\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003ekedro will load each config starting from \u003ccode\u003ebase\u003c/code\u003e, \u003ccode\u003elocal\u003c/code\u003e, then \u003ccode\u003eenv\u003c/code\u003e and will\noverrite any colllisions along the way.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eprecedence heirarchy\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eenv\u003c/li\u003e\n\u003cli\u003elocal\u003c/li\u003e\n\u003cli\u003ebase\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"jinja-support\"\u003eJinja Support \u003ca href=\"#jinja-support\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eAs of \u003ccode\u003e0.17.0\u003c/code\u003e kedro supports jinja2 templates in its yml configuration files.\nThis is quite beneficial as catalogs can become incredebly repetative.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e{\u003cspan class=\"l\"\u003e% for speed in [\u0026#39;fast\u0026#39;, \u0026#39;slow\u0026#39;] %}\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e{{\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"nt\"\u003espeed }}-trains\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003etype\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eMemoryDataSet\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e{{\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"nt\"\u003espeed }}-cars\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003etype\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003epandas.CSVDataSet\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003efilepath\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003es3://${bucket_name}/{{ speed }}-cars.csv\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003esave_args\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"nt\"\u003eindex\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"kc\"\u003etrue\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e{\u003cspan class=\"l\"\u003e% endfor %}\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"pytest\"\u003epytest \u003ca href=\"#pytest\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eCurrently pytest is configured\u003c/p\u003e\n\u003ch2 id=\"resolution-order-1\"\u003eresolution order \u003ca href=\"#resolution-order-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003epytest\u003c/code\u003e will look for the existence of each of these files, if its a match it\nwill stop looking for new files, even if the file is empty.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epytest.ini\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003epyproject.toml\u003c/code\u003e with \u003ccode\u003e[tool.pytest.ini_options]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003etox.ini\u003c/code\u003e with \u003ccode\u003e[pytest]\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esetup.cfg\u003c/code\u003e with \u003ccode\u003e[tool:pytest]\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"multiple-config\"\u003eMultiple Config \u003ca href=\"#multiple-config\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003epytest\u003c/code\u003e is a bit unique here in that it allows for multiple configs.  There is\na complex resolution for module specific configuration, but essentially it does\nthe resolution highlighted above through a number of directories and returns\nthe config closest to the test module.\u003c/p\u003e\n\u003ch2 id=\"example-pytest-config\"\u003eExample pytest config \u003ca href=\"#example-pytest-config\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# pytest.ini\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e[pytest]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"na\"\u003eminversion\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"s\"\u003e6.0\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"na\"\u003eaddopts\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"s\"\u003e-ra -q\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"na\"\u003etestpaths\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s\"\u003e    tests\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s\"\u003e    integration\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"command-line-options\"\u003eCommand Line Options \u003ca href=\"#command-line-options\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAs far as I am aware every option specified in a config file can also be\nconfigured or overridden at the command line.\u003c/p\u003e\n\u003ch2 id=\"ipython\"\u003eipython \u003ca href=\"#ipython\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eIpython\u003c/code\u003e is configured completely at a system level with python scripts within\nthe users \u003ccode\u003e~/.ipython/\u003c/code\u003e directory.  The user may have multiple profiles that\ncan be created by running \u003ccode\u003eipython profile create [profilename]\u003c/code\u003e or specified\nby running \u003ccode\u003eipython --profile=[profilename]\u003c/code\u003e\u003c/p\u003e\n\u003ch3 id=\"config-directory\"\u003eConfig Directory \u003ca href=\"#config-directory\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eBy default this is \u003ccode\u003e~/.ipython\u003c/code\u003e, but an be configured by setting the\n\u003ccode\u003eIPYTHONDIR\u003c/code\u003e environment variable or \u003ccode\u003e--ipython-dir=\u0026lt;path\u0026gt;\u003c/code\u003e command line\noption.\u003c/p\u003e\n\u003ch3 id=\"example-config-1\"\u003eExample Config \u003ca href=\"#example-config-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# sample ipython_config.py\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ec\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eget_config\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ec\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eTerminalIPythonApp\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003edisplay_banner\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"kc\"\u003eTrue\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ec\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eInteractiveShellApp\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003elog_level\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"mi\"\u003e20\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ec\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eInteractiveShellApp\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eextensions\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s1\"\u003e\u0026#39;myextension\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ec\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eInteractiveShellApp\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eexec_lines\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s1\"\u003e\u0026#39;import numpy\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s1\"\u003e\u0026#39;import scipy\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ec\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eInteractiveShellApp\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eexec_files\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s1\"\u003e\u0026#39;mycode.py\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s1\"\u003e\u0026#39;fancy.ipy\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ec\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eInteractiveShell\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eautoindent\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"kc\"\u003eTrue\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ec\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eInteractiveShell\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ecolors\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;LightBG\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ec\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eInteractiveShell\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003econfirm_exit\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"kc\"\u003eFalse\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ec\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eInteractiveShell\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003edeep_reload\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"kc\"\u003eTrue\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ec\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eInteractiveShell\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eeditor\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;nano\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ec\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eInteractiveShell\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003exmode\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;Context\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ec\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ePromptManager\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ein_template\u003c/span\u003e  \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;In [\\#]: \u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ec\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ePromptManager\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ein2_template\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;   .\\D.: \u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ec\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ePromptManager\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eout_template\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;Out[\\#]: \u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ec\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ePromptManager\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ejustify\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"kc\"\u003eTrue\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ec\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ePrefilterManager\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003emulti_line_specials\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"kc\"\u003eTrue\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ec\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eAliasManager\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003euser_aliases\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;la\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;ls -al\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"commandline-overrides\"\u003eCommandLine Overrides \u003ca href=\"#commandline-overrides\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eEvery configurable value can be overridden from the command line.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eipython --ClassName.attribute\u003cspan class=\"o\"\u003e=\u003c/span\u003evalue\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"config-magic\"\u003eConfig Magic \u003ca href=\"#config-magic\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eConfiguration can be overridden at runtime with the \u003ccode\u003e%config\u003c/code\u003e magic.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e%\u003c/span\u003e\u003cspan class=\"n\"\u003econfig\u003c/span\u003e \u003cspan class=\"n\"\u003eIPCompleter\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003egreedy\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"kc\"\u003eTrue\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"startup\"\u003eStartup \u003ca href=\"#startup\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eEvery ipython profile has a startup directory where it will execute each \u003ccode\u003e.py\u003c/code\u003e\nand \u003ccode\u003e.ipy\u003c/code\u003e file on startup.  You can make additional configuration here, import\nmodules you want readily available, execute literally any python code you want\nto at the startup of that particular profile.\u003c/p\u003e\n",
      "content_text": "\nThere are various ways to configure python tools, config files, code, or\nenvironment variables.  Let's look at a few projects that allow users to\nconfigure them through the use of config files and how they do it.\n\n## Motivation\n\nThis will not include how they are implemented, I've looked at a few and its\nnot simple.  This will focus on where config is placed and the order in which\nduplicates are resolved.\n\nThe motivation of this article is to serve as a bit of a reference guide for\nthose who may want to create their own package that needs configuration.\n\n## Flake8\n\n### Global\n\nUser settings can exist in the users `~/.config/flake8` file to configure how\nflake8 runs on their machine.\n\n* `~/.config/flake8`\n\n### Per-Project\n\nOnly One project config file will be considered, but allows for several\noptions.  These files all use the `ini` format and must have a `[flake8]`\nsection  header to be consideered.\n\nSelection of the config file can also be overridden by the `--config` cli option.\n\nAn extra config file may be selected as `--append-config`.  It will be read in\nlast and take highest precedence.\n\n* `tox.ini`\n* `setup.cfg`\n* `.pep8`\n* `.flake8`\n\n## Example Config\n\n_valid in any of the supported files_\n\n``` ini\n[flake8]\nmax-line-length = 88\nextend-ignore = E203, W503\n```\n\n### Options\n\nThe number of options configured through config files is fairly short for `flake8`.\n\n* exclude\n* filename\n* select\n* ignore\n* max-line-length\n* format\n* max-complexity\n\n## Black\n\nBlack only supports `TOML` file formats for configuration.\n\n### Global\n\nBlack provides no global config support.  If you really needed one I guess you\ncould make a cli alias.\n\n### Per-Project\n\nBlack states that it includes sane defaults that do not need configured, but if\nyou need to do so it only supports `pyproject.toml` or cli arguments.\n\nPersonally I believe that a lot of work went into making these sane defaults\nreally good.  I personally do not make any configuration changes to black.\n\n* pyproject.toml\n\n## Example\n\n_pyproject.toml_\n\n``` toml\n[tool.black]\nline-length = 88\ntarget-version = ['py37']\ninclude = '\\.pyi?$'\nexclude = '''\n\n(\n  /(\n      \\.eggs         # exclude a few common directories in the\n    | \\.git          # root of the project\n    | \\.hg\n    | \\.mypy_cache\n    | \\.tox\n    | \\.venv\n    | _build\n    | buck-out\n    | build\n    | dist\n  )/\n  | foo.py           # also separately exclude a file named foo.py in\n                     # the root of the project\n)\n'''\n```\n\n## Resolution\n\nBlack will use teh `pyproject.toml` file for configuration, then make any\naddional overrides through the use of command line arguments.\n\n## MyPy\n\n`mypy` takes the cake for the most complex configuration.  Primarily because\nyou can configure how it treats different modules specifically.  These modules\nmay be inside your codebase or installed and imported in.\n\n### Per-Project\n\n* --config-file\n* mypy.ini\n* .mypy.ini\n\n### Global\n\n* $XDG_CONFIG_HOME/mypy/config\n* ~/.config/mypy/config\n* ~/.mypy.ini\n\n### Resolution\n\n* --config-file\n* mypy.ini\n* .mypy.ini\n* setup.cfg\n* $XDG_CONFIG_HOME/mypy/config\n* ~/.config/mypy/config\n* ~/.mypy.ini\n\n### Example\n\n_mypy.ini_\n\n```\n# Global options:\n\n[mypy]\npython_version = 2.7\nwarn_return_any = True\nwarn_unused_configs = True\n\n# Per-module options:\n\n[mypy-mycode.foo.*]\ndisallow_untyped_defs = True\n\n[mypy-mycode.bar]\nwarn_return_any = False\n\n[mypy-somelibrary]\nignore_missing_imports = True\n```\n\n## Kedro - framework\n\nKedro is a unique one here.  It offers two distinctly different configurations,\none for how the framework behaves and the other for actual project config.\n\nKedro does utilizes a `settings.py` and `pyproject.toml` to define a bit more\nof the framework settings.  These are the outter layer of your project.\n\nThese files sit at the root of the project.\n\n### [pyproject.toml](https://github.com/kedro-org/kedro/blob/fb88cc2504ddbfc93b9b859ca436130b396b93c4/docs/source/12_faq/02_architecture_overview.md#pyprojecttoml)\n\nThis replaces much of what used to be specified in run.py.\n\n* package_name\n* project_name\n* project_version\n* source_dir\n\n### [Settings.py](https://github.com/kedro-org/kedro/blob/fb88cc2504ddbfc93b9b859ca436130b396b93c4/docs/source/12_faq/02_architecture_overview.md#settingspy)\n\n* DISABLE_HOOKS_FOR_PLUGINS\n* HOOKS\n* SESSION_STORE_CLASS\n* SESSION_STORE_ARGS\n* CONTEXT_CLASS\n\n## Kedro - project\n\nWithin the project generally in the `src/conf` directory kedro allows you to\nset both local and base configurations.  Local configurations will be git\nignored and most commonly used for credentials.\n\n* catalog\n* logging\n* credentials\n\n### Config Loader\n\nKedro lets you setup the config loader if you choose to do so.  You can\nconfigure the directories to look in as well as the glob pattern for files.\n\n``` python\nfrom kedro.config import ConfigLoader\n\nconf_paths = [\"conf/base\", \"conf/local\"]\nconf_loader = ConfigLoader(conf_paths)\nconf_catalog = conf_loader.get(\"catalog*\", \"catalog*/**\")\n```\n\n### additional envs\n\nAdditional to the `base` and `local` config, kedro lets you specify an env at\nruntime through a `--env` argumet or a `KEDRO_ENV` variable.  setting this will\nadditionally tell kedro to reach into `conf/\u003cenv-name\u003e` for configuration.\n\n### Resolution Order\n\nkedro will load each config starting from `base`, `local`, then `env` and will\noverrite any colllisions along the way.\n\n**precedence heirarchy**\n\n* env\n* local\n* base\n\n### Jinja Support\n\nAs of `0.17.0` kedro supports jinja2 templates in its yml configuration files.\nThis is quite beneficial as catalogs can become incredebly repetative.\n\n``` yaml\n{% for speed in ['fast', 'slow'] %}\n{{ speed }}-trains:\n    type: MemoryDataSet\n\n{{ speed }}-cars:\n    type: pandas.CSVDataSet\n    filepath: s3://${bucket_name}/{{ speed }}-cars.csv\n    save_args:\n        index: true\n\n{% endfor %}\n```\n\n## pytest\n\nCurrently pytest is configured\n\n## resolution order\n\n`pytest` will look for the existence of each of these files, if its a match it\nwill stop looking for new files, even if the file is empty.\n\n* `pytest.ini`\n* `pyproject.toml` with `[tool.pytest.ini_options]`\n* `tox.ini` with `[pytest]`\n* `setup.cfg` with `[tool:pytest]`\n\n## Multiple Config\n\n`pytest` is a bit unique here in that it allows for multiple configs.  There is\na complex resolution for module specific configuration, but essentially it does\nthe resolution highlighted above through a number of directories and returns\nthe config closest to the test module.\n\n## Example pytest config\n\n``` ini\n# pytest.ini\n[pytest]\nminversion = 6.0\naddopts = -ra -q\ntestpaths =\n    tests\n    integration\n```\n\n## Command Line Options\n\nAs far as I am aware every option specified in a config file can also be\nconfigured or overridden at the command line.\n\n## ipython\n\n`Ipython` is configured completely at a system level with python scripts within\nthe users `~/.ipython/` directory.  The user may have multiple profiles that\ncan be created by running `ipython profile create [profilename]` or specified\nby running `ipython --profile=[profilename]`\n\n### Config Directory\n\nBy default this is `~/.ipython`, but an be configured by setting the\n`IPYTHONDIR` environment variable or `--ipython-dir=\u003cpath\u003e` command line\noption.\n\n### Example Config\n\n``` python\n# sample ipython_config.py\nc = get_config()\n\nc.TerminalIPythonApp.display_banner = True\nc.InteractiveShellApp.log_level = 20\nc.InteractiveShellApp.extensions = [\n    'myextension'\n]\nc.InteractiveShellApp.exec_lines = [\n    'import numpy',\n    'import scipy'\n]\nc.InteractiveShellApp.exec_files = [\n    'mycode.py',\n    'fancy.ipy'\n]\nc.InteractiveShell.autoindent = True\nc.InteractiveShell.colors = 'LightBG'\nc.InteractiveShell.confirm_exit = False\nc.InteractiveShell.deep_reload = True\nc.InteractiveShell.editor = 'nano'\nc.InteractiveShell.xmode = 'Context'\n\nc.PromptManager.in_template  = 'In [\\#]: '\nc.PromptManager.in2_template = '   .\\D.: '\nc.PromptManager.out_template = 'Out[\\#]: '\nc.PromptManager.justify = True\n\nc.PrefilterManager.multi_line_specials = True\n\nc.AliasManager.user_aliases = [\n ('la', 'ls -al')\n]\n```\n\n### CommandLine Overrides\n\nEvery configurable value can be overridden from the command line.\n\n``` bash\nipython --ClassName.attribute=value\n```\n\n### Config Magic\n\nConfiguration can be overridden at runtime with the `%config` magic.\n\n``` python\n%config IPCompleter.greedy = True\n```\n\n### Startup\n\nEvery ipython profile has a startup directory where it will execute each `.py`\nand `.ipy` file on startup.  You can make additional configuration here, import\nmodules you want readily available, execute literally any python code you want\nto at the startup of that particular profile.\n",
      "summary": "There are various ways to configure python tools, config files, code, or environment variables. Let's look at a few projects that allow users to configure...",
      "date_published": "2021-01-21T00:00:00Z",
      "date_modified": "2021-01-21T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/kedro-dependency-management/",
      "url": "https://go.waylonwalker.com/kedro-dependency-management/",
      "title": "Kedro Dependency Management",
      "content_html": "\u003ch2 id=\"docs\"\u003eDocs \u003ca href=\"#docs\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://kedro.readthedocs.io/en/stable/04_kedro_project_setup/01_dependencies.html?highlight=install\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/kedro.readthedocs.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/kedro.readthedocs.io.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://kedro.readthedocs.io/en/stable/04_kedro_project_setup/01_dependencies.html?highlight=install\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"pip-tools\"\u003epip-tools \u003ca href=\"#pip-tools\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"pip-compile\"\u003epip-compile \u003ca href=\"#pip-compile\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"requirements\"\u003erequirements \u003ca href=\"#requirements\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erequirements.in\u003c/li\u003e\n\u003cli\u003erequirements.txt\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\n\n\n## Docs\n\nhttps://kedro.readthedocs.io/en/stable/04_kedro_project_setup/01_dependencies.html?highlight=install\n\n## pip-tools\n\n## pip-compile\n## requirements\n\n* requirements.in\n* requirements.txt\n",
      "summary": "https://kedro.readthedocs.io/en/stable/04_project_dependencies.html?highlight=install",
      "date_published": "2021-01-19T00:00:00Z",
      "date_modified": "2021-01-19T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "kedro"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/blog-data-with-python/",
      "url": "https://go.waylonwalker.com/blog-data-with-python/",
      "title": "Blog Data With Python",
      "content_html": "\u003cp\u003eGenerating an api for a blog is much simpler than one might expect with python.\u003c/p\u003e\n\u003ch2 id=\"markdown\"\u003eMarkdown \u003ca href=\"#markdown\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"frontmatter\"\u003eFrontmatter \u003ca href=\"#frontmatter\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"fill-in-the-blanks\"\u003eFill in the blanks \u003ca href=\"#fill-in-the-blanks\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003efix missing data\u003c/p\u003e\n\u003ch2 id=\"fast\"\u003eFast \u003ca href=\"#fast\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n",
      "content_text": "\nGenerating an api for a blog is much simpler than one might expect with python.\n\n## Markdown\n\n## Frontmatter\n\n## Fill in the blanks\n\nfix missing data\n\n## Fast\n",
      "summary": "Generating an api for a blog is much simpler than one might expect with python.",
      "date_published": "2021-01-18T00:00:00Z",
      "date_modified": "2021-01-18T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "blog",
        "data"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/todo/",
      "url": "https://go.waylonwalker.com/todo/",
      "title": "Todo",
      "content_html": "\u003cp\u003eOverrated underrated command line applications\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eShip More\u003c/li\u003e\n\u003cli\u003eShip Less - get feedback and apply feedback, build the right things\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"kedro-youtube-series\"\u003ekedro YouTube series \u003ca href=\"#kedro-youtube-series\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eGet started on daily kedro shorts, these are indended to be short clips that\npeople can watch a playlist and learn about kedro concepts at their own pace.\nThis is meant to be low barrier to entry for me to create.  Like the tmux\nseries, I hope to make a sub three minute video within one or two takes, no\nedits, all straight from obs.\u003c/p\u003e\n\u003ch2 id=\"written\"\u003ewritten \u003ca href=\"#written\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ehow I kedro 8/16\u003c/li\u003e\n\u003cli\u003ewhat is kedro 8/17\u003c/li\u003e\n\u003cli\u003ekedro new 8/18\u003c/li\u003e\n\u003cli\u003ethree ways to create a kedro environment 8/19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e init 8/20\u003c/li\u003e\n\u003cli\u003ekedro install 8/21\u003c/li\u003e\n\u003cli\u003ekedro pipeline create 8/22\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"staging\"\u003estaging \u003ca href=\"#staging\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003emaking your first nodes in kedro 8/23\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ekedro run 8/24\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ekedro catalog create 8/25\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd new dependencies 8/26\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003elisting things from the kedro cli 8/27\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eStoring catalog entries 8/30\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eComprehensive nodes\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003emodular piplines 8/29\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ekedro pipeline package\u003c/li\u003e\n\u003cli\u003ekedro pipeline pull\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eparameters\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003epipeline registry\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efind-kedro\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003elambdas in kedro nodes\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ebuilt in pipeline filters from the\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efiltering pipelines with list comps\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eglobbing for catalog entries in the repl\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eactivate-nbstripout\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ebuild-docs\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ebuild-reqs\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ekedro package\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ekedro lint\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ekedro test\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ekedro ipython\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ekedro jupyter\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ekedro spaceflights the gold standard of tutorials\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003espeed up your kedro pipeline with a sane \u003ccode\u003e__default__\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ecreate custom kedro cli commands\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eoverride kedro cli commands\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eaccessing the kedro session\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003einstalling kedro hooks\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ecreating your first kedro hook\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003emu-repo to update many projects\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCustom DataSets\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSetting up pre-commit\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVisidata\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLogging\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCustom logger\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ekedro-lsp\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efind-kedro\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eKedro-diff\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocker\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003epip-tools\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003esony 205ms\ncannon 370ms\u003c/p\u003e\n\u003ch2 id=\"background-glow\"\u003ebackground glow \u003ca href=\"#background-glow\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ee1af66\u003c/li\u003e\n\u003cli\u003ec122ac\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"stream-ideas\"\u003estream ideas \u003ca href=\"#stream-ideas\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eauto pyflyby\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003edir\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"nb\"\u003egetattr\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"nb\"\u003egetattr\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003epd\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;util\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;version\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003ereplace\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003etext\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"n\"\u003ere\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003esub\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;as.*\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ere\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003esub\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;.*import \u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003etext\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eexisting_flies\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"n\"\u003ereplace\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003et\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003et\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003ePath\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;/home/u_walkews/.pyflyby\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eread_text\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003esplit\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"se\"\u003e\\n\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"description\"\u003eDescription \u003ca href=\"#description\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAvoid serious version conflict issues, and use a \u003ca href=\"/virtual-environment/\" class=\"glossary-term\" title=\"Virtual Environment is term for a sandboxed environment commonly associated with the python programming language. If you are installing any sort of python...\"\u003evirtual environment\u003c/a\u003e anytime you are running python, here are three ways you can setup a kedro virtual environment.\u003c/p\u003e\n\u003cp\u003eFull Post 👉 \u003ca href=\"https://waylonwalker.com/kedro-environment/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://waylonwalker.com/kedro-environment/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e―――――――― Kedro ―――――――――――――\u003c/p\u003e\n\u003cp\u003eAll of my kedro aticles: \u003ca href=\"https://waylonwalker.com/kedro/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://waylonwalker.com/kedro/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFull kedro series \u003ca href=\"https://www.youtube.com/watch?v=bw5_FWDVRpU\u0026amp;list=PLTRNG6WIHETCoPt5gAKYSH_HCZvE_r41n\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://www.youtube.com/watch?v=bw5_FWDVRpU\u0026amp;list=PLTRNG6WIHETCoPt5gAKYSH_HCZvE_r41n\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eDocs: \u003ca href=\"https://kedro.readthedocs.io/en/stable/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/kedro.readthedocs.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/kedro.readthedocs.io.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://kedro.readthedocs.io/en/stable/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e―――――――― Socials ――――――――――――\u003c/p\u003e\n\u003cp\u003etwitter:  \u003ca href=\"https://twitter.com/_WaylonWalker\"\u003ehttps://twitter.com/_WaylonWalker\u003c/a\u003e\ntwitch: \u003ca href=\"https://www.twitch.tv/waylonwalker\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.twitch.tv.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.twitch.tv.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://www.twitch.tv/waylonwalker\u003c/a\u003e\ngithub: \u003ca href=\"https://github.com/waylonwalker/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://github.com/waylonwalker/\u003c/a\u003e\ntwitch: \u003ca href=\"https://www.twitch.tv/waylonwalker\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.twitch.tv.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.twitch.tv.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://www.twitch.tv/waylonwalker\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\nOverrated underrated command line applications\n\n* Ship More\n* Ship Less - get feedback and apply feedback, build the right things\n\n## kedro YouTube series\n\nGet started on daily kedro shorts, these are indended to be short clips that\npeople can watch a playlist and learn about kedro concepts at their own pace.\nThis is meant to be low barrier to entry for me to create.  Like the tmux\nseries, I hope to make a sub three minute video within one or two takes, no\nedits, all straight from obs.\n\n## written\n\n* how I kedro 8/16\n* what is kedro 8/17\n* kedro new 8/18\n* three ways to create a kedro environment 8/19\n* git init 8/20\n* kedro install 8/21\n* kedro pipeline create 8/22\n\n## staging\n\n* making your first nodes in kedro 8/23\n* kedro run 8/24\n* kedro catalog create 8/25\n* add new dependencies 8/26\n* listing things from the kedro cli 8/27\n* Storing catalog entries 8/30\n\n* Comprehensive nodes\n* modular piplines 8/29\n  * kedro pipeline package\n  * kedro pipeline pull\n\n* parameters\n* pipeline registry\n* find-kedro\n* lambdas in kedro nodes\n* built in pipeline filters from the\n* filtering pipelines with list comps\n* globbing for catalog entries in the repl\n* activate-nbstripout\n* build-docs\n* build-reqs\n* kedro package\n* kedro lint\n* kedro test\n* kedro ipython\n* kedro jupyter\n* kedro spaceflights the gold standard of tutorials\n* speed up your kedro pipeline with a sane `__default__`\n* create custom kedro cli commands\n* override kedro cli commands\n* accessing the kedro session\n* installing kedro hooks\n* creating your first kedro hook\n* mu-repo to update many projects\n* Custom DataSets\n* Setting up pre-commit\n* Visidata\n* Logging\n* Custom logger\n* kedro-lsp\n* find-kedro\n* Kedro-diff\n* Docker\n\n* pip-tools\n\nsony 205ms\ncannon 370ms\n\n## background glow\n\n* e1af66\n* c122ac\n\n## stream ideas\n\nauto pyflyby\n\n``` python\ndir(getattr(getattr(pd, \"util\"), 'version'))\ndef replace(text):\n    return re.sub(\"as.*\", \"\", re.sub(\".*import \", \"\", text))\nexisting_flies = [replace(t) for t in Path(\"/home/u_walkews/.pyflyby\").read_text().split(\"\\n\")]\n```\n\n## Description\n\nAvoid serious version conflict issues, and use a virtual environment anytime you are running python, here are three ways you can setup a kedro virtual environment.\n\nFull Post 👉 \u003chttps://waylonwalker.com/kedro-environment/\u003e\n\n―――――――― Kedro ―――――――――――――\n\nAll of my kedro aticles: \u003chttps://waylonwalker.com/kedro/\u003e\n\nFull kedro series \u003chttps://www.youtube.com/watch?v=bw5_FWDVRpU\u0026list=PLTRNG6WIHETCoPt5gAKYSH_HCZvE_r41n\u003e\n\nDocs: \u003chttps://kedro.readthedocs.io/en/stable/\u003e\n\n―――――――― Socials ――――――――――――\n\ntwitter:  \u003chttps://twitter.com/_WaylonWalker\u003e\ntwitch: \u003chttps://www.twitch.tv/waylonwalker\u003e\ngithub: \u003chttps://github.com/waylonwalker/\u003e\ntwitch: \u003chttps://www.twitch.tv/waylonwalker\u003e\n",
      "summary": "Overrated underrated command line applications",
      "date_published": "2021-01-01T00:00:00Z",
      "date_modified": "2021-01-01T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/ipython-ninjitsu/",
      "url": "https://go.waylonwalker.com/ipython-ninjitsu/",
      "title": "Ipython Ninjitsu",
      "content_html": "\u003cul\u003e\n\u003cli\u003e?docstring\u003c/li\u003e\n\u003cli\u003e??sourcecode\u003c/li\u003e\n\u003cli\u003e%run\u003c/li\u003e\n\u003cli\u003e%debug\u003c/li\u003e\n\u003cli\u003e%autoreload\u003c/li\u003e\n\u003cli\u003e%history\u003c/li\u003e\n\u003cli\u003eautoformat\u003c/li\u003e\n\u003cli\u003e%reset\u003c/li\u003e\n\u003cli\u003e!shell commands\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"docstring\"\u003e?docstring \u003ca href=\"#docstring\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eStop going to google everytime your stuck and stay in your workflow.  The\nipython \u003ccode\u003e?\u003c/code\u003e is a superhero for productivity and staying on task.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003ekedro.pipeline\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003ePipeline\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ePipeline\u003c/span\u003e\u003cspan class=\"err\"\u003e?\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eInit\u003c/span\u003e \u003cspan class=\"n\"\u003esignature\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ePipeline\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003enodes\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003eIterable\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"n\"\u003eUnion\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"n\"\u003ekedro\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003epipeline\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003enode\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eNode\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eForwardRef\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;Pipeline\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)]],\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e*\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003etags\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003eUnion\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nb\"\u003estr\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eIterable\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nb\"\u003estr\u003c/span\u003e\u003cspan class=\"p\"\u003e]]\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eDocstring\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eA\u003c/span\u003e \u003cspan class=\"err\"\u003e``\u003c/span\u003e\u003cspan class=\"n\"\u003ePipeline\u003c/span\u003e\u003cspan class=\"err\"\u003e``\u003c/span\u003e \u003cspan class=\"n\"\u003edefined\u003c/span\u003e \u003cspan class=\"k\"\u003eas\u003c/span\u003e \u003cspan class=\"n\"\u003ea\u003c/span\u003e \u003cspan class=\"n\"\u003ecollection\u003c/span\u003e \u003cspan class=\"n\"\u003eof\u003c/span\u003e \u003cspan class=\"err\"\u003e``\u003c/span\u003e\u003cspan class=\"n\"\u003eNode\u003c/span\u003e\u003cspan class=\"err\"\u003e``\u003c/span\u003e \u003cspan class=\"n\"\u003eobjects\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e \u003cspan class=\"n\"\u003eThis\u003c/span\u003e \u003cspan class=\"k\"\u003eclass\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nc\"\u003etreats\u003c/span\u003e \u003cspan class=\"n\"\u003enodes\u003c/span\u003e \u003cspan class=\"k\"\u003eas\u003c/span\u003e \u003cspan class=\"n\"\u003epart\u003c/span\u003e \u003cspan class=\"n\"\u003eof\u003c/span\u003e \u003cspan class=\"n\"\u003ea\u003c/span\u003e \u003cspan class=\"n\"\u003egraph\u003c/span\u003e \u003cspan class=\"n\"\u003erepresentation\u003c/span\u003e \u003cspan class=\"ow\"\u003eand\u003c/span\u003e \u003cspan class=\"n\"\u003eprovides\u003c/span\u003e \u003cspan class=\"n\"\u003einputs\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eoutputs\u003c/span\u003e \u003cspan class=\"ow\"\u003eand\u003c/span\u003e \u003cspan class=\"n\"\u003eexecution\u003c/span\u003e \u003cspan class=\"n\"\u003eorder\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eInit\u003c/span\u003e \u003cspan class=\"n\"\u003edocstring\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eInitialise\u003c/span\u003e \u003cspan class=\"err\"\u003e``\u003c/span\u003e\u003cspan class=\"n\"\u003ePipeline\u003c/span\u003e\u003cspan class=\"err\"\u003e``\u003c/span\u003e \u003cspan class=\"k\"\u003ewith\u003c/span\u003e \u003cspan class=\"n\"\u003ea\u003c/span\u003e \u003cspan class=\"nb\"\u003elist\u003c/span\u003e \u003cspan class=\"n\"\u003eof\u003c/span\u003e \u003cspan class=\"err\"\u003e``\u003c/span\u003e\u003cspan class=\"n\"\u003eNode\u003c/span\u003e\u003cspan class=\"err\"\u003e``\u003c/span\u003e \u003cspan class=\"n\"\u003einstances\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eArgs\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003enodes\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003eThe\u003c/span\u003e \u003cspan class=\"n\"\u003eiterable\u003c/span\u003e \u003cspan class=\"n\"\u003eof\u003c/span\u003e \u003cspan class=\"n\"\u003enodes\u003c/span\u003e \u003cspan class=\"n\"\u003ethe\u003c/span\u003e \u003cspan class=\"err\"\u003e``\u003c/span\u003e\u003cspan class=\"n\"\u003ePipeline\u003c/span\u003e\u003cspan class=\"err\"\u003e``\u003c/span\u003e \u003cspan class=\"n\"\u003ewill\u003c/span\u003e \u003cspan class=\"n\"\u003ebe\u003c/span\u003e \u003cspan class=\"n\"\u003emade\u003c/span\u003e \u003cspan class=\"n\"\u003eof\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e \u003cspan class=\"n\"\u003eIf\u003c/span\u003e \u003cspan class=\"n\"\u003eyou\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003eprovide\u003c/span\u003e \u003cspan class=\"n\"\u003epipelines\u003c/span\u003e \u003cspan class=\"n\"\u003eamong\u003c/span\u003e \u003cspan class=\"n\"\u003ethe\u003c/span\u003e \u003cspan class=\"nb\"\u003elist\u003c/span\u003e \u003cspan class=\"n\"\u003eof\u003c/span\u003e \u003cspan class=\"n\"\u003enodes\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ethose\u003c/span\u003e \u003cspan class=\"n\"\u003epipelines\u003c/span\u003e \u003cspan class=\"n\"\u003ewill\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003ebe\u003c/span\u003e \u003cspan class=\"n\"\u003eexpanded\u003c/span\u003e \u003cspan class=\"ow\"\u003eand\u003c/span\u003e \u003cspan class=\"nb\"\u003eall\u003c/span\u003e \u003cspan class=\"n\"\u003etheir\u003c/span\u003e \u003cspan class=\"n\"\u003enodes\u003c/span\u003e \u003cspan class=\"n\"\u003ewill\u003c/span\u003e \u003cspan class=\"n\"\u003ebecome\u003c/span\u003e \u003cspan class=\"n\"\u003epart\u003c/span\u003e \u003cspan class=\"n\"\u003eof\u003c/span\u003e \u003cspan class=\"n\"\u003ethis\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003enew\u003c/span\u003e \u003cspan class=\"n\"\u003epipeline\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003etags\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003eOptional\u003c/span\u003e \u003cspan class=\"nb\"\u003eset\u003c/span\u003e \u003cspan class=\"n\"\u003eof\u003c/span\u003e \u003cspan class=\"n\"\u003etags\u003c/span\u003e \u003cspan class=\"n\"\u003eto\u003c/span\u003e \u003cspan class=\"n\"\u003ebe\u003c/span\u003e \u003cspan class=\"n\"\u003eapplied\u003c/span\u003e \u003cspan class=\"n\"\u003eto\u003c/span\u003e \u003cspan class=\"nb\"\u003eall\u003c/span\u003e \u003cspan class=\"n\"\u003ethe\u003c/span\u003e \u003cspan class=\"n\"\u003epipeline\u003c/span\u003e \u003cspan class=\"n\"\u003enodes\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eRaises\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"ne\"\u003eValueError\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003eWhen\u003c/span\u003e \u003cspan class=\"n\"\u003ean\u003c/span\u003e \u003cspan class=\"n\"\u003eempty\u003c/span\u003e \u003cspan class=\"nb\"\u003elist\u003c/span\u003e \u003cspan class=\"n\"\u003eof\u003c/span\u003e \u003cspan class=\"n\"\u003enodes\u003c/span\u003e \u003cspan class=\"ow\"\u003eis\u003c/span\u003e \u003cspan class=\"n\"\u003eprovided\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"ow\"\u003eor\u003c/span\u003e \u003cspan class=\"n\"\u003ewhen\u003c/span\u003e \u003cspan class=\"ow\"\u003enot\u003c/span\u003e \u003cspan class=\"nb\"\u003eall\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003enodes\u003c/span\u003e \u003cspan class=\"n\"\u003ehave\u003c/span\u003e \u003cspan class=\"n\"\u003eunique\u003c/span\u003e \u003cspan class=\"n\"\u003enames\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003eCircularDependencyError\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003eWhen\u003c/span\u003e \u003cspan class=\"n\"\u003evisiting\u003c/span\u003e \u003cspan class=\"nb\"\u003eall\u003c/span\u003e \u003cspan class=\"n\"\u003ethe\u003c/span\u003e \u003cspan class=\"n\"\u003enodes\u003c/span\u003e \u003cspan class=\"ow\"\u003eis\u003c/span\u003e \u003cspan class=\"ow\"\u003enot\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003epossible\u003c/span\u003e \u003cspan class=\"n\"\u003edue\u003c/span\u003e \u003cspan class=\"n\"\u003eto\u003c/span\u003e \u003cspan class=\"n\"\u003ethe\u003c/span\u003e \u003cspan class=\"n\"\u003eexistence\u003c/span\u003e \u003cspan class=\"n\"\u003eof\u003c/span\u003e \u003cspan class=\"n\"\u003ea\u003c/span\u003e \u003cspan class=\"n\"\u003ecircular\u003c/span\u003e \u003cspan class=\"n\"\u003edependency\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eNote\u003c/strong\u003e This does jump you into a pager, a j,k or up, down to navigate, q to quit.\u003c/p\u003e\n\u003ch2 id=\"sourcecode\"\u003e??sourcecode \u003ca href=\"#sourcecode\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eDocstring not enough for you use case.  I often run into cases where the\ndocstring is not clear enough and I need to see the implementation for myself\nto see what a function does.\u003c/p\u003e\n\u003ch2 id=\"run\"\u003e%run \u003ca href=\"#run\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI turned my nose up at this one, prior to seeing the famous \u003ca href=\"https://www.youtube.com/watch?v=7jiPeIFXb6U\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003eI don’t like\nnotebooks\u003c/a\u003e by\n\u003ca href=\"https://joelgrus.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/joelgrus.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/joelgrus.com.png\" class=\"has-avatar  has-avatar-before\"\u003eJoel Grus\u003c/a\u003e.  My first snobby reaction was that\ndeveloping modules and using autoreload was superior.  I have since realized\nthere is a place for \u003ccode\u003e%run\u003c/code\u003e, and it can cut down on some keystrokes to import,\nsetup, and run even when developing in modules.\u003c/p\u003e\n\u003ch2 id=\"debug\"\u003e%debug \u003ca href=\"#debug\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eipython comes with a post-mortem debugger, and it can be a lifesaver.  If we\nhave a long running function that runs into an error it can be a complete buzzkill.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003elong_func\u003c/span\u003e\u003cspan class=\"p\"\u003e():\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003etime\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003etime\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003esleep\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e12\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003en\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"mi\"\u003e12\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003edf\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epd\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eData\u003c/span\u003e\u003cspan class=\"p\"\u003e({\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;a\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"nb\"\u003erange\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003en\u003c/span\u003e\u003cspan class=\"p\"\u003e)})\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"n\"\u003edf\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003elong_func\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"reset\"\u003e%reset \u003ca href=\"#reset\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/reset-ipython/\" class=\"wikilink\" data-title=\"Reclaim memory usage in Jupyter\" data-description=\"Today I ran into an issue where we had a one-off script that just needed to work, but it was just chewing threw memory like nothing.\" data-date=\"2020-10-01\" data-preview=\"Today I ran into an issue where we had a one-off script that just needed to work, but it was just chewing threw memory like nothing.\"\u003eReclaim memory usage in Jupyter\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"autoreload\"\u003e%autoreload \u003ca href=\"#autoreload\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/autoreload-ipython/\" class=\"wikilink\" data-title=\"Autoreload in Ipython\" data-description=\"Autoreload in python\" data-date=\"2019-09-08\" data-preview=\"Autoreload in python\"\u003eAutoreload in Ipython\u003c/a\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ec\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eInteractiveShellApp\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eextensions\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;autoreload\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ec\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eInteractiveShellApp\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eexec_lines\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"si\"\u003e%a\u003c/span\u003e\u003cspan class=\"s2\"\u003eutoreload 2\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ec\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eInteractiveShellApp\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eexec_lines\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eappend\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s1\"\u003e\u0026#39;print(\u0026#34;Warning: disable autoreload in ipython_config.py to improve performance.\u0026#34;)\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003eplace this in your ~/.ipython/profile_default/ipython_config.py to auto reload without needing to run the magic every time\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"autoformat\"\u003eautoformat \u003ca href=\"#autoformat\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis is a relatively new feature to ipython.  I really enjoy it, as the time\nthat I need the most help autoformatting my code is riffing on an ad hoc\nanalysis at the command line.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ec\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eTerminalInteractiveShell\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eautoformatter\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;black\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003eplace this in your ~/.ipython/profile_default/ipython_config.py to autoformat with black by default\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"new-prompt\"\u003enew prompt \u003ca href=\"#new-prompt\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"reverse-history-search\"\u003ereverse history search \u003ca href=\"#reverse-history-search\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eControl R\u003c/em\u003e\u003c/p\u003e\n\u003ch2 id=\"want-automatic-imports\"\u003eWant automatic imports?? \u003ca href=\"#want-automatic-imports\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"/pyflyby/\" class=\"wikilink\" data-title=\"Smoother Python with automatic imports | pyflyby\" data-description=\"This is not a flaky works half the time kind of plugin, it\u0026#39;s a seriously smooth editing experience. I\u0026#39;ve just started using pyflyby, and it is solid so far....\" data-date=\"2021-12-20\" data-preview=\"This is not a flaky works half the time kind of plugin, it\u0026#39;s a seriously smooth editing experience. I\u0026#39;ve just started using pyflyby, and it is solid so far....\"\u003eSmoother Python with automatic imports | pyflyby\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eThis article covers how I setup automatic imports in ipython\u003c/p\u003e\n\u003c/blockquote\u003e\n",
      "content_text": "\n\n* ?docstring\n* ??sourcecode\n* %run\n* %debug\n* %autoreload\n* %history\n* autoformat\n* %reset\n* !shell commands\n\n## ?docstring\n\nStop going to google everytime your stuck and stay in your workflow.  The\nipython `?` is a superhero for productivity and staying on task.\n\n``` python\nfrom kedro.pipeline import Pipeline\nPipeline?\n\nInit signature:\nPipeline(\n    nodes: Iterable[Union[kedro.pipeline.node.Node, ForwardRef('Pipeline')]],\n    *,\n    tags: Union[str, Iterable[str]] = None,\n)\nDocstring:\nA ``Pipeline`` defined as a collection of ``Node`` objects. This class\ntreats nodes as part of a graph representation and provides inputs,\noutputs and execution order.\nInit docstring:\nInitialise ``Pipeline`` with a list of ``Node`` instances.\n\nArgs:\n    nodes: The iterable of nodes the ``Pipeline`` will be made of. If you\n        provide pipelines among the list of nodes, those pipelines will\n        be expanded and all their nodes will become part of this\n        new pipeline.\n    tags: Optional set of tags to be applied to all the pipeline nodes.\n\nRaises:\n    ValueError:\n        When an empty list of nodes is provided, or when not all\n        nodes have unique names.\n    CircularDependencyError:\n        When visiting all the nodes is not\n        possible due to the existence of a circular dependency.\n:\n```\n\n**Note** This does jump you into a pager, a j,k or up, down to navigate, q to quit.\n\n\n## ??sourcecode\n\nDocstring not enough for you use case.  I often run into cases where the\ndocstring is not clear enough and I need to see the implementation for myself\nto see what a function does.\n\n## %run\n\nI turned my nose up at this one, prior to seeing the famous [I don't like\nnotebooks](https://www.youtube.com/watch?v=7jiPeIFXb6U) by\n[Joel Grus](https://joelgrus.com/).  My first snobby reaction was that\ndeveloping modules and using autoreload was superior.  I have since realized\nthere is a place for `%run`, and it can cut down on some keystrokes to import,\nsetup, and run even when developing in modules.\n\n## %debug\n\nipython comes with a post-mortem debugger, and it can be a lifesaver.  If we\nhave a long running function that runs into an error it can be a complete buzzkill.\n\n``` python\ndef long_func():\n   import time\n   time.sleep(12)\n   n = 12\n   df = pd.Data({'a': range(n)})\n   return df\n\nlong_func()\n```\n\n## %reset\n\n\u003ca href=\"/reset-ipython/\" class=\"wikilink\" data-title=\"Reclaim memory usage in Jupyter\" data-description=\"Today I ran into an issue where we had a one-off script that just needed to work, but it was just chewing threw memory like nothing.\" data-date=\"2020-10-01\"\u003eReclaim memory usage in Jupyter\u003c/a\u003e\n\n## %autoreload\n\n\u003ca href=\"/autoreload-ipython/\" class=\"wikilink\" data-title=\"Autoreload in Ipython\" data-description=\"Autoreload in python\" data-date=\"2019-09-08\"\u003eAutoreload in Ipython\u003c/a\u003e\n\n``` python\nc.InteractiveShellApp.extensions = [\"autoreload\"]\nc.InteractiveShellApp.exec_lines = [\"%autoreload 2\"]\nc.InteractiveShellApp.exec_lines.append(\n    'print(\"Warning: disable autoreload in ipython_config.py to improve performance.\")'\n)\n```\n\n\u003e place this in your ~/.ipython/profile_default/ipython_config.py to auto reload without needing to run the magic every time\n\n## autoformat\n\nThis is a relatively new feature to ipython.  I really enjoy it, as the time\nthat I need the most help autoformatting my code is riffing on an ad hoc\nanalysis at the command line.\n\n``` python\nc.TerminalInteractiveShell.autoformatter = \"black\"\n```\n\n\u003e place this in your ~/.ipython/profile_default/ipython_config.py to autoformat with black by default\n\n## new prompt\n\n## reverse history search\n\n_Control R_\n\n## Want automatic imports??\n\n\u003ca href=\"/pyflyby/\" class=\"wikilink\" data-title=\"Smoother Python with automatic imports | pyflyby\" data-description=\"This is not a flaky works half the time kind of plugin, it\u0026#39;s a seriously smooth editing experience. I\u0026#39;ve just started using pyflyby, and it is solid so far....\" data-date=\"2021-12-20\"\u003eSmoother Python with automatic imports | pyflyby\u003c/a\u003e\n\n\u003e This article covers how I setup automatic imports in ipython\n",
      "summary": "??sourcecode * %debug * %history * %reset * !shell commands",
      "date_published": "2020-12-14T00:00:00Z",
      "date_modified": "2020-12-14T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "bash",
        "ipython"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/scripting-tmux-layouts/",
      "url": "https://go.waylonwalker.com/scripting-tmux-layouts/",
      "title": "Scripting Tmux Layouts",
      "content_html": "\u003cp\u003eThis is how I script a tmux layout\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e bash -c \u003cspan class=\"s2\"\u003e\u0026#34;tmux new-session -t \u0026#39;editor\u0026#39; -d;\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e    tmux split-window -v \u0026#39;zsh\u0026#39;;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e    tmux send-keys nvim Space /src/ Space +GFiles C-m; \\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e    tmux rotate-window; \\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e    tmux select-pane -U; \\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e    tmux -2 attach-session -d\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e    \u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n\nThis is how I script a tmux layout\n\n``` bash\n bash -c \"tmux new-session -t 'editor' -d;\\\n    tmux split-window -v 'zsh';\n    tmux send-keys nvim Space /src/ Space +GFiles C-m; \\\n    tmux rotate-window; \\\n    tmux select-pane -U; \\\n    tmux -2 attach-session -d\n    \"\n```\n",
      "summary": "This is how I script a tmux layout",
      "date_published": "2020-12-13T00:00:00Z",
      "date_modified": "2020-12-13T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "bash",
        "tmux"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/compare-directories-in-bash/",
      "url": "https://go.waylonwalker.com/compare-directories-in-bash/",
      "title": "Compare Directories In Bash",
      "content_html": "\u003cp\u003eToday I needed to check for articles that used the same slug from two directories, bash made it super simple.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ediff -rq src/pages/blog src/pages/notes\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nToday I needed to check for articles that used the same slug from two directories, bash made it super simple.\n\n``` bash\ndiff -rq src/pages/blog src/pages/notes\n```\n",
      "summary": "Today I needed to check for articles that used the same slug from two directories, bash made it super simple.",
      "date_published": "2020-12-11T00:00:00Z",
      "date_modified": "2020-12-11T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "bash",
        "tip"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/testing-data-pipelines/",
      "url": "https://go.waylonwalker.com/testing-data-pipelines/",
      "title": "Testing Data Pipelines",
      "content_html": "\u003ch1 id=\"lintformatdoc\"\u003eLint/Format/Doc\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eblack\u003c/li\u003e\n\u003cli\u003eflake8\u003c/li\u003e\n\u003cli\u003einterrogate\u003c/li\u003e\n\u003cli\u003emypy\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"pipeline-assertions\"\u003ePipeline Assertions\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003epipeline constructs\u003c/li\u003e\n\u003cli\u003epipeline as expected nodes\u003c/li\u003e\n\u003cli\u003epipeline has minimum nodes\u003c/li\u003e\n\u003cli\u003etest minimum tags\u003c/li\u003e\n\u003cli\u003etest alternate tags\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"catalog-assertions\"\u003eCatalog Assertions\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003etest catalog follows naming structure\u003c/li\u003e\n\u003cli\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"node-tests\"\u003eNode Tests\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003etest function does the correct operations on test data\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"great-expectations\"\u003eGreat Expectations\u003c/h1\u003e\n",
      "content_text": "\n# Lint/Format/Doc\n\n- black\n- flake8\n- interrogate\n- mypy\n\n# Pipeline Assertions\n\n- pipeline constructs\n- pipeline as expected nodes\n- pipeline has minimum nodes\n- test minimum tags\n- test alternate tags\n\n# Catalog Assertions\n\n- test catalog follows naming structure\n-\n\n# Node Tests\n\n- test function does the correct operations on test data\n\n# Great Expectations\n",
      "summary": "Thinking through testing best practices for Data Pipelines",
      "date_published": "2020-11-16T06:00:00Z",
      "date_modified": "2020-11-16T06:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "kedro",
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/kedro-factory/",
      "url": "https://go.waylonwalker.com/kedro-factory/",
      "title": "Kedro Factory",
      "content_html": "\u003cp\u003eDynamically generate kedro pipelines with yaml or script\u003c/p\u003e\n\u003cp\u003eInspiration\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ajbosco/dag-factory\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003edag-factory\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\nDynamically generate kedro pipelines with yaml or script\n\nInspiration\n\n- [dag-factory](https://github.com/ajbosco/dag-factory)\n",
      "summary": "Kedro Plugin Idea for creating Dags quickly",
      "date_published": "2020-11-16T06:00:00Z",
      "date_modified": "2020-11-16T06:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/rebrand/",
      "url": "https://go.waylonwalker.com/rebrand/",
      "title": "rebrand",
      "content_html": "\u003cul\u003e\n\u003cli\u003esimple landing page\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://swyx.io\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/swyx.io.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/swyx.io.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://swyx.io\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.joelonsoftware.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.joelonsoftware.com.jpg\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.joelonsoftware.com.jpg\" class=\"has-avatar  has-avatar-before\"\u003ejoel on software\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003erecent\u003c/li\u003e\n\u003cli\u003ereading lists\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eMore from waylon just above footer\n\u003cul\u003e\n\u003cli\u003e4x2 grid\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003elink strategy\n\u003cul\u003e\n\u003cli\u003elatest post\u003c/li\u003e\n\u003cli\u003enext/prev\u003c/li\u003e\n\u003cli\u003esimilar tags\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003esearch in nav\u003c/li\u003e\n\u003cli\u003etag stickers\u003c/li\u003e\n\u003cli\u003esimple cards?\u003c/li\u003e\n\u003cli\u003ebookmarks?\u003c/li\u003e\n\u003cli\u003enav style stinks\u003c/li\u003e\n\u003cli\u003esingle post template\u003c/li\u003e\n\u003cli\u003eflat routes no need to /blog /notes\u003c/li\u003e\n\u003cli\u003epost types\n\u003cul\u003e\n\u003cli\u003e🌳 full\u003c/li\u003e\n\u003cli\u003e🌱 budding\u003c/li\u003e\n\u003cli\u003e🖊 Note\u003c/li\u003e\n\u003cli\u003e💻 hot tip\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eusage of tags\u003c/li\u003e\n\u003cli\u003eMDX\n\u003cul\u003e\n\u003cli\u003estories\u003c/li\u003e\n\u003cli\u003eslides\u003c/li\u003e\n\u003cli\u003e⚠\u003c/li\u003e\n\u003cli\u003e❌\u003c/li\u003e\n\u003cli\u003e✔\u003c/li\u003e\n\u003cli\u003ekedro viz\u003c/li\u003e\n\u003cli\u003echarts\u003c/li\u003e\n\u003cli\u003einlink component\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://joshwcomeau.com/\" title=\"https://joshwcomeau.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/joshwcomeau.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/joshwcomeau.com.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://joshwcomeau.com/\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eauto-card oneline links\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emeta posts\n\u003cul\u003e\n\u003cli\u003eabout\u003c/li\u003e\n\u003cli\u003euses\u003c/li\u003e\n\u003cli\u003ehow site is built\u003c/li\u003e\n\u003cli\u003ehow to search\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003estories\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"todo\"\u003eTODO \u003ca href=\"#todo\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ereview package.json\u003c/li\u003e\n\u003cli\u003eupdate package.json\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"done\"\u003eDone \u003ca href=\"#done\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eahrefs\n\u003cul\u003e\n\u003cli\u003efix canonical urls\u003c/li\u003e\n\u003cli\u003efix broken inlinks\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003econvert to one post template\u003c/li\u003e\n\u003cli\u003e\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\n- simple landing page\n  - \u003chttps://swyx.io\u003e\n  - [joel on software](https://www.joelonsoftware.com/)\n    - recent\n    - reading lists\n- More from waylon just above footer\n  - 4x2 grid\n- link strategy\n  - latest post\n  - next/prev\n  - similar tags\n- search in nav\n- tag stickers\n- simple cards?\n- bookmarks?\n- nav style stinks\n- single post template\n- flat routes no need to /blog /notes\n- post types\n  - 🌳 full\n  - 🌱 budding\n  - 🖊 Note\n  - 💻 hot tip\n- usage of tags\n- MDX\n  - stories\n  - slides\n  - ⚠\n  - ❌\n  - ✔\n  - kedro viz\n  - charts\n  - inlink component\n  - [https://joshwcomeau.com/](https://joshwcomeau.com/ \"https://joshwcomeau.com/\")\n  - auto-card oneline links\n- meta posts\n  - about\n  - uses\n  - how site is built\n  - how to search\n- stories\n\n## TODO\n\n- review package.json\n- update package.json\n\n## Done\n\n- ahrefs\n  - fix canonical urls\n  - fix broken inlinks\n- convert to one post template\n-\n",
      "summary": "A few notes for my next refactoring of waylonwalker.com",
      "date_published": "2020-11-14T06:00:00Z",
      "date_modified": "2020-11-14T06:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/avoid-nesting-loops-in-python/",
      "url": "https://go.waylonwalker.com/avoid-nesting-loops-in-python/",
      "title": "Avoid Nesting Loops in Python",
      "content_html": "\u003cp\u003eNesting loops inside of each other in python makes for much harder code to understand, it takes more brain power to understand, and is thus more error prone than if its avoidable. One issue with this complexity is that toy examples may make sense, but most real example will grow and become more deeply nested over time. Avoiding this complexity from the start can help simplify the project in the future.\u003c/p\u003e\n\u003ch2 id=\"setup\"\u003esetup \u003ca href=\"#setup\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLets take a pretty simple example where we are using a ficticious library to get some sales data for our transportation company. The api allows us to fetch teh sales data for one class of vehicle and one region at a time.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003epandas\u003c/span\u003e \u003cspan class=\"k\"\u003eas\u003c/span\u003e \u003cspan class=\"nn\"\u003epd\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003edatastore\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eget_sales\u003c/span\u003e  \u003cspan class=\"c1\"\u003e# ficticious library\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ecars\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;sedan\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;coupe\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;hatchback\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eregions\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;US\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;CA\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;MX\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"-nesting-loops\"\u003e❌ Nesting Loops \u003ca href=\"#-nesting-loops\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWe have setup to fetch our data with two lists that represent the vehicles and regions that we want to analyze. We know that we need to make a call to \u003ccode\u003eget_sales\u003c/code\u003e for every vehicle and region so nesting loops is a very common first solution to jump to.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003esales\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epd\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eDataFrame\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003ecar\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003ecars\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003eregion\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003eregions\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"n\"\u003enew_sales\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eget_sales\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ecar\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eregion\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"n\"\u003esales\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epd\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003econcat\u003c/span\u003e\u003cspan class=\"p\"\u003e([\u003c/span\u003e\u003cspan class=\"n\"\u003esales\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003enew_sales\u003c/span\u003e\u003cspan class=\"p\"\u003e])\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"itertoolsproduct\"\u003eitertools.product \u003ca href=\"#itertoolsproduct\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003ePython provides us with the beautiful itertools module that allows us to prepare our inputs for this in a much more susynct manner. The product function of itertools will give us every combination of any number of iterables\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003eitertools\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003elist\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eitertools\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eproduct\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ecars\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eregions\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003enote that itertools returns a generator for most if not all functions, list() will turn that into a list that we can see. This works great for small datasets, but might not be advisable on larger ones.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e\u003cstrong\u003eoutput\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;sedan\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;US\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;sedan\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;CA\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;sedan\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;MX\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;coupe\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;US\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;coupe\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;CA\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;coupe\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;MX\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;hatchback\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;US\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;hatchback\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;CA\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;hatchback\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;MX\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"itertoolsprocuct-for-loop\"\u003eitertools.procuct for loop \u003ca href=\"#itertoolsprocuct-for-loop\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNow that we have every comination of our two sets of inputs in a single list, we can iterate over that list one time.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003esales\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epd\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eDataFrame\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003ecar\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eregion\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003eitertools\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eproduct\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ecars\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eregions\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003enew_sales\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eget_sales\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ecar\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eregion\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003esales\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epd\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003econcat\u003c/span\u003e\u003cspan class=\"p\"\u003e([\u003c/span\u003e\u003cspan class=\"n\"\u003esales\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003enew_sales\u003c/span\u003e\u003cspan class=\"p\"\u003e])\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"itertoolsproduct-list-comprehension\"\u003eitertools.product list comprehension \u003ca href=\"#itertoolsproduct-list-comprehension\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe above follows a python anti-pattern, initialize then edit. In some cases it might be a bit more readable to do it that way, you can be the judge, but in our simple case we can simply achieve the same results using a list comprehension.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epd\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003econcat\u003c/span\u003e\u003cspan class=\"p\"\u003e([\u003c/span\u003e\u003cspan class=\"n\"\u003eget_sales\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ecars\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eregion\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003ecars\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eregion\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003eitertools\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eproduct\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ecars\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eregions\u003c/span\u003e\u003cspan class=\"p\"\u003e)])\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"dictionaries\"\u003edictionaries \u003ca href=\"#dictionaries\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003esales_args\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"s1\"\u003e\u0026#39;cars\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;sedan\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;coupe\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;hatchback\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e],\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"s1\"\u003e\u0026#39;regions\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;US\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;CA\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;MX\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e],\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epd\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003econcat\u003c/span\u003e\u003cspan class=\"p\"\u003e([\u003c/span\u003e\u003cspan class=\"n\"\u003eget_sales\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"o\"\u003e*\u003c/span\u003e\u003cspan class=\"n\"\u003esales_arg\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003esales_arg\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003eitertools\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eproduct\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"o\"\u003e*\u003c/span\u003e\u003cspan class=\"n\"\u003esales_args\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003evalues\u003c/span\u003e\u003cspan class=\"p\"\u003e())])\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003esales_args\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"s1\"\u003e\u0026#39;cars\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;sedan\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;coupe\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;hatchback\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e],\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"s1\"\u003e\u0026#39;regions\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;US\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;CA\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;MX\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e],\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"s1\"\u003e\u0026#39;month\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;MAR\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;APR\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;MAY\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epd\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003econcat\u003c/span\u003e\u003cspan class=\"p\"\u003e([\u003c/span\u003e\u003cspan class=\"n\"\u003eget_sales\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"o\"\u003e*\u003c/span\u003e\u003cspan class=\"n\"\u003esales_arg\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003esales_arg\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003eproduct\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"o\"\u003e*\u003c/span\u003e\u003cspan class=\"n\"\u003esales_args\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003evalues\u003c/span\u003e\u003cspan class=\"p\"\u003e())])\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003chr/\u003e\n\u003ch2 id=\"chaining\"\u003eChaining \u003ca href=\"#chaining\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003econtainers of containers\u003c/em\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003evehicles\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e \u003cspan class=\"s1\"\u003e\u0026#39;cars\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;sedan\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;coupe\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;hatchback\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e],\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s1\"\u003e\u0026#39;trucks\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;light\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;heavy\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;sport\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;offroad\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e],\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s1\"\u003e\u0026#39;van\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;box\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;mini\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;full\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"p\"\u003e],\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre\u003e\u003ccode\u003efor vehicle in vehicles:\n for sub_class in vehicles[vehicle]:\n      new_sales = get_sales(sub_class)\n      new_sales[\u0026#39;sub_class\u0026#39;] = sub_class\n      new_sales[\u0026#39;vehicle\u0026#39;] = vehicle\n      sales = pd.concat([sales, new_sales])\n\u003c/code\u003e\u003c/pre\u003e\n\u003cpre\u003e\u003ccode\u003e list(itertools.chain(*[list(itertools.product([k], v)) for k, v in vehicles.items()]))\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eoutput\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e[(\u0026#39;cars\u0026#39;, \u0026#39;sedan\u0026#39;),\n (\u0026#39;cars\u0026#39;, \u0026#39;coupe\u0026#39;),\n (\u0026#39;cars\u0026#39;, \u0026#39;hatchback\u0026#39;),\n (\u0026#39;trucks\u0026#39;, \u0026#39;light\u0026#39;),\n (\u0026#39;trucks\u0026#39;, \u0026#39;heavy\u0026#39;),\n (\u0026#39;trucks\u0026#39;, \u0026#39;sport\u0026#39;),\n (\u0026#39;trucks\u0026#39;, \u0026#39;offroad\u0026#39;),\n (\u0026#39;van\u0026#39;, \u0026#39;box\u0026#39;),\n (\u0026#39;van\u0026#39;, \u0026#39;mini\u0026#39;),\n (\u0026#39;van\u0026#39;, \u0026#39;full\u0026#39;)]\n\u003c/code\u003e\u003c/pre\u003e\n",
      "content_text": "\nNesting loops inside of each other in python makes for much harder code to understand, it takes more brain power to understand, and is thus more error prone than if its avoidable. One issue with this complexity is that toy examples may make sense, but most real example will grow and become more deeply nested over time. Avoiding this complexity from the start can help simplify the project in the future.\n\n## setup\n\nLets take a pretty simple example where we are using a ficticious library to get some sales data for our transportation company. The api allows us to fetch teh sales data for one class of vehicle and one region at a time.\n\n```python\nimport pandas as pd\n\nfrom datastore import get_sales  # ficticious library\n\ncars = ['sedan', 'coupe', 'hatchback']\nregions = ['US', 'CA', 'MX']\n```\n\n## ❌ Nesting Loops\n\nWe have setup to fetch our data with two lists that represent the vehicles and regions that we want to analyze. We know that we need to make a call to `get_sales` for every vehicle and region so nesting loops is a very common first solution to jump to.\n\n```python\nsales = pd.DataFrame()\nfor car in cars:\n   for region in regions:\n      new_sales = get_sales(car, region)\n      sales = pd.concat([sales, new_sales])\n```\n\n## itertools.product\n\nPython provides us with the beautiful itertools module that allows us to prepare our inputs for this in a much more susynct manner. The product function of itertools will give us every combination of any number of iterables\n\n```python\nimport itertools\nlist(itertools.product(cars, regions))\n```\n\n\u003e note that itertools returns a generator for most if not all functions, list() will turn that into a list that we can see. This works great for small datasets, but might not be advisable on larger ones.\n\n**output**\n\n```python\n[('sedan', 'US'),\n ('sedan', 'CA'),\n ('sedan', 'MX'),\n ('coupe', 'US'),\n ('coupe', 'CA'),\n ('coupe', 'MX'),\n ('hatchback', 'US'),\n ('hatchback', 'CA'),\n ('hatchback', 'MX')]\n```\n\n## itertools.procuct for loop\n\nNow that we have every comination of our two sets of inputs in a single list, we can iterate over that list one time.\n\n```python\nsales = pd.DataFrame()\nfor car, region in itertools.product(cars, regions):\n   new_sales = get_sales(car, region)\n   sales = pd.concat([sales, new_sales])\n```\n\n## itertools.product list comprehension\n\nThe above follows a python anti-pattern, initialize then edit. In some cases it might be a bit more readable to do it that way, you can be the judge, but in our simple case we can simply achieve the same results using a list comprehension.\n\n```python\npd.concat([get_sales(cars, region) for cars, region in itertools.product(cars, regions)])\n```\n\n## dictionaries\n\n```python\nsales_args = {\n   'cars': ['sedan', 'coupe', 'hatchback'],\n   'regions': ['US', 'CA', 'MX'],\n}\n\npd.concat([get_sales(*sales_arg) for sales_arg in itertools.product(*sales_args.values())])\n```\n\n```python\nsales_args = {\n   'cars': ['sedan', 'coupe', 'hatchback'],\n   'regions': ['US', 'CA', 'MX'],\n   'month': ['MAR', 'APR', 'MAY']\n}\n\npd.concat([get_sales(*sales_arg) for sales_arg in product(*sales_args.values())])\n```\n\n---\n\n## Chaining\n\n_containers of containers_\n\n```python\nvehicles = {\n 'cars': ['sedan', 'coupe', 'hatchback'],\n    'trucks': ['light', 'heavy', 'sport', 'offroad'],\n    'van': ['box', 'mini', 'full', ],\n\n}\n```\n\n```\nfor vehicle in vehicles:\n for sub_class in vehicles[vehicle]:\n      new_sales = get_sales(sub_class)\n      new_sales['sub_class'] = sub_class\n      new_sales['vehicle'] = vehicle\n      sales = pd.concat([sales, new_sales])\n```\n\n```\n list(itertools.chain(*[list(itertools.product([k], v)) for k, v in vehicles.items()]))\n```\n\noutput\n\n```\n[('cars', 'sedan'),\n ('cars', 'coupe'),\n ('cars', 'hatchback'),\n ('trucks', 'light'),\n ('trucks', 'heavy'),\n ('trucks', 'sport'),\n ('trucks', 'offroad'),\n ('van', 'box'),\n ('van', 'mini'),\n ('van', 'full')]\n```\n",
      "summary": "Nesting loops inside of each other in python makes for much harder code to understand, it takes more brain power to understand, and is thus more error prone...",
      "date_published": "2020-10-11T05:00:00Z",
      "date_modified": "2020-10-11T05:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/last-n-git-files/",
      "url": "https://go.waylonwalker.com/last-n-git-files/",
      "title": "List the latest files to change in a git repo",
      "content_html": "\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003ewhile\u003c/span\u003e \u003cspan class=\"nb\"\u003eread\u003c/span\u003e file\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003edo\u003c/span\u003e \u003cspan class=\"nb\"\u003eecho\u003c/span\u003e \u003cspan class=\"k\"\u003e$(\u003c/span\u003egit log --pretty\u003cspan class=\"o\"\u003e=\u003c/span\u003eformat:%ad -n \u003cspan class=\"m\"\u003e1\u003c/span\u003e --date\u003cspan class=\"o\"\u003e=\u003c/span\u003eraw -- \u003cspan class=\"nv\"\u003e$file\u003c/span\u003e\u003cspan class=\"k\"\u003e)\u003c/span\u003e \u003cspan class=\"nv\"\u003e$file\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003edone\u003c/span\u003e \u0026lt; \u0026lt;\u003cspan class=\"o\"\u003e(\u003c/span\u003egit ls-tree -r --name-only HEAD \u003cspan class=\"p\"\u003e|\u003c/span\u003e grep static/stories\u003cspan class=\"o\"\u003e)\u003c/span\u003e \u003cspan class=\"p\"\u003e|\u003c/span\u003e sort -r \u003cspan class=\"p\"\u003e|\u003c/span\u003e head -n \u003cspan class=\"m\"\u003e3\u003c/span\u003e \u003cspan class=\"p\"\u003e|\u003c/span\u003e cut -d \u003cspan class=\"s2\"\u003e\u0026#34; \u0026#34;\u003c/span\u003e -f \u003cspan class=\"m\"\u003e3\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n```bash\nwhile read file; do echo $(git log --pretty=format:%ad -n 1 --date=raw -- $file) $file; done \u003c \u003c(git ls-tree -r --name-only HEAD | grep static/stories) | sort -r | head -n 3 | cut -d \" \" -f 3\n```\n",
      "date_published": "2020-10-08T05:00:00Z",
      "date_modified": "2020-10-08T05:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "git"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/kedro-basics/",
      "url": "https://go.waylonwalker.com/kedro-basics/",
      "title": "Kedro Basics",
      "content_html": "\u003cp\u003eLearn Kedro in 5 days\u003c/p\u003e\n\u003ch2 id=\"day-0-setup\"\u003eDay 0 Setup \u003ca href=\"#day-0-setup\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003evm\u003c/li\u003e\n\u003cli\u003einstall\u003c/li\u003e\n\u003cli\u003epython\u003c/li\u003e\n\u003cli\u003eeditor\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"day-1\"\u003eDay 1 \u003ca href=\"#day-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ekedro new\u003c/li\u003e\n\u003cli\u003ekedro viz\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"day-2\"\u003eDay 2 \u003ca href=\"#day-2\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ecatalog\u003c/li\u003e\n\u003cli\u003efilter catalog\u003c/li\u003e\n\u003cli\u003eload data\u003c/li\u003e\n\u003cli\u003efsspec\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"day-3\"\u003eDay 3 \u003ca href=\"#day-3\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epipeline\u003c/li\u003e\n\u003cli\u003enodes\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"day-4\"\u003eDay 4 \u003ca href=\"#day-4\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efilter pipeline\u003c/li\u003e\n\u003cli\u003erun partial pipeline\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"day-5\"\u003eDay 5 \u003ca href=\"#day-5\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ekedro docker\u003c/li\u003e\n\u003cli\u003eGitHub Actions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"advanced-kedro\"\u003eAdvanced Kedro \u003ca href=\"#advanced-kedro\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ehooks\u003c/li\u003e\n\u003cli\u003ecustom datasets\u003c/li\u003e\n\u003cli\u003emodular pipelines\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\nLearn Kedro in 5 days\n\n## Day 0 Setup\n\n- vm\n- install\n- python\n- editor\n\n## Day 1\n\n- kedro new\n- kedro viz\n\n## Day 2\n\n- catalog\n- filter catalog\n- load data\n- fsspec\n\n## Day 3\n\n- pipeline\n- nodes\n\n## Day 4\n\n- filter pipeline\n- run partial pipeline\n\n## Day 5\n\n- kedro docker\n- GitHub Actions\n\n## Advanced Kedro\n\n- hooks\n- custom datasets\n- modular pipelines\n",
      "summary": "In my upcoming free kedro course, you can learn how to start building pipelines in 5 days.",
      "date_published": "2020-08-08T05:00:00Z",
      "date_modified": "2020-08-08T05:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "kedro"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/025/",
      "url": "https://go.waylonwalker.com/025/",
      "title": "025.md",
      "content_html": "\u003ch1 id=\"convert-markdown-to---revealjs---slides\"\u003eConvert \u003cstrong\u003eMarkdown\u003c/strong\u003e to \u003cstrong\u003ereveal.js\u003c/strong\u003e slides\u003c/h1\u003e\n\u003cp\u003esetup\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ewget https://github.com/hakimel/reveal.js/archive/master.tar.gz\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003etar -xzvf master.tar.gz\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emv reveal.js-master reveal.js\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003econvert\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epandoc -t revealjs -s -o myslides.html myslides.md -V revealjs-url\u003cspan class=\"o\"\u003e=\u003c/span\u003ehttps://unpkg.com/reveal.js@3.9.2/\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "# Convert **Markdown** to __reveal.js__ slides\n\nsetup\n``` bash\nwget https://github.com/hakimel/reveal.js/archive/master.tar.gz\ntar -xzvf master.tar.gz\nmv reveal.js-master reveal.js\n```\n\nconvert\n``` bash\npandoc -t revealjs -s -o myslides.html myslides.md -V revealjs-url=https://unpkg.com/reveal.js@3.9.2/\n```",
      "summary": "setup",
      "date_published": "2020-07-29T02:16:24Z",
      "date_modified": "2020-07-29T02:16:24Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "cli",
        "bash"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/026/",
      "url": "https://go.waylonwalker.com/026/",
      "title": "026.md",
      "content_html": "\u003ch1 id=\"convert-markdown-to--revealjs--slides\"\u003eConvert \u003cstrong\u003eMarkdown\u003c/strong\u003e to \u003cem\u003ereveal.js\u003c/em\u003e slides\u003c/h1\u003e\n\u003cp\u003esetup\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ewget https://github.com/hakimel/reveal.js/archive/master.tar.gz\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003etar -xzvf master.tar.gz\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emv reveal.js-master reveal.js\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003econvert\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epandoc -t revealjs -s\u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"se\"\u003e\u003c/span\u003e   -o myslides.html myslides.md \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"se\"\u003e\u003c/span\u003e   -V revealjs-url\u003cspan class=\"o\"\u003e=\u003c/span\u003ehttps://unpkg.com/reveal.js@3.9.2/\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "# Convert **Markdown** to _reveal.js_ slides\n\nsetup\n``` bash\nwget https://github.com/hakimel/reveal.js/archive/master.tar.gz\ntar -xzvf master.tar.gz\nmv reveal.js-master reveal.js\n```\n\nconvert\n``` bash\npandoc -t revealjs -s\\\n   -o myslides.html myslides.md \\\n   -V revealjs-url=https://unpkg.com/reveal.js@3.9.2/\n```",
      "summary": "setup",
      "date_published": "2020-07-28T05:00:00Z",
      "date_modified": "2020-07-28T05:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "cli",
        "bash"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/upcoming-posts/",
      "url": "https://go.waylonwalker.com/upcoming-posts/",
      "title": "Upcoming Posts",
      "content_html": "\u003cp\u003eUpcoming posts to the blog. Have an idea edit\n\u003ca href=\"https://github.com/WaylonWalker/waylonwalker.com/edit/main/pages/notes/upcoming-posts.md\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ethis post\u003c/a\u003e\n, submit a PR and we will talk.\u003c/p\u003e\n\u003ch2 id=\"heading\"\u003e🧠 \u003ca href=\"#heading\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eKedro run changed\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eHow I manage Environments\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMy Data Workflow.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDaily Schedule\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edesk\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ekeeb\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMaterial Shell\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhy blog\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003esearch with fuse.js\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTesting a blog with ahrefs\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ematrix testing in github actions\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThink like a Senior Dev\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"editor\"\u003eEditor \u003ca href=\"#editor\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003etmux\u003c/li\u003e\n\u003cli\u003evim\u003c/li\u003e\n\u003cli\u003eshortcuts\u003c/li\u003e\n\u003cli\u003egitui\u003c/li\u003e\n\u003cli\u003efzf\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.youtube.com/watch?v=tB-AgxzBmH8\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003edevinsideyou\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"core\"\u003eCore \u003ca href=\"#core\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003egracefully adopt kedro\n\u003cul\u003e\n\u003cli\u003ecatalog - in progress\u003c/li\u003e\n\u003cli\u003epipeline\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ekedro\n\u003cul\u003e\n\u003cli\u003eSilent Logger\u003c/li\u003e\n\u003cli\u003eTemplated config loader\u003c/li\u003e\n\u003cli\u003eparams/env\u003c/li\u003e\n\u003cli\u003e10 reasons you shouldnt use kedro\u003c/li\u003e\n\u003cli\u003e10 reasons to use\u003c/li\u003e\n\u003cli\u003efilter viz\u003c/li\u003e\n\u003cli\u003eSteel-toes env\u003c/li\u003e\n\u003cli\u003eWhy framework\u003c/li\u003e\n\u003cli\u003eHow I write pipelines\u003c/li\u003e\n\u003cli\u003ewhen I write pipelines\u003c/li\u003e\n\u003cli\u003epipeline node templates\u003c/li\u003e\n\u003cli\u003eConvert a notebooks to pipelines\u003c/li\u003e\n\u003cli\u003eTesting Pipelines\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eprofessional python\n\u003cul\u003e\n\u003cli\u003ecookiecutter\u003c/li\u003e\n\u003cli\u003eflake8\u003c/li\u003e\n\u003cli\u003eblack\u003c/li\u003e\n\u003cli\u003emypy\u003c/li\u003e\n\u003cli\u003epre-commit\u003c/li\u003e\n\u003cli\u003eclick\u003c/li\u003e\n\u003cli\u003epytest\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eparametrize\u003c/li\u003e\n\u003cli\u003eenvironment variables\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eMy top pandas methods\u003c/li\u003e\n\u003cli\u003eActions\n\u003cul\u003e\n\u003cli\u003eHow I cut my gatsby deployment in half\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eVSCODE update\n\u003cul\u003e\n\u003cli\u003eplugins I use\u003c/li\u003e\n\u003cli\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003euses\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"python\"\u003epython \u003ca href=\"#python\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://stackoverflow.com/questions/419163/what-does-if-name-main-do\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/stackoverflow.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/stackoverflow.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eWhat does if \u003cstrong\u003ename\u003c/strong\u003e == “\u003cstrong\u003emain\u003c/strong\u003e”: do?\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://stackoverflow.com/questions/394809/does-python-have-a-ternary-conditional-operator\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/stackoverflow.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/stackoverflow.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eternary operators\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://stackoverflow.com/questions/82831/how-do-i-check-whether-a-file-exists-without-exceptions\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/stackoverflow.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/stackoverflow.com.ico\" class=\"has-avatar  has-avatar-before\"\u003echeck if file exists\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://stackoverflow.com/questions/89228/calling-an-external-command-from-python\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/stackoverflow.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/stackoverflow.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ecalling external commands\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://stackoverflow.com/questions/38987/how-do-i-merge-two-dictionaries-in-a-single-expression-taking-union-of-dictiona\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/stackoverflow.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/stackoverflow.com.ico\" class=\"has-avatar  has-avatar-before\"\u003emerging dictionaries\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ezip\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"learning\"\u003elearning \u003ca href=\"#learning\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003emdx\u003c/li\u003e\n\u003cli\u003etouch typing\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"newsletter\"\u003eNewsletter \u003ca href=\"#newsletter\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDon’t jump too early\u003c/li\u003e\n\u003cli\u003ekeep a pulse on new things\u003c/li\u003e\n\u003cli\u003ebe nice\u003c/li\u003e\n\u003cli\u003etake breaks\u003c/li\u003e\n\u003cli\u003epush at the right time\u003c/li\u003e\n\u003cli\u003epractice\u003c/li\u003e\n\u003cli\u003eoptimize the hard things\u003c/li\u003e\n\u003cli\u003efailure\u003c/li\u003e\n\u003cli\u003edont listen to the haters\u003c/li\u003e\n\u003cli\u003eJust start (make 20 minutes)\u003c/li\u003e\n\u003cli\u003eMistakes Happen\u003c/li\u003e\n\u003cli\u003eAccountability\u003c/li\u003e\n\u003cli\u003eGiving without Expectations\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\nUpcoming posts to the blog. Have an idea edit\n[this post](https://github.com/WaylonWalker/waylonwalker.com/edit/main/pages/notes/upcoming-posts.md)\n, submit a PR and we will talk.\n\n## 🧠\n\n- Kedro run changed\n- How I manage Environments\n- My Data Workflow.\n- Daily Schedule\n- desk\n- keeb\n- Material Shell\n- Why blog\n- search with fuse.js\n- Testing a blog with ahrefs\n- matrix testing in github actions\n\n- Think like a Senior Dev\n-\n\n## Editor\n\n- tmux\n- vim\n- shortcuts\n- gitui\n- fzf\n  - [devinsideyou](https://www.youtube.com/watch?v=tB-AgxzBmH8)\n\n## Core\n\n- gracefully adopt kedro\n  - catalog - in progress\n  - pipeline\n- kedro\n  - Silent Logger\n  - Templated config loader\n  - params/env\n  - 10 reasons you shouldnt use kedro\n  - 10 reasons to use\n  - filter viz\n  - Steel-toes env\n  - Why framework\n  - How I write pipelines\n  - when I write pipelines\n  - pipeline node templates\n  - Convert a notebooks to pipelines\n  - Testing Pipelines\n- professional python\n  - cookiecutter\n  - flake8\n  - black\n  - mypy\n  - pre-commit\n  - click\n  - pytest\n    - git\n    - parametrize\n    - environment variables\n- My top pandas methods\n- Actions\n  - How I cut my gatsby deployment in half\n- VSCODE update\n  - plugins I use\n  -\n- uses\n\n## python\n\n- [What does if **name** == “**main**”: do?](https://stackoverflow.com/questions/419163/what-does-if-name-main-do)\n- [ternary operators](https://stackoverflow.com/questions/394809/does-python-have-a-ternary-conditional-operator)\n- [check if file exists](https://stackoverflow.com/questions/82831/how-do-i-check-whether-a-file-exists-without-exceptions)\n- [calling external commands](https://stackoverflow.com/questions/89228/calling-an-external-command-from-python)\n- [merging dictionaries](https://stackoverflow.com/questions/38987/how-do-i-merge-two-dictionaries-in-a-single-expression-taking-union-of-dictiona)\n- zip\n\n## learning\n\n- mdx\n- touch typing\n\n## Newsletter\n\n- Don't jump too early\n- keep a pulse on new things\n- be nice\n- take breaks\n- push at the right time\n- practice\n- optimize the hard things\n- failure\n- dont listen to the haters\n- Just start (make 20 minutes)\n- Mistakes Happen\n- Accountability\n- Giving without Expectations\n",
      "summary": "Upcoming posts to the blog. Have an idea edit this post , submit a PR and we will talk.",
      "date_published": "2020-06-27T05:00:00Z",
      "date_modified": "2020-06-27T05:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/024/",
      "url": "https://go.waylonwalker.com/024/",
      "title": "inline YAML or path to separate file (e.g.: .github/filters.yaml)",
      "content_html": "\u003cp\u003eConditionally run GitHub Actions Steps\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e- \u003cspan class=\"nt\"\u003euses\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003edorny/paths-filter@v2.2.0\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003eid\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003efilter\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003ewith\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"c\"\u003e# inline YAML or path to separate file (e.g.: .github/filters.yaml)\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003efilters\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"p\"\u003e|\u003c/span\u003e\u003cspan class=\"sd\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sd\"\u003e      backend:\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sd\"\u003e          - \u0026#39;backend/**/*\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sd\"\u003e      frontend:\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sd\"\u003e          - \u0026#39;frontend/**/*\u0026#39;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"c\"\u003e# run only if \u0026#39;backend\u0026#39; files were changed\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e- \u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ebackend unit tests\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003eif\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003esteps.filter.outputs.backend == \u0026#39;true\u0026#39;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003erun\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003e...\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n\nConditionally run GitHub Actions Steps\n\n``` yaml\n- uses: dorny/paths-filter@v2.2.0\n  id: filter\n  with:\n      # inline YAML or path to separate file (e.g.: .github/filters.yaml)\n      filters: |\n      backend:\n          - 'backend/**/*'\n      frontend:\n          - 'frontend/**/*'\n\n# run only if 'backend' files were changed\n- name: backend unit tests\n  if: steps.filter.outputs.backend == 'true'\n  run: ...\n```\n",
      "summary": "Conditionally run GitHub Actions Steps",
      "date_published": "2020-06-21T02:16:24Z",
      "date_modified": "2020-06-21T02:16:24Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "bash"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/023/",
      "url": "https://go.waylonwalker.com/023/",
      "title": "023",
      "content_html": "\u003cp\u003eFind and replace Groups in VSCode\n$1 referrs to the second group\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e(filepath: top)(.*)\nfilepath: s3://bucket/top$1.parquet\n\u003c/code\u003e\u003c/pre\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e- filepath: top/raw/scooters\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e\u003c/span\u003e\u003cspan class=\"gi\"\u003e+ filepath: s3://bucket/top/raw/scooters.parquet\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nFind and replace Groups in VSCode\n$1 referrs to the second group\n\n```\n(filepath: top)(.*)\nfilepath: s3://bucket/top$1.parquet\n```\n\n``` diff\n- filepath: top/raw/scooters\n+ filepath: s3://bucket/top/raw/scooters.parquet\n```\n",
      "summary": "Find and replace Groups in VSCode $1 referrs to the second group",
      "date_published": "2020-06-21T02:16:24Z",
      "date_modified": "2020-06-21T02:16:24Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "bash"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/022/",
      "url": "https://go.waylonwalker.com/022/",
      "title": "022",
      "content_html": "\u003ch2 id=\"file-system-full-\"\u003eFile System Full 🤔 \u003ca href=\"#file-system-full-\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eMove files then symlink them\u003c/em\u003e\u003c/p\u003e\n\u003ch2 id=\"with-bash\"\u003ewith \u003cstrong\u003eBash\u003c/strong\u003e \u003ca href=\"#with-bash\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emkdir /mnt/mounted_drive\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emv ~/bigdir /mnt/mounted_drive\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eln -s /mnt/mounted_drive/bigdir ~/bigdir\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n## File System Full 🤔\n\n_Move files then symlink them_\n\n## with **Bash**\n\n``` bash\nmkdir /mnt/mounted_drive\nmv ~/bigdir /mnt/mounted_drive\nln -s /mnt/mounted_drive/bigdir ~/bigdir\n```\n",
      "summary": "_",
      "date_published": "2020-06-21T02:16:24Z",
      "date_modified": "2020-06-21T02:16:24Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "bash"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/021/",
      "url": "https://go.waylonwalker.com/021/",
      "title": "021",
      "content_html": "\u003ch2 id=\"file-system-full-\"\u003eFile System Full 🤔 \u003ca href=\"#file-system-full-\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eshow largest files in current directory\u003c/em\u003e\u003c/p\u003e\n\u003ch2 id=\"with-bash\"\u003ewith \u003cstrong\u003eBash\u003c/strong\u003e \u003ca href=\"#with-bash\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edu . -h --max-depth\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"m\"\u003e1\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n## File System Full 🤔\n\n_show largest files in current directory_\n\n## with **Bash**\n\n```bash\ndu . -h --max-depth=1\n```\n",
      "summary": "_",
      "date_published": "2020-06-21T02:16:24Z",
      "date_modified": "2020-06-21T02:16:24Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "bash"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/020/",
      "url": "https://go.waylonwalker.com/020/",
      "title": "020",
      "content_html": "\u003ch2 id=\"file-system-full-\"\u003eFile System Full 🤔 \u003ca href=\"#file-system-full-\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eShow Remaining Space on Drives\u003c/em\u003e\u003c/p\u003e\n\u003ch2 id=\"with-bash\"\u003ewith \u003cstrong\u003eBash\u003c/strong\u003e \u003ca href=\"#with-bash\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edf -h\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n## File System Full 🤔\n\n_Show Remaining Space on Drives_\n\n## with **Bash**\n\n```bash\ndf -h\n```\n",
      "summary": "_",
      "date_published": "2020-06-21T02:16:24Z",
      "date_modified": "2020-06-21T02:16:24Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "bash"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/019/",
      "url": "https://go.waylonwalker.com/019/",
      "title": "019",
      "content_html": "\u003ch2 id=\"batch-rename-files\"\u003ebatch rename files \u003ca href=\"#batch-rename-files\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"with-bash\"\u003ewith \u003cstrong\u003ebash\u003c/strong\u003e \u003ca href=\"#with-bash\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003efor\u003c/span\u003e f in *.jpeg\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003edo\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    mv -- \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"nv\"\u003e$f\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"nv\"\u003ef\u003c/span\u003e\u003cspan class=\"p\"\u003e%.jpeg\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e.jpg\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edone\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n## batch rename files\n## with **bash**\n\n``` bash\nfor f in *.jpeg; do\n    mv -- \"$f\" \"${f%.jpeg}.jpg\"\ndone\n```\n",
      "date_published": "2020-06-21T02:16:24Z",
      "date_modified": "2020-06-21T02:16:24Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "bash"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/017/",
      "url": "https://go.waylonwalker.com/017/",
      "title": "017",
      "content_html": "\u003ch2 id=\"sending-args\"\u003eSending \u003ccode\u003e*args\u003c/code\u003e \u003ca href=\"#sending-args\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003efunc\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eone\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003etwo\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;two is \u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003etwo\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u0026gt;\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003efunc\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"o\"\u003e*\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;a\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;b\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e])\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003etwo\u003c/span\u003e \u003cspan class=\"ow\"\u003eis\u003c/span\u003e \u003cspan class=\"n\"\u003eb\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eorder matters\u003c/strong\u003e\u003c/p\u003e\n",
      "content_text": "\n## Sending `*args`\n\n``` python\ndef func(one, two):\n    print(f'two is {two}')\n\n\n\u003e\u003e\u003e func(*['a', 'b'])\ntwo is b\n```\n\n**order matters**\n",
      "summary": "**",
      "date_published": "2020-06-14T02:18:24Z",
      "date_modified": "2020-06-14T02:18:24Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/018/",
      "url": "https://go.waylonwalker.com/018/",
      "title": "018",
      "content_html": "\u003ch2 id=\"sending-kwargs\"\u003eSending \u003ccode\u003e**kwargs\u003c/code\u003e \u003ca href=\"#sending-kwargs\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003efunc\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"o\"\u003e**\u003c/span\u003e\u003cspan class=\"n\"\u003ekwargs\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ekwargs\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"c1\"\u003e# kwargs are a dictionary!\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u0026gt;\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003efunc\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"o\"\u003e**\u003c/span\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;one\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;a\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;two\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;b\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;one\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;a\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;two\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;b\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n## Sending `**kwargs`\n\n``` python\ndef func(**kwargs):\n    print(kwargs) # kwargs are a dictionary!\n\n\u003e\u003e\u003e func(**{'one':'a', 'two':'b')\n{'one': 'a', 'two': 'b'}\n```\n",
      "date_published": "2020-06-14T02:16:24Z",
      "date_modified": "2020-06-14T02:16:24Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/016/",
      "url": "https://go.waylonwalker.com/016/",
      "title": "016",
      "content_html": "\u003ch2 id=\"recieving-kwargs\"\u003eRecieving \u003ccode\u003e**kwargs\u003c/code\u003e \u003ca href=\"#recieving-kwargs\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003efunnc\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"o\"\u003e**\u003c/span\u003e\u003cspan class=\"n\"\u003ekwargs\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ekwargs\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"c1\"\u003e# kwargs are a dictionary!\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u0026gt;\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003efunc\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eone\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;a\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003etwo\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;b\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;one\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;a\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;two\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;b\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n## Recieving `**kwargs`\n\n``` python\ndef funnc(**kwargs):\n    print(kwargs) # kwargs are a dictionary!\n\n\u003e\u003e\u003e func(one='a', two='b')\n{'one': 'a', 'two': 'b'}\n```\n",
      "date_published": "2020-06-14T02:16:24Z",
      "date_modified": "2020-06-14T02:16:24Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/015/",
      "url": "https://go.waylonwalker.com/015/",
      "title": "015",
      "content_html": "\u003ch2 id=\"recieving-args\"\u003eRecieving \u003ccode\u003e*args\u003c/code\u003e \u003ca href=\"#recieving-args\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003efunnc\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"o\"\u003e*\u003c/span\u003e\u003cspan class=\"n\"\u003eargs\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eargs\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"c1\"\u003e# args are a list!\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u0026gt;\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003efunc\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;a\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;b\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;c\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;a\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;b\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;c\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eorder matters\u003c/strong\u003e\u003c/p\u003e\n",
      "content_text": "\n## Recieving `*args`\n\n``` python\ndef funnc(*args):\n    print(args) # args are a list!\n\n\u003e\u003e\u003e func('a', 'b', 'c')\n['a', 'b', 'c']\n```\n\n**order matters**\n",
      "summary": "**",
      "date_published": "2020-06-14T02:12:24Z",
      "date_modified": "2020-06-14T02:12:24Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/014/",
      "url": "https://go.waylonwalker.com/014/",
      "title": "Rename your Master Branch",
      "content_html": "\u003ch1 id=\"rename-your-master-branch\"\u003eRename your Master Branch\u003c/h1\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit branch -m master main\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit push -u origin main\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n# Rename your Master Branch\n\n``` bash\ngit branch -m master main\ngit push -u origin main\n```\n",
      "date_published": "2020-06-12T02:12:24Z",
      "date_modified": "2020-06-12T02:12:24Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "git"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/aug2020/",
      "url": "https://go.waylonwalker.com/aug2020/",
      "title": "Newsletter 3",
      "content_html": "\u003cp\u003eIt’s been quite a busy Month and a half since my last official newsletter With about 14 individual posts going live since then. I pushed hard over the past two weeks and just made a lot of content about things that I actually do. Many of these were things that I know quite well and were quite quick to write. I really enjoyed putting them out there and seeing all of the comments and feedback roll in.\u003c/p\u003e\n\u003ch2 id=\"highlights\"\u003eHighlights \u003ca href=\"#highlights\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch3 id=\"integration-testing-with-python-testprojectio-and-github-actionshttpswaylonwalkercomtestproject-io-py-actions\"\u003e\u003ca href=\"https://waylonwalker.com/testproject-io-py-actions/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eIntegration testing with Python, TestProject.io, and GitHub Actions\u003c/a\u003e \u003ca href=\"#integration-testing-with-python-testprojectio-and-github-actionshttpswaylonwalkercomtestproject-io-py-actions\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eI learned the most from this post. It’s been awhile since I had done any testing with selenium and I wanted to brush up on those skills for some upcoming work. I chose to test my own website, run it on github actions and use TestProject for reporting.\u003c/p\u003e\n\u003ch3 id=\"creating-reusable-bash-scriptshttpswaylonwalkercomreusable-bash\"\u003e\u003ca href=\"https://waylonwalker.com/reusable-bash/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eCreating Reusable Bash Scripts\u003c/a\u003e \u003ca href=\"#creating-reusable-bash-scriptshttpswaylonwalkercomreusable-bash\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eI’ve been writing a ton of bash scripts lately. In this article I write down a few of the things that I have recently learned to make my scripts just a bit better.\u003c/p\u003e\n\u003ch3 id=\"-whats-on-your-github-profilehttpsdevtowaylonwalkerwhat-s-on-your-github-profile-40p3\"\u003e\u003ca href=\"https://dev.to/waylonwalker/what-s-on-your-github-profile-40p3\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/dev.to.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/dev.to.ico\" class=\"has-avatar  has-avatar-before\"\u003e🤓 What’s on your GitHub Profile\u003c/a\u003e \u003ca href=\"#-whats-on-your-github-profilehttpsdevtowaylonwalkerwhat-s-on-your-github-profile-40p3\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eGitHub profiles were released recently and I asked on DEV.to “Whats on your GitHub Profile”. This was a discussion that turned out some incredible response. There are so many great profiles posted in the discussion section. Check them out for inspiration on yours.\u003c/p\u003e\n\u003ch3 id=\"-how-to-crush-amazing-posts-on-devhttpsdevtowaylonwalkerhow-to-crush-amazing-posts-on-dev-4cgh\"\u003e\u003ca href=\"https://dev.to/waylonwalker/how-to-crush-amazing-posts-on-dev-4cgh\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/dev.to.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/dev.to.ico\" class=\"has-avatar  has-avatar-before\"\u003e🔥 How to crush amazing posts on DEV\u003c/a\u003e \u003ca href=\"#-how-to-crush-amazing-posts-on-devhttpsdevtowaylonwalkerhow-to-crush-amazing-posts-on-dev-4cgh\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eThis post was super fun to write. It’s specifically for writing DEV.to posts, but is generally useful to any medium length content that sits between a tweet and a book. I definitly learned a few things during research and in the discussion. I have picked up a few tricks that make my posts a bit easier to scan and get a bit better engagement than having a wall of text.\u003c/p\u003e\n\u003ch2 id=\"recent-posts\"\u003eRecent Posts \u003ca href=\"#recent-posts\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/reusable-bash/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eCreating Reusable Bash Scripts\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eBash is a language that is quite useful for automation no matter what language you write in. Bash can do so many powerful system-level tasks. Even if you are on windows these days you are likely to come across bash inside a cloud VM, Continuous Integration, or even inside of docker.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/3-things-to-automate-with-python/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eThree things to Automate with Python using Pandas\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eHere are three things that I see my non programming counterparts doing every single day. These really sum up so much of what folks do within an office.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/install-miniconda/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eInstalling miniconda on linux (from the command line)\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eInstalling miniconda from only the command line can be a bit of an intimidating task your first time. Lets walk through how to do it.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/git-auto-commit-action-review/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eReview of the git-auto-commit-action\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eIt’s a really cool GitHub action that will automatically commit files changed during the action. I was using this to render a new readme based on a template.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/pariss-athena-on-black-tech-pipeline/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eBlack Tech Pipeline\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eI was particularly inspired by @chantastic episode 103 of the react podcast with @ParissAthena. They spoke about the black tech pipeline as well as Diversity, Equity, and Inclusion. Pariss is quite an inspiration. She has done so much work to create a better place for POC in tech. I like that not only is she helping them get jobs but acting as a mentor for their first few months on the job to make sure that they are able to find their place and fit in.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/whats-new-in-kedro-0164/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eWhat’s New in Kedro 0.16.4\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eIf we take a look at the release notes I see one \u003cstrong\u003emajor\u003c/strong\u003e feature improvement on the list, auto-discovery of hooks.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/testproject-io-py-actions/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eIntegration testing with Python, TestProject.io, and GitHub Actions\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eAs I continue to build out \u003ca href=\"https://waylonwalker.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://waylonwalker.com/\u003c/a\u003e I sometimes run into some errors that are not caught becuase I do not have good testing implemented. I want to explore some integration testing options using GitHub actions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/crush-dev-to-posts/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003e🔥 How to crush amazing posts on DEV\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eHere are a few of my top tips to help make dev.to posts more readable, and drive better engagement.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/practice-python-online/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003e🐍 Practice Python Online\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eWhen learning a new skill it’s important to practice along the way. In order for me to show up to practice I need to make it easy to show up. An easy way to show up to practice with python is to use an online repl. With these you can try out something quick. Sometimes I see snippets from blogs or tweets and I need to try the out for myself to really understand.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/edit-on-github/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eEdit On GitHub\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eI recently added a button to my blog, and subsequently my posts on \u003ca href=\"https://dev.to/waylonwalker\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/dev.to.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/dev.to.ico\" class=\"has-avatar  has-avatar-before\"\u003eDEV.to\u003c/a\u003e. It’s the best thing that I have done for it in a while.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/why-use-cms/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eWhy use a cms\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eWhen first learning to code its very common to hard code everything right into the code. This happens with most folks in just about any language. Whether its \u003ca href=\"/html/\" class=\"glossary-term\" title=\"HTML (HyperText Markup Language) is the standard markup language used to create and design documents on the World Wide Web. It structures web content by...\"\u003ehtml\u003c/a\u003e or markdown for front end content, or even hardcoding parameters in our backend languages like python, or node.js.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/parsing-rss-python/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003e🐍 Parsing RSS feeds with Python\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eI am looking into a way to replace my google reader experience that I had back in 2013 before google took it from us. I am starting by learning how to parse feeds with python, and without much previous knowledge it proved to be much easier than anticipated thanks to the \u003ccode\u003efeedparser\u003c/code\u003e library.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/explain-twitter-cards/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003e🙋‍♂️ Can Anyone Explain Twitter Cards to me?\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eCan someone explain how or why twitter cards render differently from device to device? I do understand that twitter cards a built from meta tags, the full list can be found in their\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://dev.to/waylonwalker/what-s-on-your-github-profile-40p3\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/dev.to.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/dev.to.ico\" class=\"has-avatar  has-avatar-before\"\u003e🤓 What’s on your GitHub Profile\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComment on the DEV.to thread to show off what is on your GitHub profile.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\nIt's been quite a busy Month and a half since my last official newsletter With about 14 individual posts going live since then. I pushed hard over the past two weeks and just made a lot of content about things that I actually do. Many of these were things that I know quite well and were quite quick to write. I really enjoyed putting them out there and seeing all of the comments and feedback roll in.\n\n## Highlights\n\n### [Integration testing with Python, TestProject.io, and GitHub Actions](https://waylonwalker.com/testproject-io-py-actions/)\n\nI learned the most from this post. It's been awhile since I had done any testing with selenium and I wanted to brush up on those skills for some upcoming work. I chose to test my own website, run it on github actions and use TestProject for reporting.\n\n### [Creating Reusable Bash Scripts](https://waylonwalker.com/reusable-bash/)\n\nI've been writing a ton of bash scripts lately. In this article I write down a few of the things that I have recently learned to make my scripts just a bit better.\n\n### [🤓 What's on your GitHub Profile](https://dev.to/waylonwalker/what-s-on-your-github-profile-40p3)\n\nGitHub profiles were released recently and I asked on DEV.to \"Whats on your GitHub Profile\". This was a discussion that turned out some incredible response. There are so many great profiles posted in the discussion section. Check them out for inspiration on yours.\n\n### [🔥 How to crush amazing posts on DEV](https://dev.to/waylonwalker/how-to-crush-amazing-posts-on-dev-4cgh)\n\nThis post was super fun to write. It's specifically for writing DEV.to posts, but is generally useful to any medium length content that sits between a tweet and a book. I definitly learned a few things during research and in the discussion. I have picked up a few tricks that make my posts a bit easier to scan and get a bit better engagement than having a wall of text.\n\n## Recent Posts\n\n- [Creating Reusable Bash Scripts](https://waylonwalker.com/reusable-bash/)\n\n  Bash is a language that is quite useful for automation no matter what language you write in. Bash can do so many powerful system-level tasks. Even if you are on windows these days you are likely to come across bash inside a cloud VM, Continuous Integration, or even inside of docker.\n\n- [Three things to Automate with Python using Pandas](https://waylonwalker.com/3-things-to-automate-with-python/)\n\n  Here are three things that I see my non programming counterparts doing every single day. These really sum up so much of what folks do within an office.\n\n- [Installing miniconda on linux (from the command line)](https://waylonwalker.com/install-miniconda/)\n\n  Installing miniconda from only the command line can be a bit of an intimidating task your first time. Lets walk through how to do it.\n\n- [Review of the git-auto-commit-action](https://waylonwalker.com/git-auto-commit-action-review/)\n\n  It's a really cool GitHub action that will automatically commit files changed during the action. I was using this to render a new readme based on a template.\n\n- [Black Tech Pipeline](https://waylonwalker.com/pariss-athena-on-black-tech-pipeline/)\n\n  I was particularly inspired by @chantastic episode 103 of the react podcast with @ParissAthena. They spoke about the black tech pipeline as well as Diversity, Equity, and Inclusion. Pariss is quite an inspiration. She has done so much work to create a better place for POC in tech. I like that not only is she helping them get jobs but acting as a mentor for their first few months on the job to make sure that they are able to find their place and fit in.\n\n- [What's New in Kedro 0.16.4](https://waylonwalker.com/whats-new-in-kedro-0164/)\n\n  If we take a look at the release notes I see one **major** feature improvement on the list, auto-discovery of hooks.\n\n- [Integration testing with Python, TestProject.io, and GitHub Actions](https://waylonwalker.com/testproject-io-py-actions/)\n\n  As I continue to build out \u003chttps://waylonwalker.com/\u003e I sometimes run into some errors that are not caught becuase I do not have good testing implemented. I want to explore some integration testing options using GitHub actions.\n\n- [🔥 How to crush amazing posts on DEV](https://waylonwalker.com/crush-dev-to-posts/)\n\n  Here are a few of my top tips to help make dev.to posts more readable, and drive better engagement.\n\n- [🐍 Practice Python Online](https://waylonwalker.com/practice-python-online/)\n\n  When learning a new skill it's important to practice along the way. In order for me to show up to practice I need to make it easy to show up. An easy way to show up to practice with python is to use an online repl. With these you can try out something quick. Sometimes I see snippets from blogs or tweets and I need to try the out for myself to really understand.\n\n- [Edit On GitHub](https://waylonwalker.com/edit-on-github/)\n\n  I recently added a button to my blog, and subsequently my posts on [DEV.to](https://dev.to/waylonwalker). It's the best thing that I have done for it in a while.\n\n- [Why use a cms](https://waylonwalker.com/why-use-cms/)\n\n  When first learning to code its very common to hard code everything right into the code. This happens with most folks in just about any language. Whether its html or markdown for front end content, or even hardcoding parameters in our backend languages like python, or node.js.\n\n- [🐍 Parsing RSS feeds with Python](https://waylonwalker.com/parsing-rss-python/)\n\n  I am looking into a way to replace my google reader experience that I had back in 2013 before google took it from us. I am starting by learning how to parse feeds with python, and without much previous knowledge it proved to be much easier than anticipated thanks to the `feedparser` library.\n\n- [🙋‍♂️ Can Anyone Explain Twitter Cards to me?](https://waylonwalker.com/explain-twitter-cards/)\n\n  Can someone explain how or why twitter cards render differently from device to device? I do understand that twitter cards a built from meta tags, the full list can be found in their\n\n- [🤓 What's on your GitHub Profile](https://dev.to/waylonwalker/what-s-on-your-github-profile-40p3)\n\n  Comment on the DEV.to thread to show off what is on your GitHub profile.\n",
      "summary": "It's been quite a busy Month and a half since my last official newsletter With about 14 individual posts going live since then. I pushed hard over the past...",
      "date_published": "2020-06-11T05:00:00Z",
      "date_modified": "2020-06-11T05:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "newsletter"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/013/",
      "url": "https://go.waylonwalker.com/013/",
      "title": "Blog consistently",
      "content_html": "\u003ch1 id=\"blog-consistently\"\u003eBlog consistently\u003c/h1\u003e\n\u003cp\u003eEven if you \u003cem\u003ethink\u003c/em\u003e a topic has been blogged to death\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eThere is one thing they are \u003cem\u003eall\u003c/em\u003e missing….\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e\u003cstrong\u003eYour unique perspective\u003c/strong\u003e\u003c/p\u003e\n",
      "content_text": "\n# Blog consistently\n\nEven if you _think_ a topic has been blogged to death\n\n\u003e There is one thing they are _all_ missing....\n\n**Your unique perspective**\n",
      "summary": "Even if you _ a topic has been blogged to death",
      "date_published": "2020-06-07T02:12:24Z",
      "date_modified": "2020-06-07T02:12:24Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/012/",
      "url": "https://go.waylonwalker.com/012/",
      "title": "012",
      "content_html": "\u003cp\u003e\u003cstrong\u003eautoreload\u003c/strong\u003e your imports in ipython for ⚡ fast development\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ec\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eInteractiveShellApp\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eextensions\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;autoreload\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ec\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eInteractiveShellApp\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eexec_lines\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;\u003c/span\u003e\u003cspan class=\"si\"\u003e%a\u003c/span\u003e\u003cspan class=\"s1\"\u003eutoreload 2\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ec\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eInteractiveShellApp\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eexec_lines\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eappend\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;print(\u0026#34;Warning: disable autoreload in ipython_config.py to improve performance.\u0026#34;)\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e👆 add this to your \u003ccode\u003e~/.ipython/profile_default/ipython_config.py.\u003c/code\u003e\u003c/p\u003e\n",
      "content_text": "**autoreload** your imports in ipython for ⚡ fast development\n\n``` python\nc.InteractiveShellApp.extensions = ['autoreload']\nc.InteractiveShellApp.exec_lines = ['%autoreload 2']\nc.InteractiveShellApp.exec_lines.append('print(\"Warning: disable autoreload in ipython_config.py to improve performance.\")')\n```\n👆 add this to your `~/.ipython/profile_default/ipython_config.py.`\n",
      "summary": "** your imports in ipython for ⚡ fast development",
      "date_published": "2020-06-07T02:12:24Z",
      "date_modified": "2020-06-07T02:12:24Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/011/",
      "url": "https://go.waylonwalker.com/011/",
      "title": "011",
      "content_html": "\u003cp\u003eLoad \u003cem\u003edata\u003c/em\u003e from database into \u003cstrong\u003epandas\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003epandas\u003c/span\u003e \u003cspan class=\"k\"\u003eas\u003c/span\u003e \u003cspan class=\"nn\"\u003epd\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003esqlalchemy\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003ecreate\u003c/span\u003e \u003cspan class=\"n\"\u003eengine\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eengine\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003ecreate_engine\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;postgresql://scott:tiger@localhost:5432/mydatabase\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003esql\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;select * from inventory\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003ewith\u003c/span\u003e \u003cspan class=\"n\"\u003eengine\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003econnect\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e \u003cspan class=\"k\"\u003eas\u003c/span\u003e \u003cspan class=\"n\"\u003econnection\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003einventory\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epd\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eread_sql\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003esql\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003econ\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eengine\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003edispose\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "Load _data_ from database into **pandas**\n\n``` python\nimport pandas as pd\nfrom sqlalchemy import create engine\n\nengine = create_engine('postgresql://scott:tiger@localhost:5432/mydatabase')\n\nsql = 'select * from inventory'\n\nwith engine.connect() as connection:\n    inventory = pd.read_sql(sql, con)\nengine.dispose()\n\n```\n",
      "summary": "Load _ from database into **",
      "date_published": "2020-06-07T02:09:58Z",
      "date_modified": "2020-06-07T02:09:58Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "data",
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/010/",
      "url": "https://go.waylonwalker.com/010/",
      "title": "010",
      "content_html": "\u003cp\u003eload remote \u003cem\u003edata\u003c/em\u003e with \u003cstrong\u003epandas\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003epandas\u003c/span\u003e \u003cspan class=\"k\"\u003eas\u003c/span\u003e \u003cspan class=\"nn\"\u003epd\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ecars_url\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;waylonwalker.com/cars.csv\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ecars\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epd\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eread_csv\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ecars_url\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "load remote _data_ with **pandas**\n\n``` python\nimport pandas as pd\ncars_url = 'waylonwalker.com/cars.csv'\ncars = pd.read_csv(cars_url)\n```\n",
      "summary": "load remote _ with **",
      "date_published": "2020-06-07T02:07:13Z",
      "date_modified": "2020-06-07T02:07:13Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "data",
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/009/",
      "url": "https://go.waylonwalker.com/009/",
      "title": "009",
      "content_html": "\u003cp\u003eCombine a directory of \u003cem\u003ecsv’s\u003c/em\u003e with \u003cstrong\u003epandas\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003epandas\u003c/span\u003e \u003cspan class=\"k\"\u003eas\u003c/span\u003e \u003cspan class=\"nn\"\u003epd\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003epathlib\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003ePath\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ecsvs\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003ePath\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eglob\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;raw/*.csv\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ecsvs_combined\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003epd\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003econcat\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ecsvs\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ecsvs_combined\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eto_csv\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;processed/combined.csv\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nCombine a directory of _csv's_ with **pandas**\n\n``` python\nimport pandas as pd\nfrom pathlib import Path\n\ncsvs = Path.glob('raw/*.csv')\ncsvs_combined = pd.concat(csvs)\ncsvs_combined.to_csv('processed/combined.csv')\n```\n",
      "summary": "Combine a directory of _ with **",
      "date_published": "2020-06-07T02:02:58Z",
      "date_modified": "2020-06-07T02:02:58Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "data",
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/008/",
      "url": "https://go.waylonwalker.com/008/",
      "title": "008",
      "content_html": "\u003cp\u003ecompare \u003cem\u003efeature\u003c/em\u003e branch to \u003cem\u003emain\u003c/em\u003e with \u003cstrong\u003e\u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e\u003c/strong\u003e cli\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit diff main..feature\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "compare _feature_ branch to _main_ with **git** cli\n\n``` bash\ngit diff main..feature\n```\n",
      "summary": "compare _ branch to _ with ** cli",
      "date_published": "2020-06-07T01:58:03Z",
      "date_modified": "2020-06-07T01:58:03Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "git"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/007/",
      "url": "https://go.waylonwalker.com/007/",
      "title": "007",
      "content_html": "\u003cp\u003eGet \u003cstrong\u003eisort\u003c/strong\u003e and \u003cstrong\u003eblack\u003c/strong\u003e to \u003cem\u003ecooperate\u003c/em\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e[\u003c/span\u003esettings\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003emulti_line_output\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"m\"\u003e3\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003einclude_trailing_comma\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003eTrue\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003eforce_grid_wrap\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"m\"\u003e0\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003euse_parentheses\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003eTrue\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003eline_length\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"m\"\u003e88\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003estore this in \u003ccode\u003e.isort.cfg\u003c/code\u003e\u003c/p\u003e\n",
      "content_text": "Get **isort** and **black** to _cooperate_\n\n``` bash\n[settings]\nmulti_line_output=3\ninclude_trailing_comma=True\nforce_grid_wrap=0\nuse_parentheses=True\nline_length=88\n```\n\nstore this in `.isort.cfg`\n",
      "summary": "Get ** and ** to _",
      "date_published": "2020-06-06T18:18:11Z",
      "date_modified": "2020-06-06T18:18:11Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/006/",
      "url": "https://go.waylonwalker.com/006/",
      "title": "006",
      "content_html": "\u003cp\u003eSetup \u003cstrong\u003epre-commit\u003c/strong\u003e for \u003cem\u003eisort\u003c/em\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e- \u003cspan class=\"nt\"\u003erepo\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ehttps://github.com/asottile/seed-isort-config\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003erev\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ev2.1.1\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003ehooks\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e- \u003cspan class=\"nt\"\u003eid\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eseed-isort-config\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e- \u003cspan class=\"nt\"\u003erepo\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ehttps://github.com/pre-commit/mirrors-isort\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003erev\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ev4.3.21\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003ehooks\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e- \u003cspan class=\"nt\"\u003eid\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eisort\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cem\u003eincludes automatic\u003c/em\u003e .isort-config\u003c/p\u003e\n",
      "content_text": "Setup **pre-commit** for _isort_\n\n``` yaml\n  - repo: https://github.com/asottile/seed-isort-config\n    rev: v2.1.1\n    hooks:\n      - id: seed-isort-config\n  - repo: https://github.com/pre-commit/mirrors-isort\n    rev: v4.3.21\n    hooks:\n      - id: isort\n```\n\n_includes automatic_ .isort-config\n",
      "summary": "Setup ** for _",
      "date_published": "2020-06-06T18:14:14Z",
      "date_modified": "2020-06-06T18:14:14Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "git",
        "python",
        "cli"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/005/",
      "url": "https://go.waylonwalker.com/005/",
      "title": "005",
      "content_html": "\u003cp\u003e\u003cstrong\u003epre-commit\u003c/strong\u003e setup is \u003cem\u003esimple\u003c/em\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epip instal pre-commit\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epre-commit sample-config \u0026gt; .pre-commit-config.yaml\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epre-commit install\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit add .\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit commit -m \u003cspan class=\"s2\"\u003e\u0026#34;added pre-commit\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eTry\u003c/strong\u003e it yourself\u003c/p\u003e\n",
      "content_text": "**pre-commit** setup is _simple_\n\n``` bash\npip instal pre-commit\npre-commit sample-config \u003e .pre-commit-config.yaml\npre-commit install\ngit add .\ngit commit -m \"added pre-commit\"\n```\n\n**Try** it yourself\n",
      "summary": "** setup is _",
      "date_published": "2020-06-06T18:12:10Z",
      "date_modified": "2020-06-06T18:12:10Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "git",
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/004/",
      "url": "https://go.waylonwalker.com/004/",
      "title": "004",
      "content_html": "\u003cp\u003e🔥 #kedrotips use find-kedro to assembly your pipelines\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003ekedro.context\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eKedroContext\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003efind_kedro\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003efind_kedro\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eclass\u003c/span\u003e \u003cspan class=\"nc\"\u003eProjectContext\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eKedroContext\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003e_get_pipelines\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"bp\"\u003eself\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003ePipeline\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"n\"\u003efind_kedro\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "🔥 #kedrotips use find-kedro to assembly your pipelines\n\n\n``` python\nfrom kedro.context import KedroContext\nfrom find_kedro import find_kedro\n\nclass ProjectContext(KedroContext):\n    def _get_pipelines(self) -\u003e Pipeline:\n        return find_kedro()\n```\n",
      "summary": "🔥 #kedrotips use find-kedro to assembly your pipelines",
      "date_published": "2020-05-31T19:22:07Z",
      "date_modified": "2020-05-31T19:22:07Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "kedro"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/003/",
      "url": "https://go.waylonwalker.com/003/",
      "title": "kedro-hooks/src/kedro-hooks/preflight.py",
      "content_html": "\u003cp\u003e🔥 #kedrotips hooks can be created using modules\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e# kedro-hooks/src/kedro-hooks/preflight.py\nfrom kedro.hooks import hook_impl\nfrom kedro.io.core import DataSetNotFoundError\nfrom colorama import Fore\nimport textwrap\n\n\n@hook_impl\ndef before_pipeline_run(run_params, pipeline, catalog):\n    missing_input = [i for i in pipeline.inputs() if not getattr(catalog.datasets, i)._exists()]\n    if len(missing_input) != 0:\n        raise DataSetNotFoundError(textwrap.dedent(f\u0026#39;\u0026#39;\u0026#39;\n\n    {Fore.LIGHTBLACK_EX}――――――――  {Fore.RED}PREFLIGHT ERROR {Fore.LIGHTBLACK_EX}―――――――――\n    {Fore.RESET} preflight of pipeline failed due to {Fore.YELLOW}missing datasets\n    {Fore.BLUE} {missing_input}{Fore.RESET}\n    \u0026#39;\u0026#39;\u0026#39;))\n\u003c/code\u003e\u003c/pre\u003e\n",
      "content_text": "🔥 #kedrotips hooks can be created using modules\n\n\n```\n# kedro-hooks/src/kedro-hooks/preflight.py\nfrom kedro.hooks import hook_impl\nfrom kedro.io.core import DataSetNotFoundError\nfrom colorama import Fore\nimport textwrap\n\n\n@hook_impl\ndef before_pipeline_run(run_params, pipeline, catalog):\n    missing_input = [i for i in pipeline.inputs() if not getattr(catalog.datasets, i)._exists()]\n    if len(missing_input) != 0:\n        raise DataSetNotFoundError(textwrap.dedent(f'''\n\n    {Fore.LIGHTBLACK_EX}――――――――  {Fore.RED}PREFLIGHT ERROR {Fore.LIGHTBLACK_EX}―――――――――\n    {Fore.RESET} preflight of pipeline failed due to {Fore.YELLOW}missing datasets\n    {Fore.BLUE} {missing_input}{Fore.RESET}\n    '''))\n```\n",
      "summary": "🔥 #kedrotips hooks can be created using modules",
      "date_published": "2020-05-31T04:37:25Z",
      "date_modified": "2020-05-31T04:37:25Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "kedro"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/002/",
      "url": "https://go.waylonwalker.com/002/",
      "title": "002",
      "content_html": "\u003cp\u003e\u003cstrong\u003ekedro-static-viz\u003c/strong\u003e 0.3.0 just launched with \u003cem\u003ehooks\u003c/em\u003e support 🎉\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003ekedro_static_viz.hooks\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eStaticViz\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eclass\u003c/span\u003e \u003cspan class=\"nc\"\u003eProjectContext\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eKedroContext\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003eproject_name\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;kedro0160\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003eproject_version\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;0.16.1\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003epackage_name\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;kedro0160\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   \u003cspan class=\"n\"\u003ehooks\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e \u003cspan class=\"n\"\u003eStaticViz\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e \u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n**kedro-static-viz** 0.3.0 just launched with _hooks_ support 🎉\n\n```python\nfrom kedro_static_viz.hooks import StaticViz\n\nclass ProjectContext(KedroContext):\n   project_name = \"kedro0160\"\n   project_version = \"0.16.1\"\n   package_name = \"kedro0160\"\n   hooks = [ StaticViz() ]\n```\n",
      "summary": "** 0.3.0 just launched with _ support 🎉",
      "date_published": "2020-05-28T23:48:00Z",
      "date_modified": "2020-05-28T23:48:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "kedro"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/001/",
      "url": "https://go.waylonwalker.com/001/",
      "title": "make sure to answer yes to adding example data your first time",
      "content_html": "\u003cp\u003e\u003cstrong\u003epractice\u003c/strong\u003e building pipelines with \u003cem\u003e#kedro\u003c/em\u003e today\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003econda create -n learning-kedro-1 \u003cspan class=\"nv\"\u003epython\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e3.8 -y\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003econda activate learning-kedro-1\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epip install kedro kedro-viz\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ekedro new\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# make sure to answer yes to adding example data your first time\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n**practice** building pipelines with _#kedro_ today\n``` bash\nconda create -n learning-kedro-1 python=3.8 -y\nconda activate learning-kedro-1\npip install kedro kedro-viz\nkedro new\n# make sure to answer yes to adding example data your first time\n```\n",
      "summary": "** building pipelines with _ today",
      "date_published": "2020-05-26T12:48:00Z",
      "date_modified": "2020-05-26T12:48:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "kedro"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/gatsby-scripts-with-onload/",
      "url": "https://go.waylonwalker.com/gatsby-scripts-with-onload/",
      "title": "Gatsby Scripts with onload",
      "content_html": "\u003cp\u003eThis might be useful\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/nfl/react-helmet/issues/146\" title=\"https://github.com/nfl/react-helmet/issues/146\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://github.com/nfl/react-helmet/issues/146\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/gatsbyjs/gatsby/issues/13136\" title=\"https://github.com/gatsbyjs/gatsby/issues/13136\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://github.com/gatsbyjs/gatsby/issues/13136\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "This might be useful\n\n[https://github.com/nfl/react-helmet/issues/146](https://github.com/nfl/react-helmet/issues/146 \"https://github.com/nfl/react-helmet/issues/146\")\n\n[https://github.com/gatsbyjs/gatsby/issues/13136](https://github.com/gatsbyjs/gatsby/issues/13136 \"https://github.com/gatsbyjs/gatsby/issues/13136\")\n",
      "summary": "This might be useful",
      "date_published": "2020-05-22T05:00:00Z",
      "date_modified": "2020-05-22T05:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "webdev"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/thank-you/",
      "url": "https://go.waylonwalker.com/thank-you/",
      "title": "Thanks For Subscribing",
      "content_html": "\u003cmeta name=\"\u003ca href=\"/og/\" class=\"glossary-term\" title=\"OG is short for open graph, a set of standard meta tags that are used for social media sharing. This is what tells other websites how to describe and display...\"\u003eog\u003c/a\u003e:article:modified_time\" content=\"2020-06-23T14:53:23Z\"/\u003e\n\u003ch1 id=\"-youre-awesome\"\u003e✨ You’re Awesome\u003c/h1\u003e\n\u003cp\u003eThank you so much for subscribing to my newsletter.  It’s still early days, please let me know what you want to hear about, I would love to get the conversation started!\u003c/p\u003e\n\u003cp\u003eMy hope is that you find some wicked sweet content here and stay tuned for more, but if you dont like it you can opt-out at any time.\u003c/p\u003e\n\u003ch2 id=\"what-to-expect\"\u003eWhat to expect \u003ca href=\"#what-to-expect\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWeekly inspirational message based on my experiences breaking into the industry\u003c/li\u003e\n\u003cli\u003emonthly-ish message about what is going on new posts, life, updates\u003c/li\u003e\n\u003cli\u003eFuture annouce premium content ( let me know what you think it should be )\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\n\n\u003cmeta name='og:article:modified_time' content='2020-06-23T14:53:23Z'/\u003e\n\n# ✨ You're Awesome\n\nThank you so much for subscribing to my newsletter.  It's still early days, please let me know what you want to hear about, I would love to get the conversation started!\n\nMy hope is that you find some wicked sweet content here and stay tuned for more, but if you dont like it you can opt-out at any time.\n\n## What to expect\n\n* Weekly inspirational message based on my experiences breaking into the industry\n* monthly-ish message about what is going on new posts, life, updates\n* Future annouce premium content ( let me know what you think it should be )\n",
      "summary": "You're awesome! Thanks for subscribing to my newsletter.",
      "date_published": "2020-05-20T10:00:00Z",
      "date_modified": "2020-05-20T10:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "meta"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/practice-your-craft/",
      "url": "https://go.waylonwalker.com/practice-your-craft/",
      "title": "Practice your craft",
      "content_html": "\u003ch2 id=\"show-up-for-practice\"\u003eShow up For Practice \u003ca href=\"#show-up-for-practice\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"how-i-practice\"\u003ehow I practice \u003ca href=\"#how-i-practice\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"what-works-for-you\"\u003eWhat Works for You \u003ca href=\"#what-works-for-you\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n",
      "content_text": "\n## Show up For Practice\n\n## how I practice\n\n## What Works for You\n",
      "date_published": "2020-03-04T06:00:00Z",
      "date_modified": "2020-03-04T06:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "catalytic",
        "soft"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/productive-one-on-one/",
      "url": "https://go.waylonwalker.com/productive-one-on-one/",
      "title": "Productive one on one",
      "content_html": "\u003cp\u003e\u003ca href=\"https://images.waylonwalker.com/Screenshot_20200221-114202.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://images.waylonwalker.com/Screenshot_20200221-114202.png\" alt=\"\"/ data-glightbox=\"description: \"\u003e\u003c/a\u003eInspired by \u003ca href=\"https://m.soundcloud.com/front-end-happy-hour/episode-095-shot-for-shot-one-on-ones\" title=\"https://m.soundcloud.com/front-end-happy-hour/episode-095-shot-for-shot-one-on-ones\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/m.soundcloud.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/m.soundcloud.com.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://m.soundcloud.com/front-end-happy-hour/episode-095-shot-for-shot-one-on-ones\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\n![](https://images.waylonwalker.com/Screenshot_20200221-114202.png)Inspired by [https://m.soundcloud.com/front-end-happy-hour/episode-095-shot-for-shot-one-on-ones](https://m.soundcloud.com/front-end-happy-hour/episode-095-shot-for-shot-one-on-ones \"https://m.soundcloud.com/front-end-happy-hour/episode-095-shot-for-shot-one-on-ones\")\n",
      "date_published": "2020-02-24T12:53:00Z",
      "date_modified": "2020-02-24T12:53:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "catalytic",
        "soft"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/long-variable-names-are-good/",
      "url": "https://go.waylonwalker.com/long-variable-names-are-good/",
      "title": "Long variable names are good",
      "content_html": "\u003cp\u003e🏷️ Long variable names are a good thing. Self documenting code is more important than poorly documented code. Simply adding a few characters to your variable names can go a long ways.\u003c/p\u003e\n\u003ch2 id=\"containers-are-plural\"\u003eContainers are plural \u003ca href=\"#containers-are-plural\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"aliases-are-welcome\"\u003eAliases are welcome \u003ca href=\"#aliases-are-welcome\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eScope is important\u003c/p\u003e\n",
      "content_text": "\n🏷️ Long variable names are a good thing. Self documenting code is more important than poorly documented code. Simply adding a few characters to your variable names can go a long ways.\n\n## Containers are plural\n\n## Aliases are welcome\n\nScope is important\n",
      "summary": "🏷️ Long variable names are a good thing. Self documenting code is more important than poorly documented code. Simply adding a few characters to your...",
      "date_published": "2020-02-24T06:00:00Z",
      "date_modified": "2020-02-24T06:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/what-is-refactoring/",
      "url": "https://go.waylonwalker.com/what-is-refactoring/",
      "title": "What is Refactoring",
      "content_html": "\u003cp\u003eMake the change easy\u003c/p\u003e\n\u003cp\u003eMake the easy change\u003c/p\u003e\n\u003cp\u003eMartin Fowler\u003c/p\u003e\n\u003cp\u003eWhen to refactor\u003c/p\u003e\n",
      "content_text": "\nMake the change easy\n\nMake the easy change\n\nMartin Fowler\n\nWhen to refactor\n",
      "summary": "Make the change easy",
      "date_published": "2020-02-20T22:06:00Z",
      "date_modified": "2020-02-20T22:06:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/automate-your-deploys/",
      "url": "https://go.waylonwalker.com/automate-your-deploys/",
      "title": "automate your deploys",
      "date_published": "2020-02-07T12:08:00Z",
      "date_modified": "2020-02-07T12:08:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ci-cd"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/simple-click-2/",
      "url": "https://go.waylonwalker.com/simple-click-2/",
      "title": "simple click 2",
      "date_published": "2020-02-03T06:00:00Z",
      "date_modified": "2020-02-03T06:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/gatsby-rss-feed/",
      "url": "https://go.waylonwalker.com/gatsby-rss-feed/",
      "title": "RSS feed for your Gatsby Site",
      "content_html": "\u003cp\u003eAdding an rss feed to your gatsby js site is super simple.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://www.gatsbyjs.org/packages/gatsby-plugin-feed/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.gatsbyjs.org.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.gatsbyjs.org.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://www.gatsbyjs.org/packages/gatsby-plugin-feed/\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"install\"\u003eInstall \u003ca href=\"#install\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003enpm install --save gatsby-plugin-feed\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"how-to-use\"\u003eHow to use \u003ca href=\"#how-to-use\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e// In your gatsby-config.js\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e\u003c/span\u003e\u003cspan class=\"nx\"\u003emodule\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003eexports\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nx\"\u003eplugins\u003c/span\u003e\u003cspan class=\"o\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nx\"\u003eresolve\u003c/span\u003e\u003cspan class=\"o\"\u003e:\u003c/span\u003e \u003cspan class=\"sb\"\u003e`gatsby-plugin-feed`\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"nx\"\u003eoptions\u003c/span\u003e\u003cspan class=\"o\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"nx\"\u003equery\u003c/span\u003e\u003cspan class=\"o\"\u003e:\u003c/span\u003e \u003cspan class=\"sb\"\u003e`\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sb\"\u003e          {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sb\"\u003e            site {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sb\"\u003e              siteMetadata {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sb\"\u003e                title\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sb\"\u003e                description\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sb\"\u003e                siteUrl\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sb\"\u003e                site_url: siteUrl\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sb\"\u003e              }\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sb\"\u003e            }\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sb\"\u003e          }\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sb\"\u003e        `\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"nx\"\u003efeeds\u003c/span\u003e\u003cspan class=\"o\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"nx\"\u003eserialize\u003c/span\u003e\u003cspan class=\"o\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e({\u003c/span\u003e \u003cspan class=\"nx\"\u003equery\u003c/span\u003e\u003cspan class=\"o\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"nx\"\u003esite\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"nx\"\u003eallMarkdownRemark\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"p\"\u003e})\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u0026gt;\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e              \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"nx\"\u003eallMarkdownRemark\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003eedges\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003emap\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"nx\"\u003eedge\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u0026gt;\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"nb\"\u003eObject\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003eassign\u003c/span\u003e\u003cspan class=\"p\"\u003e({},\u003c/span\u003e \u003cspan class=\"nx\"\u003eedge\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003enode\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003efrontmatter\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                  \u003cspan class=\"nx\"\u003edescription\u003c/span\u003e\u003cspan class=\"o\"\u003e:\u003c/span\u003e \u003cspan class=\"nx\"\u003eedge\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003enode\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003eexcerpt\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                  \u003cspan class=\"nx\"\u003edate\u003c/span\u003e\u003cspan class=\"o\"\u003e:\u003c/span\u003e \u003cspan class=\"nx\"\u003eedge\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003enode\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003efrontmatter\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003edate\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                  \u003cspan class=\"nx\"\u003eurl\u003c/span\u003e\u003cspan class=\"o\"\u003e:\u003c/span\u003e \u003cspan class=\"nx\"\u003esite\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003esiteMetadata\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003esiteUrl\u003c/span\u003e \u003cspan class=\"o\"\u003e+\u003c/span\u003e \u003cspan class=\"nx\"\u003eedge\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003enode\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003efields\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003eslug\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                  \u003cspan class=\"nx\"\u003eguid\u003c/span\u003e\u003cspan class=\"o\"\u003e:\u003c/span\u003e \u003cspan class=\"nx\"\u003esite\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003esiteMetadata\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003esiteUrl\u003c/span\u003e \u003cspan class=\"o\"\u003e+\u003c/span\u003e \u003cspan class=\"nx\"\u003eedge\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003enode\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003efields\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003eslug\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                  \u003cspan class=\"nx\"\u003ecustom_elements\u003c/span\u003e\u003cspan class=\"o\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e[{\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;content:encoded\u0026#34;\u003c/span\u003e\u003cspan class=\"o\"\u003e:\u003c/span\u003e \u003cspan class=\"nx\"\u003eedge\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003enode\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003ehtml\u003c/span\u003e \u003cspan class=\"p\"\u003e}],\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"p\"\u003e})\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e              \u003cspan class=\"p\"\u003e})\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"nx\"\u003equery\u003c/span\u003e\u003cspan class=\"o\"\u003e:\u003c/span\u003e \u003cspan class=\"sb\"\u003e`\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sb\"\u003e              {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sb\"\u003e                allMarkdownRemark(\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sb\"\u003e                  sort: { order: DESC, fields: [frontmatter___date] },\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sb\"\u003e                ) {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sb\"\u003e                  edges {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sb\"\u003e                    node {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sb\"\u003e                      excerpt\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sb\"\u003e                      html\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sb\"\u003e                      fields { slug }\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sb\"\u003e                      frontmatter {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sb\"\u003e                        title\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sb\"\u003e                        date\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sb\"\u003e                      }\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sb\"\u003e                    }\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sb\"\u003e                  }\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sb\"\u003e                }\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sb\"\u003e              }\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sb\"\u003e            `\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"nx\"\u003eoutput\u003c/span\u003e\u003cspan class=\"o\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/rss.xml\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"nx\"\u003etitle\u003c/span\u003e\u003cspan class=\"o\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Your Site\u0026#39;s RSS Feed\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"c1\"\u003e// optional configuration to insert feed reference in pages:\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e\u003c/span\u003e            \u003cspan class=\"c1\"\u003e// if `string` is used, it will be used to create RegExp and then test if pathname of\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e\u003c/span\u003e            \u003cspan class=\"c1\"\u003e// current page satisfied this regular expression;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e\u003c/span\u003e            \u003cspan class=\"c1\"\u003e// if not provided or `undefined`, all pages will have feed reference inserted\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e\u003c/span\u003e            \u003cspan class=\"nx\"\u003ematch\u003c/span\u003e\u003cspan class=\"o\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;^/blog/\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"c1\"\u003e// optional configuration to specify external rss feed, such as feedburner\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e\u003c/span\u003e            \u003cspan class=\"nx\"\u003elink\u003c/span\u003e\u003cspan class=\"o\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;https://feeds.feedburner.com/gatsby/blog\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"p\"\u003e],\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"p\"\u003e],\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"my-updated-graphql-query\"\u003eMy updated graphql query \u003ca href=\"#my-updated-graphql-query\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\t\u003c/span\u003e\u003cspan class=\"py\"\u003eallMarkdownRemark\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\t\t\u003c/span\u003e\u003cspan class=\"py\"\u003esort\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"nc\"\u003eorder\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"nc\"\u003eDESC\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"py\"\u003efields\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nc\"\u003efrontmatter___date\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\t\t\u003c/span\u003e\u003cspan class=\"py\"\u003efilter\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\t\t\t\u003c/span\u003e\u003cspan class=\"nc\"\u003efrontmatter\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\t\t\t\t\u003c/span\u003e\u003cspan class=\"nc\"\u003etemplateKey\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"nc\"\u003ein\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s\"\u003e\u0026#34;blog-post\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\t\t\t\t\u003c/span\u003e\u003cspan class=\"nc\"\u003estatus\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"nc\"\u003ein\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s\"\u003e\u0026#34;published\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\t\t\t\u003c/span\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\t\t\u003c/span\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\t\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\t\t\u003c/span\u003e\u003cspan class=\"nc\"\u003eedges\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\t\t\t\u003c/span\u003e\u003cspan class=\"py\"\u003enode\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\t\t\t\t\u003c/span\u003e\u003cspan class=\"py\"\u003eexcerpt\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\t\t\t\t\u003c/span\u003e\u003cspan class=\"py\"\u003erawMarkdownBody\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\t\t\t\t\u003c/span\u003e\u003cspan class=\"py\"\u003efields\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\t\t\t\t\t\u003c/span\u003e\u003cspan class=\"py\"\u003eslug\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\t\t\t\t\u003c/span\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\t\t\t\t\u003c/span\u003e\u003cspan class=\"py\"\u003efrontmatter\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\t\t\t\t\t\u003c/span\u003e\u003cspan class=\"py\"\u003etitle\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\t\t\t\t\t\u003c/span\u003e\u003cspan class=\"py\"\u003edate\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\t\t\t\t\t\u003c/span\u003e\u003cspan class=\"py\"\u003ecover\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\t\t\t\t\t\t\u003c/span\u003e\u003cspan class=\"py\"\u003erelativePath\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\t\t\t\t\t\u003c/span\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\t\t\t\t\t\u003c/span\u003e\u003cspan class=\"py\"\u003etwitter_cover\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\t\t\t\t\t\t\u003c/span\u003e\u003cspan class=\"py\"\u003erelativePath\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\t\t\t\t\t\u003c/span\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\t\t\t\t\u003c/span\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\t\t\t\u003c/span\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\t\t\u003c/span\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\t\u003c/span\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "Adding an rss feed to your gatsby js site is super simple.\n\nhttps://www.gatsbyjs.org/packages/gatsby-plugin-feed/\n\n\n## Install\n\n``` bash\nnpm install --save gatsby-plugin-feed\n```\n\n## How to use\n``` javascript\n// In your gatsby-config.js\nmodule.exports = {\n  plugins: [\n    {\n      resolve: `gatsby-plugin-feed`,\n      options: {\n        query: `\n          {\n            site {\n              siteMetadata {\n                title\n                description\n                siteUrl\n                site_url: siteUrl\n              }\n            }\n          }\n        `,\n        feeds: [\n          {\n            serialize: ({ query: { site, allMarkdownRemark } }) =\u003e {\n              return allMarkdownRemark.edges.map(edge =\u003e {\n                return Object.assign({}, edge.node.frontmatter, {\n                  description: edge.node.excerpt,\n                  date: edge.node.frontmatter.date,\n                  url: site.siteMetadata.siteUrl + edge.node.fields.slug,\n                  guid: site.siteMetadata.siteUrl + edge.node.fields.slug,\n                  custom_elements: [{ \"content:encoded\": edge.node.html }],\n                })\n              })\n            },\n            query: `\n              {\n                allMarkdownRemark(\n                  sort: { order: DESC, fields: [frontmatter___date] },\n                ) {\n                  edges {\n                    node {\n                      excerpt\n                      html\n                      fields { slug }\n                      frontmatter {\n                        title\n                        date\n                      }\n                    }\n                  }\n                }\n              }\n            `,\n            output: \"/rss.xml\",\n            title: \"Your Site's RSS Feed\",\n            // optional configuration to insert feed reference in pages:\n            // if `string` is used, it will be used to create RegExp and then test if pathname of\n            // current page satisfied this regular expression;\n            // if not provided or `undefined`, all pages will have feed reference inserted\n            match: \"^/blog/\",\n            // optional configuration to specify external rss feed, such as feedburner\n            link: \"https://feeds.feedburner.com/gatsby/blog\",\n          },\n        ],\n      },\n    },\n  ],\n}\n```\n\n## My updated graphql query\n\n\n``` graphql\n{\n\tallMarkdownRemark(\n\t\tsort: { order: DESC, fields: [frontmatter___date] }\n\t\tfilter: {\n\t\t\tfrontmatter: {\n\t\t\t\ttemplateKey: { in: [\"blog-post\"] }\n\t\t\t\tstatus: { in: [\"published\"] }\n\t\t\t}\n\t\t}\n\t) {\n\t\tedges {\n\t\t\tnode {\n\t\t\t\texcerpt\n\t\t\t\trawMarkdownBody\n\t\t\t\tfields {\n\t\t\t\t\tslug\n\t\t\t\t}\n\t\t\t\tfrontmatter {\n\t\t\t\t\ttitle\n\t\t\t\t\tdate\n\t\t\t\t\tcover {\n\t\t\t\t\t\trelativePath\n\t\t\t\t\t}\n\t\t\t\t\ttwitter_cover {\n\t\t\t\t\t\trelativePath\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n```\n",
      "summary": "Add an rss feed to your Gatsby Site",
      "date_published": "2020-01-21T13:58:59Z",
      "date_modified": "2020-01-21T13:58:59Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "webdev"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/condabuild/",
      "url": "https://go.waylonwalker.com/condabuild/",
      "title": "Conda Build",
      "content_html": "\u003ch1 id=\"conda-build\"\u003eConda Build\u003c/h1\u003e\n\u003ch2 id=\"install-conda-build\"\u003eInstall Conda Build \u003ca href=\"#install-conda-build\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003econda update conda\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003econda install conda-build\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n# Conda Build\n\n## Install Conda Build\n\n```bash\nconda update conda\nconda install conda-build\n```\n",
      "summary": "none",
      "date_published": "2020-01-01T00:00:00Z",
      "date_modified": "2020-01-01T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/s3-datascience/",
      "url": "https://go.waylonwalker.com/s3-datascience/",
      "title": "What DataScientists Should Know About S3",
      "summary": "What DataScientists Should Know About S3",
      "date_published": "2019-12-15T06:00:00Z",
      "date_modified": "2019-12-15T06:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/pyspark/",
      "url": "https://go.waylonwalker.com/pyspark/",
      "title": "Pyspark",
      "content_html": "\u003cp\u003eI have been using pyspark since March 2019, here are my thoughts.\u003c/p\u003e\n",
      "content_text": "\nI have been using pyspark since March 2019, here are my thoughts.\n",
      "summary": "I have been using pyspark since March 2019, here are my thoughts.",
      "date_published": "2019-09-22T05:00:00Z",
      "date_modified": "2019-09-22T05:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/making-good-documentation-in-python/",
      "url": "https://go.waylonwalker.com/making-good-documentation-in-python/",
      "title": "Making good documentation in python",
      "content_html": "\u003ch1 id=\"tools\"\u003eTools\u003c/h1\u003e\n\u003ch2 id=\"sphinx\"\u003eSphinx \u003ca href=\"#sphinx\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"portray\"\u003ePortray \u003ca href=\"#portray\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI just started using portray and it is amazingly simple to use!\u003c/p\u003e\n\u003ch1 id=\"methodology\"\u003eMethodology\u003c/h1\u003e\n",
      "content_text": "\n# Tools\n\n## Sphinx\n\n## Portray\n\nI just started using portray and it is amazingly simple to use!\n\n# Methodology\n",
      "summary": "I just started using portray and it is amazingly simple to use!",
      "date_published": "2019-09-22T05:00:00Z",
      "date_modified": "2019-09-22T05:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/amazon-web-services/",
      "url": "https://go.waylonwalker.com/amazon-web-services/",
      "title": "Amazon Web Services",
      "content_html": "\u003cp\u003eI started using aws in March 2019. Here are some of my notes.\u003c/p\u003e\n\u003ch2 id=\"aws-cli\"\u003eaws-cli \u003ca href=\"#aws-cli\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"ec-2\"\u003eec-2 \u003ca href=\"#ec-2\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"sagemaker\"\u003eSageMaker \u003ca href=\"#sagemaker\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"s3\"\u003eS3 \u003ca href=\"#s3\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n",
      "content_text": "\nI started using aws in March 2019. Here are some of my notes.\n\n## aws-cli\n\n## ec-2\n\n## SageMaker\n\n## S3\n",
      "summary": "I started using aws in March 2019. Here are some of my notes.",
      "date_published": "2019-09-22T05:00:00Z",
      "date_modified": "2019-09-22T05:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "cli"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/bit_01/",
      "url": "https://go.waylonwalker.com/bit_01/",
      "title": "Minimal Project Structure",
      "content_html": "\u003ch2 id=\"tldr\"\u003eTLDR \u003ca href=\"#tldr\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eUse \u003cstrong\u003e\u003ca href=\"https://www.gitignore.io\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.gitignore.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.gitignore.io.ico\" class=\"has-avatar  has-avatar-before\"\u003e.gitignore.io\u003c/a\u003e\u003c/strong\u003e and consider adding an alias to your terminal to quickly add a .gitignore to any project missing one.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003ealias\u003c/span\u003e \u003cspan class=\"nv\"\u003egitignore\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;curl https://www.gitignore.io/api/vim,emacs,python,pycharm,sublimetext,visualstudio,visualstudiocode,data \u0026gt; .gitignore\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eAdd a minimal \u003cstrong\u003esetup.py\u003c/strong\u003e to the root of your project, and use the following command to install it.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epip install -e .\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003econsider using **\u003ca href=\"https://github.com/audreyr/cookiecutter\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ecookiecutter\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\n## TLDR\n\nUse **[.gitignore.io](https://www.gitignore.io)** and consider adding an alias to your terminal to quickly add a .gitignore to any project missing one.\n\n```bash\nalias gitignore='curl https://www.gitignore.io/api/vim,emacs,python,pycharm,sublimetext,visualstudio,visualstudiocode,data \u003e .gitignore'\n```\n\nAdd a minimal **setup.py** to the root of your project, and use the following command to install it.\n\n```bash\npip install -e .\n```\n\nconsider using \\*\\*[cookiecutter](https://github.com/audreyr/cookiecutter)\n",
      "summary": "How to setup a data science project in python.",
      "date_published": "2019-02-10T00:00:00Z",
      "date_modified": "2019-02-10T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/python-tips/",
      "url": "https://go.waylonwalker.com/python-tips/",
      "title": "Python Tips",
      "content_html": "\u003ch2 id=\"dictionaries\"\u003eDictionaries \u003ca href=\"#dictionaries\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch3 id=\"unpacking\"\u003eUnpacking \u003ca href=\"#unpacking\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e**kwargs\u003c/li\u003e\n\u003cli\u003efunc(**input)\u003c/li\u003e\n\u003cli\u003elocals().update(d)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"heading\"\u003e \u003ca href=\"#heading\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n",
      "content_text": "\n## Dictionaries\n\n### Unpacking\n\n* **kwargs\n* func(**input)\n* locals().update(d)\n\n###\n",
      "summary": "** func(** locals().update(d)",
      "date_published": "2019-01-21T00:00:00Z",
      "date_modified": "2019-01-21T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/git-rm-cruft/",
      "url": "https://go.waylonwalker.com/git-rm-cruft/",
      "title": "remove git cruft",
      "content_html": "\u003ch2 id=\"inspiration\"\u003einspiration \u003ca href=\"#inspiration\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eMy original inspiration for this post came from steven ostermiller’s blog post\nthat no longer exists from my last check in May, 2024.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://blog.ostermiller.org/removing-and-purging-files-from-git-history/\" class=\"hoverlink\"\u003ehttps://blog.ostermiller.org/removing-and-purging-files-from-git-history/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eI was able to find it on the way back machine though.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://web.archive.org/web/20240222195617/https://blog.ostermiller.org/removing-and-purging-files-from-git-history/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/web.archive.org.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/web.archive.org.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://web.archive.org/web/20240222195617/https://blog.ostermiller.org/removing-and-purging-files-from-git-history/\u003c/a\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit log --all --pretty\u003cspan class=\"o\"\u003e=\u003c/span\u003eformat: --name-only --diff-filter\u003cspan class=\"o\"\u003e=\u003c/span\u003eD \u003cspan class=\"p\"\u003e|\u003c/span\u003e sed -r \u003cspan class=\"s1\"\u003e\u0026#39;s|[^/]+$||g\u0026#39;\u003c/span\u003e \u003cspan class=\"p\"\u003e|\u003c/span\u003e sort -u\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit filter-branch --tag-name-filter cat --index-filter \u003cspan class=\"s1\"\u003e\u0026#39;git rm -r --cached --ignore-unmatch FILE_LIST\u0026#39;\u003c/span\u003e --prune-empty -f -- --all\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003erm -rf .git/refs/original/\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit reflog expire --expire\u003cspan class=\"o\"\u003e=\u003c/span\u003enow --all\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit gc --aggressive --prune\u003cspan class=\"o\"\u003e=\u003c/span\u003enow\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit push origin --force --all\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit push origin --force --tags\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003ecd\u003c/span\u003e MY_LOCAL_GIT_REPO\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit fetch origin\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit rebase\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit reflog expire --expire\u003cspan class=\"o\"\u003e=\u003c/span\u003enow --all\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit gc --aggressive --prune\u003cspan class=\"o\"\u003e=\u003c/span\u003enow\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n## inspiration\n\nMy original inspiration for this post came from steven ostermiller's blog post\nthat no longer exists from my last check in May, 2024.\n\n[https://blog.ostermiller.org/removing-and-purging-files-from-git-history/](https://blog.ostermiller.org/removing-and-purging-files-from-git-history/){.hoverlink}\n\nI was able to find it on the way back machine though.\n\n[https://web.archive.org/web/20240222195617/https://blog.ostermiller.org/removing-and-purging-files-from-git-history/](https://web.archive.org/web/20240222195617/https://blog.ostermiller.org/removing-and-purging-files-from-git-history/)\n\n```bash\ngit log --all --pretty=format: --name-only --diff-filter=D | sed -r 's|[^/]+$||g' | sort -u\n```\n\n```bash\ngit filter-branch --tag-name-filter cat --index-filter 'git rm -r --cached --ignore-unmatch FILE_LIST' --prune-empty -f -- --all\n```\n\n```bash\nrm -rf .git/refs/original/\ngit reflog expire --expire=now --all\ngit gc --aggressive --prune=now\n```\n\n```bash\ngit push origin --force --all\ngit push origin --force --tags\n```\n\n```bash\ncd MY_LOCAL_GIT_REPO\ngit fetch origin\ngit rebase\ngit reflog expire --expire=now --all\ngit gc --aggressive --prune=now\n```\n",
      "summary": "My original inspiration for this post came from steven ostermiller's blog post that no longer exists from my last check in May, 2024.",
      "date_published": "2019-01-21T00:00:00Z",
      "date_modified": "2019-01-21T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "git"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/test/",
      "url": "https://go.waylonwalker.com/test/",
      "title": "Follow Your Passion",
      "content_html": "\u003ch2 id=\"example\"\u003eExample \u003ca href=\"#example\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ciframe src=\"/page2\" width=\"375\" height=\"812\" scrolling=\"no\" style=\"border: 1px solid #333;\"\u003e\n\u003c/div\u003e\u003c/iframe\u003e",
      "content_text": "\n## Example\n\n\u003ciframe src='/page2' width='375' height='812' scrolling='no' style='border: 1px solid #333;'\u003e\n",
      "summary": "none",
      "date_published": "2019-01-01T00:00:00Z",
      "date_modified": "2019-01-01T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/passion/",
      "url": "https://go.waylonwalker.com/passion/",
      "title": "Follow Your Passion",
      "content_html": "\u003ch2 id=\"follow-your-passion\"\u003eFollow Your Passion \u003ca href=\"#follow-your-passion\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003emy journey into data science\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eIn January 2018 I started work as a full time data scientist turning my passion into a career.  It is something that I didn’t see myself doing 5 years ago, but is something that I love to do.  It combines my love of data, visualization, story telling, software development, and writing code.  Most of all it allows me to work in a space that promotes learning and creativity.  As a mechanical engineer for a company that has been building equipment for nearly a century the mechanical engineering is very well established I felt that there was not a lot of room for creativity.\u003c/p\u003e\n\u003ch2 id=\"find-your-role\"\u003eFind Your Role \u003ca href=\"#find-your-role\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWhen I first started as a full time  mechanical engineer\u003c/p\u003e\n",
      "content_text": "\n## Follow Your Passion\n\n_my journey into data science_\n\nIn January 2018 I started work as a full time data scientist turning my passion into a career.  It is something that I didn't see myself doing 5 years ago, but is something that I love to do.  It combines my love of data, visualization, story telling, software development, and writing code.  Most of all it allows me to work in a space that promotes learning and creativity.  As a mechanical engineer for a company that has been building equipment for nearly a century the mechanical engineering is very well established I felt that there was not a lot of room for creativity.\n\n\n## Find Your Role\n\nWhen I first started as a full time  mechanical engineer\n",
      "summary": "none",
      "date_published": "2019-01-01T00:00:00Z",
      "date_modified": "2019-01-01T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "soft",
        "catalytic"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/readme-tables/",
      "url": "https://go.waylonwalker.com/readme-tables/",
      "title": "Generating Readme Tables From Pandas",
      "content_html": "\u003ch2 id=\"generating-readme-tables-from-pandas\"\u003eGenerating Readme Tables From Pandas \u003ca href=\"#generating-readme-tables-from-pandas\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI commonly have a need to paste the first few lines of a dataset into a markdown file.  I use two handy packages to do this, \u003ccode\u003etabulate\u003c/code\u003e and \u003ccode\u003epyperclip\u003c/code\u003e.  Lets say I have a Pandas DataFrame in memory as \u003ccode\u003edf\u003c/code\u003e already.  All I would need to do to convert the first 5 rows to markdown and copy it to the clipboard is the following.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003etabulate\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003etabulate\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003epyperclip\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003emd\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003etabulate\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003etabulate\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003edf\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ehead\u003c/span\u003e\u003cspan class=\"p\"\u003e(),\u003c/span\u003e \u003cspan class=\"n\"\u003edf\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ecolumns\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003etablefmt\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;pipe\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003epyperclip\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ecopy\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003emd\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eThis is a super handy snippet that I use a lot.  Folks really appreciate it when they can see a sample of the data without opening the entire file.\u003c/p\u003e\n",
      "content_text": "\n## Generating Readme Tables From Pandas\n\nI commonly have a need to paste the first few lines of a dataset into a markdown file.  I use two handy packages to do this, ```tabulate``` and ```pyperclip```.  Lets say I have a Pandas DataFrame in memory as ```df``` already.  All I would need to do to convert the first 5 rows to markdown and copy it to the clipboard is the following.\n\n```Python\nfrom tabulate import tabulate\nimport pyperclip\nmd = tabulate.tabulate(df.head(), df.columns, tablefmt='pipe')\npyperclip.copy(md)\n```\n\n\nThis is a super handy snippet that I use a lot.  Folks really appreciate it when they can see a sample of the data without opening the entire file.\n",
      "summary": "none",
      "date_published": "2018-05-16T00:00:00Z",
      "date_modified": "2018-05-16T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "data",
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/pycon-2018-roundup/",
      "url": "https://go.waylonwalker.com/pycon-2018-roundup/",
      "title": "Pycon 2018 Roundup",
      "content_html": "\u003cp\u003eThese are my notes from pycon 2018 videos.  I love the python community and especially the conference talks.  This year I am going to take some notes from my favorite talks and post them here.\u003c/p\u003e\n\u003cp\u003eThis is an \u003cstrong\u003eIncomplete\u003c/strong\u003e working post.\u003c/p\u003e\n\u003ch2 id=\"jake-vanderplas---performance-python-seven-strategies-for-optimizing-your-numerical-codehttpswwwyoutubecomwatchvzqeyx87mfyw\"\u003e\u003ca href=\"https://www.youtube.com/watch?v=zQeYx87mfyw\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003eJake VanderPlas - Performance Python: Seven Strategies for Optimizing Your Numerical Code\u003c/a\u003e \u003ca href=\"#jake-vanderplas---performance-python-seven-strategies-for-optimizing-your-numerical-codehttpswwwyoutubecomwatchvzqeyx87mfyw\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAlways\u003c/strong\u003e profile \u003cstrong\u003ebefore\u003c/strong\u003e making any optimizations.\u003c/li\u003e\n\u003cli\u003eVectorize with Numpy\n\u003cul\u003e\n\u003cli\u003eLooping in python can be slow\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUse specialized data structures.\n\u003cul\u003e\n\u003cli\u003escipy.spacial\u003c/li\u003e\n\u003cli\u003epandas\u003c/li\u003e\n\u003cli\u003exarray\u003c/li\u003e\n\u003cli\u003escipy.sparse\u003c/li\u003e\n\u003cli\u003esparse package\u003c/li\u003e\n\u003cli\u003escipy.sparce.csgraph\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eCython\n\u003cul\u003e\n\u003cli\u003eAdd types\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eNumba\n\u003cul\u003e\n\u003cli\u003ejit\u003c/li\u003e\n\u003cli\u003eFortran Like Speed\u003c/li\u003e\n\u003cli\u003eheavy dependencies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDask\n\u003cul\u003e\n\u003cli\u003edistributed tasks\u003c/li\u003e\n\u003cli\u003eCan be executed locally or on a cluster\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eLook for an existing package\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eresist the urge to reinvent the wheel\u003c/strong\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://www.youtube.com/watch?v=zQeYx87mfyw\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://www.youtube.com/watch?v=zQeYx87mfyw\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"justin-crown---what-is-this-mess---writing-tests-for-pre-existing-code-bases---pycon-2018httpswwwyoutubecomwatchvldduuoi-lig\"\u003e\u003ca href=\"https://www.youtube.com/watch?v=LDdUuoI_lIg\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003eJustin Crown - “WHAT IS THIS MESS?” - Writing tests for pre-existing code bases - PyCon 2018\u003c/a\u003e \u003ca href=\"#justin-crown---what-is-this-mess---writing-tests-for-pre-existing-code-bases---pycon-2018httpswwwyoutubecomwatchvldduuoi-lig\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis was a great talk about not only test driven development on existing code bases, but how to be a good steward of code.  Justin talks about how to clean up an existing code base, and leave it better than you found it.  Start by improving the parts that you touch, write tests, and improve docstrings whenever you make a change to a particular feature.  As you clean up the code base and it matures consider taking a sprint day to write tests and imporove documentation.  Doing it after you have familiarity with the project will make it much easier to do.  You will also improve your understanding of the parts that you have not touched along the way.\u003c/p\u003e\n\u003cp\u003eOne of the biggest takeaways that I heard in this talk, was do not assume that last person to touch the code was any less than yourself.  They likely did what they did for a reason, so before you have strong test coverage accross the project take it easy with rewriting everything they did, and only make the necessary changes.  Your changes could have an impact on other parts of the code base that you are not familiar with.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://.youtube.com/watch?v=zQeYx87mfyw\"\u003ehttps://.youtube.com/watch?v=zQeYx87mfyw\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"jason-huggins---keynote-httpswwwyoutubecomwatchvq-x7jk72e6e\"\u003e\u003ca href=\"https://www.youtube.com/watch?v=q-x7jK72E6E\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003eJason Huggins - Keynote \u003c/a\u003e \u003ca href=\"#jason-huggins---keynote-httpswwwyoutubecomwatchvq-x7jk72e6e\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eJason had a great talk about teaching kids to code through his experiences with First Lego League.  He found that the event has the best of intentions, but does lend itself to schools with a larger budget that is able to order many different kits.  He has found himself deep down a rabbit hole of finding an affordable alternative that can be done with the inexpensive raspbery pi zero, and controlled  with the cheapest tablets.  He is currently working on a programming language called wildcard, that can be programmed with paper.  This really reminds me of a game that I play with my 5 year old son \u003ca href=\"https://www.robotturtles.com\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.robotturtles.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.robotturtles.com.png\" class=\"has-avatar  has-avatar-before\"\u003eRobot Turtles\u003c/a\u003e.  He really likes to play it.  I will definitely be following this project to see if this is something that I can do with him when its ready.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://www.youtube.com/watch?v=q-x7jK72E6E\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://www.youtube.com/watch?v=q-x7jK72E6E\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"dan-callahan---keynote---pycon-2018httpswwwyoutubecomwatchvitksu31c1wy\"\u003e\u003ca href=\"https://www.youtube.com/watch?v=ITksU31c1WY\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003eDan Callahan - Keynote - PyCon 2018\u003c/a\u003e \u003ca href=\"#dan-callahan---keynote---pycon-2018httpswwwyoutubecomwatchvitksu31c1wy\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI was a bit sad when I was looking through the list of PyCon 2018 talks and did not see anything that appeared to talk about web assembly, but hidden in Dan Callagan’s keynote was a great story about web assembly and what it means to python.  Dan’s keynote was a great story about using the best tools available to you.  He goes back to his childhood where he programmed in basic because thats what he could take with him away from the desktop on his TI-82.  In modern times we have so many platforms other than desktop, and new ones comming out so frequently that its impossible to see what the next one will be.  There are even computers in refrigerators today.  The one thing that seems to be common is that they all have a web browser.  With that we can write web apps with python, but we are still missing the JavaScript dominated client side story.  Dan shows that this is changing with web assembly.  He showed examples where Autodesk compiled Autocad to wasm, and can run it in the browser!!  He showed versions of windows 3 running completely inside of firefox.  While it is currenly not realistic to compile python to web assembly as it creates large file sizes, it is possible and he sees a bright future for python in the browser.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://www.youtube.com/watch?v=ITksU31c1WY\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://www.youtube.com/watch?v=ITksU31c1WY\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"alex-petralia---analyzing-data-what-pandas-and-sql-taught-me-about-taking-an-averagehttpswwwyoutubecomwatchvdlgg0qdrqau\"\u003e\u003ca href=\"https://www.youtube.com/watch?v=DlgG0QdrqAU\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003eAlex Petralia - Analyzing Data: What pandas and SQL Taught Me About Taking an Average\u003c/a\u003e \u003ca href=\"#alex-petralia---analyzing-data-what-pandas-and-sql-taught-me-about-taking-an-averagehttpswwwyoutubecomwatchvdlgg0qdrqau\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAsks the right questions before writing the first line of code.  Even the simplest questions such as averages have many possible pitfalls along the way.  Alex discusses how to prepare your data before averaging in this talk.  He brings some new \u003cem\u003e“Jargon”\u003c/em\u003e .  I am not sure that this jargon made this any easier for me to understand or discuss.  It may take some time for this one to sink in to become effective.  I feel like using plain english is more effective as it is more easily understood by anyone.  “find the \u003cstrong\u003edaily\u003c/strong\u003e average \u003cstrong\u003esales\u003c/strong\u003e by \u003cstrong\u003eseller\u003c/strong\u003e”\u003c/p\u003e\n\u003ch3 id=\"jargon\"\u003eJargon \u003ca href=\"#jargon\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003e\u003cstrong\u003eCollapsing key:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ethe collapsed/aggregated data relevant to this analysis\u003c/li\u003e\n\u003cli\u003e\u003cem\u003ewe are overriding the primary key (i.e. what a table defines as an observation)\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003ethe original number of rows\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eGrouping key:\u003c/strong\u003e the key defining a group**\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cem\u003eeg. “for each Seller” is (seller), “for each Country and city is (Country, City)\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003ethis defines how many rows are in the result\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e** Obvervation key: a unit of observation for this analysis**\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cem\u003eeg. “daily average” is (Date), “across regions” is (Region)\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003ethis defines how many rows are in the denominator\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"formula\"\u003eFormula \u003ca href=\"#formula\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eCollapsing Key - Grouping Key = Observation Key\u003c/p\u003e\n\u003ch3 id=\"example-question\"\u003eExample Question \u003ca href=\"#example-question\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eCalculate the Average Daily Sales for each Seller.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eCollapsing Key:\u003c/strong\u003e (Date, Seller)\n\u003cstrong\u003eGrouping Key:\u003c/strong\u003e (Seller)\n\u003cstrong\u003eObservation Key:\u003c/strong\u003e (Date)\u003c/p\u003e\n\u003ch3 id=\"data-set\"\u003edata set \u003ca href=\"#data-set\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eid\u003c/th\u003e\n\u003cth\u003eDate\u003c/th\u003e\n\u003cth\u003eSeller\u003c/th\u003e\n\u003cth\u003eApplesSold\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e1\u003c/td\u003e\n\u003ctd\u003eMonday\u003c/td\u003e\n\u003ctd\u003eMary\u003c/td\u003e\n\u003ctd\u003e5\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e1\u003c/td\u003e\n\u003ctd\u003eMonday\u003c/td\u003e\n\u003ctd\u003eBob\u003c/td\u003e\n\u003ctd\u003e4\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e1\u003c/td\u003e\n\u003ctd\u003eTuesday\u003c/td\u003e\n\u003ctd\u003eBob\u003c/td\u003e\n\u003ctd\u003e8\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e1\u003c/td\u003e\n\u003ctd\u003eThursday\u003c/td\u003e\n\u003ctd\u003eJane\u003c/td\u003e\n\u003ctd\u003e10\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e1\u003c/td\u003e\n\u003ctd\u003eThursday\u003c/td\u003e\n\u003ctd\u003eJane\u003c/td\u003e\n\u003ctd\u003e6\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3 id=\"sql-example\"\u003eSQL Example \u003ca href=\"#sql-example\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eSELECT\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"n\"\u003eSeller\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"k\"\u003eAVG\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003etotal\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"k\"\u003eFROM\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"k\"\u003eSELECT\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e       \u003c/span\u003e\u003cspan class=\"nb\"\u003eDATE\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e       \u003c/span\u003e\u003cspan class=\"n\"\u003eSELLER\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e       \u003c/span\u003e\u003cspan class=\"k\"\u003eSUM\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eApplesSold\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"k\"\u003eAS\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"n\"\u003etotal\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"k\"\u003eFROM\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e       \u003c/span\u003e\u003cspan class=\"n\"\u003eApples\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"k\"\u003eGROUP\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"k\"\u003eBY\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e       \u003c/span\u003e\u003cspan class=\"nb\"\u003eDATE\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e       \u003c/span\u003e\u003cspan class=\"n\"\u003eSELLER\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"c1\"\u003e-- Collapsing Key\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e\u003c/span\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"k\"\u003eas\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"n\"\u003et\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"k\"\u003eGROUP\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"k\"\u003eBY\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"n\"\u003eSeller\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"c1\"\u003e-- Grouping Key\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"pandas-example\"\u003ePandas Example \u003ca href=\"#pandas-example\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eI am interested in trying out this technique of using the second groupby.  I typically use an unstack instead, but that relies on having the order of the Collapsing key correct.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003epd\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003egroupby\u003c/span\u003e\u003cspan class=\"p\"\u003e([\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;Date\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;Seller\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e])\u003c/span\u003e \u003cspan class=\"c1\"\u003e# Collapsing Key\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;ApplesSold\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003esum\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003egroupby\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003elevel\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;Seller\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"c1\"\u003e# Grouping Key\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003emean\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003ca href=\"https://www.youtube.com/watch?v=DlgG0QdrqAU\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://www.youtube.com/watch?v=DlgG0QdrqAU\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"devishi-jha---teaching-python-101---pycon-2018httpswwwyoutubecomwatchvs36gwdng904t1113s\"\u003e\u003ca href=\"https://www.youtube.com/watch?v=s36GwDng904\u0026amp;t=1113s\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003eDevishi Jha - Teaching Python 101 - PyCon 2018\u003c/a\u003e \u003ca href=\"#devishi-jha---teaching-python-101---pycon-2018httpswwwyoutubecomwatchvs36gwdng904t1113s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI was really impresssed by the professional level of presentation from Devishi from such a young age!  She had a great talk about teaching python to young people.  This talk really resonated with me as a father of two young children. She was advocating for python to be taught more frequently and earlier in schools.  In her opion onece students have a basic grasp of algebra they should be starting to use python over a higher level abstraction like scratch.  She also advocated that on the other Java tends to make computer science unaproachable and too difficult for students.  It is too large of a jump and tends to steer students away.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://www.youtube.com/watch?v=s36GwDng904\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://www.youtube.com/watch?v=s36GwDng904\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\nThese are my notes from pycon 2018 videos.  I love the python community and especially the conference talks.  This year I am going to take some notes from my favorite talks and post them here.\n\nThis is an **Incomplete** working post.\n\n\n## [Jake VanderPlas - Performance Python: Seven Strategies for Optimizing Your Numerical Code](https://www.youtube.com/watch?v=zQeYx87mfyw)\n\n* **Always** profile **before** making any optimizations.\n* Vectorize with Numpy\n    * Looping in python can be slow\n* Use specialized data structures.\n    * scipy.spacial\n    * pandas\n    * xarray\n    * scipy.sparse\n    * sparse package\n    * scipy.sparce.csgraph\n* Cython\n    * Add types\n* Numba\n    * jit\n    * Fortran Like Speed\n    * heavy dependencies\n* Dask\n    * distributed tasks\n    * Can be executed locally or on a cluster\n* Look for an existing package\n    * **resist the urge to reinvent the wheel**\n\nhttps://www.youtube.com/watch?v=zQeYx87mfyw\n\n## [Justin Crown - \"WHAT IS THIS MESS?\" - Writing tests for pre-existing code bases - PyCon 2018](https://www.youtube.com/watch?v=LDdUuoI_lIg)\n\nThis was a great talk about not only test driven development on existing code bases, but how to be a good steward of code.  Justin talks about how to clean up an existing code base, and leave it better than you found it.  Start by improving the parts that you touch, write tests, and improve docstrings whenever you make a change to a particular feature.  As you clean up the code base and it matures consider taking a sprint day to write tests and imporove documentation.  Doing it after you have familiarity with the project will make it much easier to do.  You will also improve your understanding of the parts that you have not touched along the way.\n\nOne of the biggest takeaways that I heard in this talk, was do not assume that last person to touch the code was any less than yourself.  They likely did what they did for a reason, so before you have strong test coverage accross the project take it easy with rewriting everything they did, and only make the necessary changes.  Your changes could have an impact on other parts of the code base that you are not familiar with.\n\nhttps://.youtube.com/watch?v=zQeYx87mfyw\n\n\n## [Jason Huggins - Keynote ](https://www.youtube.com/watch?v=q-x7jK72E6E)\n\nJason had a great talk about teaching kids to code through his experiences with First Lego League.  He found that the event has the best of intentions, but does lend itself to schools with a larger budget that is able to order many different kits.  He has found himself deep down a rabbit hole of finding an affordable alternative that can be done with the inexpensive raspbery pi zero, and controlled  with the cheapest tablets.  He is currently working on a programming language called wildcard, that can be programmed with paper.  This really reminds me of a game that I play with my 5 year old son [Robot Turtles](https://www.robotturtles.com).  He really likes to play it.  I will definitely be following this project to see if this is something that I can do with him when its ready.\n\nhttps://www.youtube.com/watch?v=q-x7jK72E6E\n\n## [Dan Callahan - Keynote - PyCon 2018](https://www.youtube.com/watch?v=ITksU31c1WY)\nI was a bit sad when I was looking through the list of PyCon 2018 talks and did not see anything that appeared to talk about web assembly, but hidden in Dan Callagan's keynote was a great story about web assembly and what it means to python.  Dan's keynote was a great story about using the best tools available to you.  He goes back to his childhood where he programmed in basic because thats what he could take with him away from the desktop on his TI-82.  In modern times we have so many platforms other than desktop, and new ones comming out so frequently that its impossible to see what the next one will be.  There are even computers in refrigerators today.  The one thing that seems to be common is that they all have a web browser.  With that we can write web apps with python, but we are still missing the JavaScript dominated client side story.  Dan shows that this is changing with web assembly.  He showed examples where Autodesk compiled Autocad to wasm, and can run it in the browser!!  He showed versions of windows 3 running completely inside of firefox.  While it is currenly not realistic to compile python to web assembly as it creates large file sizes, it is possible and he sees a bright future for python in the browser.\n\n\nhttps://www.youtube.com/watch?v=ITksU31c1WY\n\n## [Alex Petralia - Analyzing Data: What pandas and SQL Taught Me About Taking an Average](https://www.youtube.com/watch?v=DlgG0QdrqAU)\n\n\nAsks the right questions before writing the first line of code.  Even the simplest questions such as averages have many possible pitfalls along the way.  Alex discusses how to prepare your data before averaging in this talk.  He brings some new _\"Jargon\"_ .  I am not sure that this jargon made this any easier for me to understand or discuss.  It may take some time for this one to sink in to become effective.  I feel like using plain english is more effective as it is more easily understood by anyone.  \"find the **daily** average **sales** by **seller**\"\n### Jargon\n**Collapsing key:**\n* the collapsed/aggregated data relevant to this analysis\n* _we are overriding the primary key (i.e. what a table defines as an observation)_\n* the original number of rows\n\n**Grouping key:** the key defining a group**\n* _eg. \"for each Seller\" is (seller), \"for each Country and city is (Country, City)_\n* this defines how many rows are in the result\n\n** Obvervation key: a unit of observation for this analysis**\n* _eg. \"daily average\" is (Date), \"across regions\" is (Region)_\n* this defines how many rows are in the denominator\n\n### Formula\nCollapsing Key - Grouping Key = Observation Key\n\n### Example Question\nCalculate the Average Daily Sales for each Seller.\n\n**Collapsing Key:** (Date, Seller)\n**Grouping Key:** (Seller)\n**Observation Key:** (Date)\n\n### data set\n\n| id | Date    | Seller | ApplesSold |\n|----|---------|--------|------------|\n| 1  | Monday  | Mary   | 5          |\n| 1  | Monday  | Bob    | 4          |\n| 1  | Tuesday | Bob    | 8          |\n| 1  | Thursday| Jane   | 10         |\n| 1  | Thursday| Jane   | 6          |\n\n### SQL Example\n```SQL\nSELECT\n    Seller,\n    AVG(total)\nFROM (\n    SELECT\n       DATE,\n       SELLER,\n       SUM(ApplesSold) AS total\n    FROM\n       Apples\n    GROUP BY\n       DATE,\n       SELLER -- Collapsing Key\n    ) as t\nGROUP BY\n    Seller -- Grouping Key\n\n\n```\n### Pandas Example\nI am interested in trying out this technique of using the second groupby.  I typically use an unstack instead, but that relies on having the order of the Collapsing key correct.\n```python\n(pd\n    .groupby(['Date', 'Seller']) # Collapsing Key\n    ['ApplesSold']\n    .sum()\n    .groupby(level='Seller') # Grouping Key\n    .mean()\n    )\n```\n\n\nhttps://www.youtube.com/watch?v=DlgG0QdrqAU\n\n## [Devishi Jha - Teaching Python 101 - PyCon 2018](https://www.youtube.com/watch?v=s36GwDng904\u0026t=1113s)\n\nI was really impresssed by the professional level of presentation from Devishi from such a young age!  She had a great talk about teaching python to young people.  This talk really resonated with me as a father of two young children. She was advocating for python to be taught more frequently and earlier in schools.  In her opion onece students have a basic grasp of algebra they should be starting to use python over a higher level abstraction like scratch.  She also advocated that on the other Java tends to make computer science unaproachable and too difficult for students.  It is too large of a jump and tends to steer students away.\n\nhttps://www.youtube.com/watch?v=s36GwDng904\n",
      "summary": "none",
      "date_published": "2018-05-12T00:00:00Z",
      "date_modified": "2018-05-12T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/datacamp-sql/",
      "url": "https://go.waylonwalker.com/datacamp-sql/",
      "title": "Stepping Up My SQL Game",
      "content_html": "\u003cp\u003eIn 2018 I transitioned from a Product Engineering (Mechanical) role to a Data Scientist Role.  I entered this space with strong subject matter expertise with our products, our data, munging through data in pyhon, and data visualization in python.  My sql skills were lacking to say the least.  I had learned what I needed to know to get data from our relational databases, then use pandas to do any further analysis.    Just run something like the following and you have data.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eSELECT\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"o\"\u003e*\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"k\"\u003eFROM\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"k\"\u003eTable\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"k\"\u003eWhere\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"n\"\u003ecol_1\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;col_1_filter\u0026#39;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eThis technique works great for small data sets that you only need to run once.  There is no shame to pull in a big dataset and start munging with it in pandas to get some results, and make decisions.  The problem becomes when your dataset becomes too big or you need to run the query on a frequent basis.  Doing the aggregations on the server run much quicker, as it reduces the time spent in io.  My longest running steps are currently io related.  Reducing these steps have improved my workflow.  At the point that I was getting server timeout errors, or using the same long running query in many places I would be searching for examples online, because I just did not have the experience with many more techniques.  I decided it was time to put away the cheat sheets, step away from Stack Overflow, and improve my speed.\u003c/p\u003e\n\u003ch2 id=\"why-learn-sql-in-2018\"\u003eWhy Learn SQL in 2018?? \u003ca href=\"#why-learn-sql-in-2018\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eSQL is far from the hot topic in 2018, AI, Deep Learning, BIG data, Machine Learning, Natural Language Processing take the win here.  SQL is so simple why would anyone want to spend time learning SQL?  The reason… all of those hot topics in 2018 require data.  My data mostly comes from relational databases which require sql to get data from them.  Without the ability to efficiently get the data I need to do an aanlysis I cannot even start.  Sure I could use an ORM, but I found that to be a bit unwieldy with the thousands of tables  we have in formats that were determined many years ago. Plus raw SQL is more transportable.  I commonly collaborate with other folks who do not use python.  I am proud that I am able to point them to the SQL I use rather than telling them to suck it up an learn python.  I truly believe that people are the most effective when they are able to choose their own stack of tools.  Taking some time to focus on the basics of Data Science will help be build a strong foundation for my career.\u003c/p\u003e\n\u003ch2 id=\"joining-data-in-posgreshttpscampusdatacampcomcoursesjoining-data-in-postgresql\"\u003e\u003ca href=\"https://campus.datacamp.com/courses/joining-data-in-postgresql\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/campus.datacamp.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/campus.datacamp.com.png\" class=\"has-avatar  has-avatar-before\"\u003eJoining Data in Posgres\u003c/a\u003e \u003ca href=\"#joining-data-in-posgreshttpscampusdatacampcomcoursesjoining-data-in-postgresql\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eBelow are my notes from the \u003ca href=\"https://campus.datacamp.com/courses/joining-data-in-postgresql\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/campus.datacamp.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/campus.datacamp.com.png\" class=\"has-avatar  has-avatar-before\"\u003eJoining Data in Posgres\u003c/a\u003e\ncourse on DataCamp.  I will use these notes as a refresher when I need a quick reference.\u003c/p\u003e\n\u003ch3 id=\"using\"\u003eUsing() \u003ca href=\"#using\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eWhen joining two tables on the same column the \u003ccode\u003eUSING\u003c/code\u003e clause can be used as a shorthand.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ewithout using\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eSELECT\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"o\"\u003e*\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"k\"\u003eFROM\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"n\"\u003eTable1\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"k\"\u003eas\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"n\"\u003et1\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"k\"\u003eLEFT\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"k\"\u003eJOIN\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"n\"\u003eTable2\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"k\"\u003eas\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"n\"\u003et2\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"k\"\u003eON\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"n\"\u003et1\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eid\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"n\"\u003et2\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eid\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003ewith using\u003c/strong\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eSELECT\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"o\"\u003e*\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"k\"\u003eFROM\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"n\"\u003eTable1\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"k\"\u003eas\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"n\"\u003et1\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"k\"\u003eLEFT\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"k\"\u003eJOIN\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"n\"\u003eTable2\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"k\"\u003eas\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"n\"\u003et2\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"k\"\u003eUSING\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eid\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch3 id=\"join-types\"\u003eJoin Types \u003ca href=\"#join-types\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003e\u003cem\u003efor joining columns of data together into a single table\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eINNER\u003c/code\u003e: Includes only records contained in \u003cstrong\u003eboth\u003c/strong\u003e tables.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eRIGHT\u003c/code\u003e: Inlcudes all records from the \u003cstrong\u003eright\u003c/strong\u003e, droping values from the left if non-existent in the right, or leaving nulls if non-existant in the left.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eLEFT\u003c/code\u003e: Inlcudes all records from the \u003cstrong\u003eleft\u003c/strong\u003e, droping values from the right if non-existent in the left, or leaving nulls if non-existant in the right.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eFULL\u003c/code\u003e: Combination of \u003ccode\u003eLeft\u003c/code\u003e and \u003ccode\u003eRight\u003c/code\u003e Join, leaving nulls where data is missing in one table, and not droping any data.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eCROSS\u003c/code\u003e: returns all \u003cstrong\u003epairs\u003c/strong\u003e from two tables, does not have an on or using clause.\u003c/p\u003e\n\u003ch3 id=\"union\"\u003eUnion \u003ca href=\"#union\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003e\u003cem\u003efor concatenating rows of data with the same columns\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eUnion\u003c/code\u003e: returns only unique records, does not include duplicates.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eUnion All\u003c/code\u003e: returns all records(including duplicates)\u003c/p\u003e\n\u003ch3 id=\"intersect\"\u003eIntersect \u003ca href=\"#intersect\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003eIntersect\u003c/code\u003e: returns only records appearing in both tables\u003c/p\u003e\n\u003ch3 id=\"execpt\"\u003eExecpt \u003ca href=\"#execpt\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003eExcept\u003c/code\u003e: returns only records not in the second table\u003c/p\u003e\n\u003ch3 id=\"self-joins\"\u003eSelf-Joins \u003ca href=\"#self-joins\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003eSemi-Join\u003c/code\u003e: Filters based on results of a subquery.  Does not have direct sql syntax.  This type of join is achieved through a subquery in the where statement.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eAnti-Join\u003c/code\u003e: Similar to the Semi-join, but using a \u003ccode\u003enot\u003c/code\u003e modifier.  This is particularly useful for debugging situations.\u003c/p\u003e\n\u003ch3 id=\"subqueries\"\u003eSubqueries \u003ca href=\"#subqueries\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eThis is where I have really stepped up my sql game.  I was able to get practice writing more complex queries. I also learned about different methods of joining tables together.\u003c/p\u003e\n\u003ch4 id=\"where\"\u003eWHERE \u003ca href=\"#where\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h4\u003e\n\u003cp\u003eSubqueries are commonly found in the where clause to filter data.  Below is an example given in the course to select only the Asian countries with below average fertility rate from the states table.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eSELECT\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e   \u003c/span\u003e\u003cspan class=\"n\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e   \u003c/span\u003e\u003cspan class=\"n\"\u003efert_rate\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"k\"\u003eFROM\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"n\"\u003estates\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"k\"\u003eWHERE\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"n\"\u003econtinent\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;Asia\u0026#39;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"k\"\u003eAND\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"n\"\u003efert_rate\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"k\"\u003eSELECT\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"k\"\u003eAVG\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003efert_rate\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e         \u003c/span\u003e\u003cspan class=\"k\"\u003eFROM\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"n\"\u003estates\u003c/span\u003e\u003cspan class=\"p\"\u003e;)\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch4 id=\"select\"\u003eSELECT \u003ca href=\"#select\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h4\u003e\n\u003cp\u003eSubqueries can be found in the \u003ccode\u003eSELECT\u003c/code\u003e clause to create new columns of data.  This is a different technique than I have used in the past.  Previously I have only used \u003ccode\u003eGROUPBY\u003c/code\u003e statements to get this effect.  I can see where this can be really useful because it is not constrained by aggregations any data point can be pulled in with this tecnhique.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eSELECT\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"k\"\u003eDISTINCT\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"n\"\u003econtinent\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"k\"\u003eSELECT\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"k\"\u003eCOUNT\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"o\"\u003e*\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e     \u003c/span\u003e\u003cspan class=\"k\"\u003eFROM\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"n\"\u003estates\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e     \u003c/span\u003e\u003cspan class=\"k\"\u003eWHERE\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"n\"\u003eprime_ministers\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003econtinent\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"n\"\u003estates\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003econtinent\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"k\"\u003eAS\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"n\"\u003ecountries_num\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"k\"\u003eFrom\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"n\"\u003ePrime\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"n\"\u003eMinisters\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch4 id=\"from\"\u003eFROM \u003ca href=\"#from\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h4\u003e\n\u003cp\u003esubqueries found in the \u003ccode\u003eFROM\u003c/code\u003e clause can be very helpful to create a new dataset from an existing table.  I find these the easiest to read as it is not much different than creating a new table.  Again this can be very powerful in creating new columns that were not easily available otherwise.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eSELECT\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"k\"\u003eDISTINCT\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"n\"\u003emonarchs\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003econtinent\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"n\"\u003esubquery\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003emax_perc\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"k\"\u003eFROM\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"n\"\u003emonarchs\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"k\"\u003eSELECT\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"n\"\u003econtinent\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"k\"\u003eMAX\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ewomen_parli_perc\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"k\"\u003eAS\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"n\"\u003emax_perc\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"k\"\u003eFROM\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"n\"\u003estates\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"k\"\u003eGROUP\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"k\"\u003eBY\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"n\"\u003econtinent\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"k\"\u003eas\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"n\"\u003esubquery\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"k\"\u003eWHERE\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"n\"\u003emonarchs\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003econtinent\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"n\"\u003esubquery\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003econtinent\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"k\"\u003eORDER\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"k\"\u003eBY\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"n\"\u003econtinent\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch4 id=\"on\"\u003eON \u003ca href=\"#on\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h4\u003e\n\u003cp\u003e\u003cstrong\u003eChallenge Problem 1\u003c/strong\u003e  This problem was the one that had me more stumped than any other problem in the course.  I found the subquery inside the on statement very confusing to understand.  In this question we are joining the countries table to a subquery what yields country codes of countries with offial languages from the languages table.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eSELECT\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"k\"\u003eDISTINCT\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"k\"\u003ec\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"n\"\u003ee\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003etotal_investment\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"n\"\u003ee\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eimports\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"k\"\u003eFROM\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"n\"\u003ecountries\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"k\"\u003eas\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"k\"\u003ec\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"k\"\u003eLEFT\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"k\"\u003eJOIN\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"n\"\u003eeconomies\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"k\"\u003eas\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"n\"\u003ee\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"k\"\u003eON\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"k\"\u003ec\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ecode\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"n\"\u003ee\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ecode\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"k\"\u003eAND\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"k\"\u003ec\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ecode\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"k\"\u003ein\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"k\"\u003eSELECT\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"n\"\u003el\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ecode\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"k\"\u003eFROM\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"n\"\u003elanguages\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"k\"\u003eas\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"n\"\u003el\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"k\"\u003eWHERE\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"n\"\u003eofficial\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"k\"\u003etrue\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"k\"\u003eWHERE\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"k\"\u003ec\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eregion\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;Central America\u0026#39;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"k\"\u003eAND\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"n\"\u003ee\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"k\"\u003eyear\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"mi\"\u003e2015\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e\u003c/span\u003e\u003cspan class=\"k\"\u003eORDER\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"k\"\u003eBY\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"k\"\u003ec\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ename\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"k\"\u003easc\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nIn 2018 I transitioned from a Product Engineering (Mechanical) role to a Data Scientist Role.  I entered this space with strong subject matter expertise with our products, our data, munging through data in pyhon, and data visualization in python.  My sql skills were lacking to say the least.  I had learned what I needed to know to get data from our relational databases, then use pandas to do any further analysis.    Just run something like the following and you have data.\n\n``` sql\nSELECT\n    *\nFROM\n    Table\nWhere\n    col_1 = 'col_1_filter'\n```\n\nThis technique works great for small data sets that you only need to run once.  There is no shame to pull in a big dataset and start munging with it in pandas to get some results, and make decisions.  The problem becomes when your dataset becomes too big or you need to run the query on a frequent basis.  Doing the aggregations on the server run much quicker, as it reduces the time spent in io.  My longest running steps are currently io related.  Reducing these steps have improved my workflow.  At the point that I was getting server timeout errors, or using the same long running query in many places I would be searching for examples online, because I just did not have the experience with many more techniques.  I decided it was time to put away the cheat sheets, step away from Stack Overflow, and improve my speed.\n\n## Why Learn SQL in 2018??\n\nSQL is far from the hot topic in 2018, AI, Deep Learning, BIG data, Machine Learning, Natural Language Processing take the win here.  SQL is so simple why would anyone want to spend time learning SQL?  The reason... all of those hot topics in 2018 require data.  My data mostly comes from relational databases which require sql to get data from them.  Without the ability to efficiently get the data I need to do an aanlysis I cannot even start.  Sure I could use an ORM, but I found that to be a bit unwieldy with the thousands of tables  we have in formats that were determined many years ago. Plus raw SQL is more transportable.  I commonly collaborate with other folks who do not use python.  I am proud that I am able to point them to the SQL I use rather than telling them to suck it up an learn python.  I truly believe that people are the most effective when they are able to choose their own stack of tools.  Taking some time to focus on the basics of Data Science will help be build a strong foundation for my career.\n\n## [Joining Data in Posgres](https://campus.datacamp.com/courses/joining-data-in-postgresql)\n\nBelow are my notes from the [Joining Data in Posgres](https://campus.datacamp.com/courses/joining-data-in-postgresql)\ncourse on DataCamp.  I will use these notes as a refresher when I need a quick reference.\n\n### Using()\nWhen joining two tables on the same column the ```USING``` clause can be used as a shorthand.\n\n**without using**\n```sql\nSELECT *\n\nFROM\n    Table1 as t1\n\nLEFT JOIN\n    Table2 as t2\n    ON t1.id = t2.id\n```\n\n**with using**\n```sql\nSELECT\n    *\n\nFROM\n    Table1 as t1\n\nLEFT JOIN\n    Table2 as t2\n    USING (id)\n```\n\n### Join Types\n_for joining columns of data together into a single table_\n\n```INNER```: Includes only records contained in **both** tables.\n\n```RIGHT```: Inlcudes all records from the **right**, droping values from the left if non-existent in the right, or leaving nulls if non-existant in the left.\n\n```LEFT```: Inlcudes all records from the **left**, droping values from the right if non-existent in the left, or leaving nulls if non-existant in the right.\n\n```FULL```: Combination of ```Left``` and ```Right``` Join, leaving nulls where data is missing in one table, and not droping any data.\n\n```CROSS```: returns all **pairs** from two tables, does not have an on or using clause.\n\n### Union\n_for concatenating rows of data with the same columns_\n\n```Union```: returns only unique records, does not include duplicates.\n\n```Union All```: returns all records(including duplicates)\n\n### Intersect\n\n```Intersect```: returns only records appearing in both tables\n\n### Execpt\n\n```Except```: returns only records not in the second table\n\n### Self-Joins\n\n```Semi-Join```: Filters based on results of a subquery.  Does not have direct sql syntax.  This type of join is achieved through a subquery in the where statement.\n\n```Anti-Join```: Similar to the Semi-join, but using a ```not``` modifier.  This is particularly useful for debugging situations.\n\n### Subqueries\n\nThis is where I have really stepped up my sql game.  I was able to get practice writing more complex queries. I also learned about different methods of joining tables together.\n\n#### WHERE\n\nSubqueries are commonly found in the where clause to filter data.  Below is an example given in the course to select only the Asian countries with below average fertility rate from the states table.\n\n``` sql\nSELECT\n   name,\n   fert_rate\nFROM\n    states\nWHERE\n    continent = 'Asia'\nAND fert_rate \u003c\n        (SELECT AVG(fert_rate)\n         FROM states;)\n```\n\n#### SELECT\n\nSubqueries can be found in the `SELECT` clause to create new columns of data.  This is a different technique than I have used in the past.  Previously I have only used `GROUPBY` statements to get this effect.  I can see where this can be really useful because it is not constrained by aggregations any data point can be pulled in with this tecnhique.\n\n``` sql\nSELECT DISTINCT\n    continent,\n    (SELECT\n        COUNT(*)\n     FROM\n        states\n     WHERE\n        prime_ministers.continent = states.continent\n    ) AS countries_num\n\nFrom Prime Ministers\n```\n\n#### FROM\n\nsubqueries found in the `FROM` clause can be very helpful to create a new dataset from an existing table.  I find these the easiest to read as it is not much different than creating a new table.  Again this can be very powerful in creating new columns that were not easily available otherwise.\n\n\n``` sql\nSELECT DISTINCT\n    monarchs.continent,\n    subquery.max_perc\n\nFROM\n    monarchs,\n    (SELECT\n        continent,\n        MAX(women_parli_perc) AS max_perc\n\n    FROM\n        states\n\n    GROUP BY\n        continent\n    ) as subquery\n\nWHERE\n    monarchs.continent = subquery.continent\n\nORDER BY\n    continent;\n```\n\n#### ON\n\n**Challenge Problem 1**  This problem was the one that had me more stumped than any other problem in the course.  I found the subquery inside the on statement very confusing to understand.  In this question we are joining the countries table to a subquery what yields country codes of countries with offial languages from the languages table.\n\n``` sql\nSELECT DISTINCT\n    c.name,\n    e.total_investment,\n    e.imports\n\nFROM\n    countries as c\nLEFT JOIN\n    economies as e\n    ON c.code = e.code\n\n    AND c.code in (\n    SELECT\n        l.code\n    FROM\n        languages as l\n    WHERE\n        official = true\n    )\n\nWHERE\n    c.region = 'Central America'\nAND e.year = 2015\n\nORDER BY\n    c.name asc;\n```\n\n",
      "summary": "none",
      "date_published": "2018-03-25T00:00:00Z",
      "date_modified": "2018-03-25T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "data",
        "sql"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/pandas-pattern/",
      "url": "https://go.waylonwalker.com/pandas-pattern/",
      "title": "My favorite pandas pattern",
      "content_html": "\u003ch1 id=\"my-favorite-pandas-pattern\"\u003eMy favorite pandas pattern\u003c/h1\u003e\n\u003cp\u003eI work with a lot of transactional timeseries data that includes categories. I often want to create timeseries plots with each category as its own line. This is the method that I use almost data to achieve this result. Typically the data that am working with changes very slowly and trends happen over years not days or weeks. Plotting daily/weekly data tends to be noisy and hides the trend. I use this pattern because it works well with my data and is easy to explain to my stakeholders.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003epandas\u003c/span\u003e \u003cspan class=\"k\"\u003eas\u003c/span\u003e \u003cspan class=\"nn\"\u003epd\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003enumpy\u003c/span\u003e \u003cspan class=\"k\"\u003eas\u003c/span\u003e \u003cspan class=\"nn\"\u003enp\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e%\u003c/span\u003e \u003cspan class=\"n\"\u003ematplotlib\u003c/span\u003e \u003cspan class=\"n\"\u003einline\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"lets-fake-some-data\"\u003eLets Fake some data \u003ca href=\"#lets-fake-some-data\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eHere I am trying to simulate a subset of a large transactional data set. This could be something like sales data, production data, hourly billing, anything that has a date, category, and value. Since we generated this data we know that it is clean. I am still going to assume that it contains some nulls, and an irregular date range.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003en\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"mi\"\u003e365\u003c/span\u003e\u003cspan class=\"o\"\u003e*\u003c/span\u003e\u003cspan class=\"mi\"\u003e5\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ecols\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;level_0\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;date\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s1\"\u003e\u0026#39;level_1\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;item\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;qty\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003edata\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003epd\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eDataFrame\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003enp\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003erandom\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003erandint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mi\"\u003e10\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003esize\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003en\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mi\"\u003e4\u003c/span\u003e\u003cspan class=\"p\"\u003e)),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                     \u003cspan class=\"n\"\u003ecolumns\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;paper\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;pencils\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;note cards\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;markers\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e],\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                     \u003cspan class=\"n\"\u003eindex\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003epd\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003edate_range\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;1/1/2017\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eperiods\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003en\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003efreq\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;d\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                     \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003estack\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eto_frame\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ereset_index\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003erename\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ecolumns\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003ecols\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003edata\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ehead\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cdiv\u003e\n\u003cstyle scoped=\"\"\u003e\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\u003cpre\u003e\u003ccode\u003e.dataframe tbody tr th {\n    vertical-align: top;\n}\n\n.dataframe thead th {\n    text-align: right;\n}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003c/style\u003e\u003cp\u003e\u003c/p\u003e\n\u003ctable border=\"1\" class=\"dataframe\"\u003e\n  \u003cthead\u003e\n    \u003ctr style=\"text-align: right;\"\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003edate\u003c/th\u003e\n      \u003cth\u003eitem\u003c/th\u003e\n      \u003cth\u003eqty\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003cth\u003e0\u003c/th\u003e\n      \u003ctd\u003e2017-01-01\u003c/td\u003e\n      \u003ctd\u003epaper\u003c/td\u003e\n      \u003ctd\u003e1\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e1\u003c/th\u003e\n      \u003ctd\u003e2017-01-01\u003c/td\u003e\n      \u003ctd\u003epencils\u003c/td\u003e\n      \u003ctd\u003e4\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2\u003c/th\u003e\n      \u003ctd\u003e2017-01-01\u003c/td\u003e\n      \u003ctd\u003enote cards\u003c/td\u003e\n      \u003ctd\u003e5\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e3\u003c/th\u003e\n      \u003ctd\u003e2017-01-01\u003c/td\u003e\n      \u003ctd\u003emarkers\u003c/td\u003e\n      \u003ctd\u003e9\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e4\u003c/th\u003e\n      \u003ctd\u003e2017-01-02\u003c/td\u003e\n      \u003ctd\u003epaper\u003c/td\u003e\n      \u003ctd\u003e3\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\u003ch2 id=\"the-pattern\"\u003eThe pattern \u003ca href=\"#the-pattern\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eHere I am going to take my groupby date and item, this will take care of duplicate entries with the same time stamp. Select the value I want to sum on. unstack the items index into columns. Resample the data by month. I could easily use any of the \u003ca href=\"https://pandas.pydata.org/pandas-docs/stable/timeseries.html#offset-aliases\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/pandas.pydata.org.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/pandas.pydata.org.ico\" class=\"has-avatar  has-avatar-before\"\u003eavailable rules\u003c/a\u003e. Fill any missing months with 0, since there wasnt a transaction during that month. Apply a rolling window to get the annual sum. I find that this helps to ground values in values that my stakeholders are used to seeing on a regular basis and reduces the need for them to recalculate in their head. Then I am going to drop the nulls created by the rolling window for the first 11 rows.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eplot_data\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003edata\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e             \u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003egroupby\u003c/span\u003e\u003cspan class=\"p\"\u003e([\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;date\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;item\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e])\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e             \u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003esum\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e             \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;qty\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e             \u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eunstack\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e             \u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eresample\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;m\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e             \u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003esum\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e             \u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003efillna\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e             \u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003erolling\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e12\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e             \u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003esum\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e             \u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003edropna\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e             \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eplot_data\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ehead\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cdiv\u003e\n\u003cstyle scoped=\"\"\u003e\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\u003cpre\u003e\u003ccode\u003e.dataframe tbody tr th {\n    vertical-align: top;\n}\n\n.dataframe thead th {\n    text-align: right;\n}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003c/style\u003e\u003cp\u003e\u003c/p\u003e\n\u003ctable border=\"1\" class=\"dataframe\"\u003e\n  \u003cthead\u003e\n    \u003ctr style=\"text-align: right;\"\u003e\n      \u003cth\u003eitem\u003c/th\u003e\n      \u003cth\u003emarkers\u003c/th\u003e\n      \u003cth\u003enote cards\u003c/th\u003e\n      \u003cth\u003epaper\u003c/th\u003e\n      \u003cth\u003epencils\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003edate\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-12-31\u003c/th\u003e\n      \u003ctd\u003e1543.0\u003c/td\u003e\n      \u003ctd\u003e1739.0\u003c/td\u003e\n      \u003ctd\u003e1613.0\u003c/td\u003e\n      \u003ctd\u003e1657.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-01-31\u003c/th\u003e\n      \u003ctd\u003e1572.0\u003c/td\u003e\n      \u003ctd\u003e1744.0\u003c/td\u003e\n      \u003ctd\u003e1635.0\u003c/td\u003e\n      \u003ctd\u003e1635.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-02-28\u003c/th\u003e\n      \u003ctd\u003e1563.0\u003c/td\u003e\n      \u003ctd\u003e1717.0\u003c/td\u003e\n      \u003ctd\u003e1645.0\u003c/td\u003e\n      \u003ctd\u003e1645.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-03-31\u003c/th\u003e\n      \u003ctd\u003e1596.0\u003c/td\u003e\n      \u003ctd\u003e1703.0\u003c/td\u003e\n      \u003ctd\u003e1629.0\u003c/td\u003e\n      \u003ctd\u003e1600.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-04-30\u003c/th\u003e\n      \u003ctd\u003e1557.0\u003c/td\u003e\n      \u003ctd\u003e1693.0\u003c/td\u003e\n      \u003ctd\u003e1648.0\u003c/td\u003e\n      \u003ctd\u003e1581.0\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eplot_data\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eplot\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003etitle\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;Rolling annual sum of Categorical Random Data\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"for-the-visual-learners\"\u003eFor the Visual Learners \u003ca href=\"#for-the-visual-learners\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch3 id=\"groupby\"\u003eGroupby \u003ca href=\"#groupby\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eplot_data\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003edata\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e             \u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003egroupby\u003c/span\u003e\u003cspan class=\"p\"\u003e([\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;date\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;item\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e])\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e             \u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003esum\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e             \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eplot_data\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ehead\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cdiv\u003e\n\u003cstyle scoped=\"\"\u003e\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\u003cpre\u003e\u003ccode\u003e.dataframe tbody tr th {\n    vertical-align: top;\n}\n\n.dataframe thead th {\n    text-align: right;\n}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003c/style\u003e\u003cp\u003e\u003c/p\u003e\n\u003ctable border=\"1\" class=\"dataframe\"\u003e\n  \u003cthead\u003e\n    \u003ctr style=\"text-align: right;\"\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003eqty\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003edate\u003c/th\u003e\n      \u003cth\u003eitem\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003cth rowspan=\"4\" valign=\"top\"\u003e2017-01-01\u003c/th\u003e\n      \u003cth\u003emarkers\u003c/th\u003e\n      \u003ctd\u003e9\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003enote cards\u003c/th\u003e\n      \u003ctd\u003e5\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003epaper\u003c/th\u003e\n      \u003ctd\u003e1\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003epencils\u003c/th\u003e\n      \u003ctd\u003e4\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-01-02\u003c/th\u003e\n      \u003cth\u003emarkers\u003c/th\u003e\n      \u003ctd\u003e4\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\u003ch3 id=\"select-values\"\u003eSelect Values \u003ca href=\"#select-values\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eIn this case I chose to do this to avoid working with a multiple levels in the columns that would be created in the unstack() step.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eplot_data\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eplot_data\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;qty\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eplot_data\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ehead\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre\u003e\u003ccode\u003edate        item\n2017-01-01  markers       9\n            note cards    5\n            paper         1\n            pencils       4\n2017-01-02  markers       4\nName: qty, dtype: int32\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3 id=\"unstack\"\u003eunstack \u003ca href=\"#unstack\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003etransform the last column in the index (‘item’) into rows.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eplot_data\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eplot_data\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eunstack\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eplot_data\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ehead\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cdiv\u003e\n\u003cstyle scoped=\"\"\u003e\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\u003cpre\u003e\u003ccode\u003e.dataframe tbody tr th {\n    vertical-align: top;\n}\n\n.dataframe thead th {\n    text-align: right;\n}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003c/style\u003e\u003cp\u003e\u003c/p\u003e\n\u003ctable border=\"1\" class=\"dataframe\"\u003e\n  \u003cthead\u003e\n    \u003ctr style=\"text-align: right;\"\u003e\n      \u003cth\u003eitem\u003c/th\u003e\n      \u003cth\u003emarkers\u003c/th\u003e\n      \u003cth\u003enote cards\u003c/th\u003e\n      \u003cth\u003epaper\u003c/th\u003e\n      \u003cth\u003epencils\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003edate\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-01-01\u003c/th\u003e\n      \u003ctd\u003e9\u003c/td\u003e\n      \u003ctd\u003e5\u003c/td\u003e\n      \u003ctd\u003e1\u003c/td\u003e\n      \u003ctd\u003e4\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-01-02\u003c/th\u003e\n      \u003ctd\u003e4\u003c/td\u003e\n      \u003ctd\u003e2\u003c/td\u003e\n      \u003ctd\u003e3\u003c/td\u003e\n      \u003ctd\u003e7\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-01-03\u003c/th\u003e\n      \u003ctd\u003e9\u003c/td\u003e\n      \u003ctd\u003e5\u003c/td\u003e\n      \u003ctd\u003e2\u003c/td\u003e\n      \u003ctd\u003e3\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-01-04\u003c/th\u003e\n      \u003ctd\u003e2\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n      \u003ctd\u003e5\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-01-05\u003c/th\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n      \u003ctd\u003e1\u003c/td\u003e\n      \u003ctd\u003e6\u003c/td\u003e\n      \u003ctd\u003e2\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\u003ch3 id=\"resample\"\u003eresample \u003ca href=\"#resample\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eThis step is important for irregular data in order to get the data into regular intervals.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eplot_data\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eplot_data\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eresample\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;m\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003esum\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eplot_data\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ehead\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cdiv\u003e\n\u003cstyle scoped=\"\"\u003e\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\u003cpre\u003e\u003ccode\u003e.dataframe tbody tr th {\n    vertical-align: top;\n}\n\n.dataframe thead th {\n    text-align: right;\n}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003c/style\u003e\u003cp\u003e\u003c/p\u003e\n\u003ctable border=\"1\" class=\"dataframe\"\u003e\n  \u003cthead\u003e\n    \u003ctr style=\"text-align: right;\"\u003e\n      \u003cth\u003eitem\u003c/th\u003e\n      \u003cth\u003emarkers\u003c/th\u003e\n      \u003cth\u003enote cards\u003c/th\u003e\n      \u003cth\u003epaper\u003c/th\u003e\n      \u003cth\u003epencils\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003edate\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-01-31\u003c/th\u003e\n      \u003ctd\u003e145\u003c/td\u003e\n      \u003ctd\u003e128\u003c/td\u003e\n      \u003ctd\u003e117\u003c/td\u003e\n      \u003ctd\u003e146\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-02-28\u003c/th\u003e\n      \u003ctd\u003e136\u003c/td\u003e\n      \u003ctd\u003e140\u003c/td\u003e\n      \u003ctd\u003e133\u003c/td\u003e\n      \u003ctd\u003e135\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-03-31\u003c/th\u003e\n      \u003ctd\u003e112\u003c/td\u003e\n      \u003ctd\u003e145\u003c/td\u003e\n      \u003ctd\u003e125\u003c/td\u003e\n      \u003ctd\u003e163\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-04-30\u003c/th\u003e\n      \u003ctd\u003e143\u003c/td\u003e\n      \u003ctd\u003e148\u003c/td\u003e\n      \u003ctd\u003e112\u003c/td\u003e\n      \u003ctd\u003e147\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-05-31\u003c/th\u003e\n      \u003ctd\u003e86\u003c/td\u003e\n      \u003ctd\u003e134\u003c/td\u003e\n      \u003ctd\u003e139\u003c/td\u003e\n      \u003ctd\u003e141\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\u003ch3 id=\"rolling\"\u003erolling \u003ca href=\"#rolling\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eI like to use rolling because it get the data into annual numbers, and reduces noise. I have found that most of my datasets have patterns and trends that are greater than 1y. This is just due to the industry that I am in. Play with the resample and rolling rules to fit the need of your own data.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eplot_data\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eplot_data\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003erolling\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e12\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003esum\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eplot_data\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ehead\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e20\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cdiv\u003e\n\u003cstyle scoped=\"\"\u003e\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\u003cpre\u003e\u003ccode\u003e.dataframe tbody tr th {\n    vertical-align: top;\n}\n\n.dataframe thead th {\n    text-align: right;\n}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003c/style\u003e\u003cp\u003e\u003c/p\u003e\n\u003ctable border=\"1\" class=\"dataframe\"\u003e\n  \u003cthead\u003e\n    \u003ctr style=\"text-align: right;\"\u003e\n      \u003cth\u003eitem\u003c/th\u003e\n      \u003cth\u003emarkers\u003c/th\u003e\n      \u003cth\u003enote cards\u003c/th\u003e\n      \u003cth\u003epaper\u003c/th\u003e\n      \u003cth\u003epencils\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003edate\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-01-31\u003c/th\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-02-28\u003c/th\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-03-31\u003c/th\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-04-30\u003c/th\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-05-31\u003c/th\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-06-30\u003c/th\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-07-31\u003c/th\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-08-31\u003c/th\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-09-30\u003c/th\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-10-31\u003c/th\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-11-30\u003c/th\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-12-31\u003c/th\u003e\n      \u003ctd\u003e1543.0\u003c/td\u003e\n      \u003ctd\u003e1739.0\u003c/td\u003e\n      \u003ctd\u003e1613.0\u003c/td\u003e\n      \u003ctd\u003e1657.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-01-31\u003c/th\u003e\n      \u003ctd\u003e1572.0\u003c/td\u003e\n      \u003ctd\u003e1744.0\u003c/td\u003e\n      \u003ctd\u003e1635.0\u003c/td\u003e\n      \u003ctd\u003e1635.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-02-28\u003c/th\u003e\n      \u003ctd\u003e1563.0\u003c/td\u003e\n      \u003ctd\u003e1717.0\u003c/td\u003e\n      \u003ctd\u003e1645.0\u003c/td\u003e\n      \u003ctd\u003e1645.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-03-31\u003c/th\u003e\n      \u003ctd\u003e1596.0\u003c/td\u003e\n      \u003ctd\u003e1703.0\u003c/td\u003e\n      \u003ctd\u003e1629.0\u003c/td\u003e\n      \u003ctd\u003e1600.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-04-30\u003c/th\u003e\n      \u003ctd\u003e1557.0\u003c/td\u003e\n      \u003ctd\u003e1693.0\u003c/td\u003e\n      \u003ctd\u003e1648.0\u003c/td\u003e\n      \u003ctd\u003e1581.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-05-31\u003c/th\u003e\n      \u003ctd\u003e1624.0\u003c/td\u003e\n      \u003ctd\u003e1674.0\u003c/td\u003e\n      \u003ctd\u003e1632.0\u003c/td\u003e\n      \u003ctd\u003e1592.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-06-30\u003c/th\u003e\n      \u003ctd\u003e1582.0\u003c/td\u003e\n      \u003ctd\u003e1645.0\u003c/td\u003e\n      \u003ctd\u003e1657.0\u003c/td\u003e\n      \u003ctd\u003e1593.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-07-31\u003c/th\u003e\n      \u003ctd\u003e1662.0\u003c/td\u003e\n      \u003ctd\u003e1654.0\u003c/td\u003e\n      \u003ctd\u003e1680.0\u003c/td\u003e\n      \u003ctd\u003e1613.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-08-31\u003c/th\u003e\n      \u003ctd\u003e1654.0\u003c/td\u003e\n      \u003ctd\u003e1617.0\u003c/td\u003e\n      \u003ctd\u003e1650.0\u003c/td\u003e\n      \u003ctd\u003e1616.0\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\u003ch3 id=\"dropna\"\u003edropna \u003ca href=\"#dropna\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eget rid of the first 11 null rows\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eplot_data\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eplot_data\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003edropna\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eplot_data\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ehead\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e10\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cdiv\u003e\n\u003cstyle scoped=\"\"\u003e\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\u003cpre\u003e\u003ccode\u003e.dataframe tbody tr th {\n    vertical-align: top;\n}\n\n.dataframe thead th {\n    text-align: right;\n}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003c/style\u003e\u003cp\u003e\u003c/p\u003e\n\u003ctable border=\"1\" class=\"dataframe\"\u003e\n  \u003cthead\u003e\n    \u003ctr style=\"text-align: right;\"\u003e\n      \u003cth\u003eitem\u003c/th\u003e\n      \u003cth\u003emarkers\u003c/th\u003e\n      \u003cth\u003enote cards\u003c/th\u003e\n      \u003cth\u003epaper\u003c/th\u003e\n      \u003cth\u003epencils\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003edate\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-12-31\u003c/th\u003e\n      \u003ctd\u003e1543.0\u003c/td\u003e\n      \u003ctd\u003e1739.0\u003c/td\u003e\n      \u003ctd\u003e1613.0\u003c/td\u003e\n      \u003ctd\u003e1657.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-01-31\u003c/th\u003e\n      \u003ctd\u003e1572.0\u003c/td\u003e\n      \u003ctd\u003e1744.0\u003c/td\u003e\n      \u003ctd\u003e1635.0\u003c/td\u003e\n      \u003ctd\u003e1635.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-02-28\u003c/th\u003e\n      \u003ctd\u003e1563.0\u003c/td\u003e\n      \u003ctd\u003e1717.0\u003c/td\u003e\n      \u003ctd\u003e1645.0\u003c/td\u003e\n      \u003ctd\u003e1645.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-03-31\u003c/th\u003e\n      \u003ctd\u003e1596.0\u003c/td\u003e\n      \u003ctd\u003e1703.0\u003c/td\u003e\n      \u003ctd\u003e1629.0\u003c/td\u003e\n      \u003ctd\u003e1600.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-04-30\u003c/th\u003e\n      \u003ctd\u003e1557.0\u003c/td\u003e\n      \u003ctd\u003e1693.0\u003c/td\u003e\n      \u003ctd\u003e1648.0\u003c/td\u003e\n      \u003ctd\u003e1581.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-05-31\u003c/th\u003e\n      \u003ctd\u003e1624.0\u003c/td\u003e\n      \u003ctd\u003e1674.0\u003c/td\u003e\n      \u003ctd\u003e1632.0\u003c/td\u003e\n      \u003ctd\u003e1592.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-06-30\u003c/th\u003e\n      \u003ctd\u003e1582.0\u003c/td\u003e\n      \u003ctd\u003e1645.0\u003c/td\u003e\n      \u003ctd\u003e1657.0\u003c/td\u003e\n      \u003ctd\u003e1593.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-07-31\u003c/th\u003e\n      \u003ctd\u003e1662.0\u003c/td\u003e\n      \u003ctd\u003e1654.0\u003c/td\u003e\n      \u003ctd\u003e1680.0\u003c/td\u003e\n      \u003ctd\u003e1613.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-08-31\u003c/th\u003e\n      \u003ctd\u003e1654.0\u003c/td\u003e\n      \u003ctd\u003e1617.0\u003c/td\u003e\n      \u003ctd\u003e1650.0\u003c/td\u003e\n      \u003ctd\u003e1616.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-09-30\u003c/th\u003e\n      \u003ctd\u003e1669.0\u003c/td\u003e\n      \u003ctd\u003e1648.0\u003c/td\u003e\n      \u003ctd\u003e1638.0\u003c/td\u003e\n      \u003ctd\u003e1634.0\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n",
      "content_text": "\n# My favorite pandas pattern\n\nI work with a lot of transactional timeseries data that includes categories. I often want to create timeseries plots with each category as its own line. This is the method that I use almost data to achieve this result. Typically the data that am working with changes very slowly and trends happen over years not days or weeks. Plotting daily/weekly data tends to be noisy and hides the trend. I use this pattern because it works well with my data and is easy to explain to my stakeholders.\n\n```python\nimport pandas as pd\nimport numpy as np\n% matplotlib inline\n```\n\n## Lets Fake some data\n\nHere I am trying to simulate a subset of a large transactional data set. This could be something like sales data, production data, hourly billing, anything that has a date, category, and value. Since we generated this data we know that it is clean. I am still going to assume that it contains some nulls, and an irregular date range.\n\n```python\nn = 365*5\ncols = {'level_0': 'date',\n        'level_1': 'item',\n        0: 'qty', }\ndata = (pd.DataFrame(np.random.randint(0, 10, size=(n, 4)),\n                     columns=['paper', 'pencils', 'note cards', 'markers'],\n                     index=pd.date_range('1/1/2017', periods=n, freq='d'),\n                     )\n        .stack()\n        .to_frame()\n        .reset_index()\n        .rename(columns=cols))\ndata.head()\n```\n\n\u003cdiv\u003e\n\u003cstyle scoped\u003e\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n\n\u003c/style\u003e\n\u003ctable border=\"1\" class=\"dataframe\"\u003e\n  \u003cthead\u003e\n    \u003ctr style=\"text-align: right;\"\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003edate\u003c/th\u003e\n      \u003cth\u003eitem\u003c/th\u003e\n      \u003cth\u003eqty\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003cth\u003e0\u003c/th\u003e\n      \u003ctd\u003e2017-01-01\u003c/td\u003e\n      \u003ctd\u003epaper\u003c/td\u003e\n      \u003ctd\u003e1\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e1\u003c/th\u003e\n      \u003ctd\u003e2017-01-01\u003c/td\u003e\n      \u003ctd\u003epencils\u003c/td\u003e\n      \u003ctd\u003e4\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2\u003c/th\u003e\n      \u003ctd\u003e2017-01-01\u003c/td\u003e\n      \u003ctd\u003enote cards\u003c/td\u003e\n      \u003ctd\u003e5\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e3\u003c/th\u003e\n      \u003ctd\u003e2017-01-01\u003c/td\u003e\n      \u003ctd\u003emarkers\u003c/td\u003e\n      \u003ctd\u003e9\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e4\u003c/th\u003e\n      \u003ctd\u003e2017-01-02\u003c/td\u003e\n      \u003ctd\u003epaper\u003c/td\u003e\n      \u003ctd\u003e3\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\n## The pattern\n\nHere I am going to take my groupby date and item, this will take care of duplicate entries with the same time stamp. Select the value I want to sum on. unstack the items index into columns. Resample the data by month. I could easily use any of the [available rules](https://pandas.pydata.org/pandas-docs/stable/timeseries.html#offset-aliases). Fill any missing months with 0, since there wasnt a transaction during that month. Apply a rolling window to get the annual sum. I find that this helps to ground values in values that my stakeholders are used to seeing on a regular basis and reduces the need for them to recalculate in their head. Then I am going to drop the nulls created by the rolling window for the first 11 rows.\n\n```python\nplot_data = (data\n             .groupby(['date', 'item'])\n             .sum()\n             ['qty']\n             .unstack()\n             .resample('m')\n             .sum()\n             .fillna(0)\n             .rolling(12)\n             .sum()\n             .dropna()\n             )\nplot_data.head()\n```\n\n\u003cdiv\u003e\n\u003cstyle scoped\u003e\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n\n\u003c/style\u003e\n\u003ctable border=\"1\" class=\"dataframe\"\u003e\n  \u003cthead\u003e\n    \u003ctr style=\"text-align: right;\"\u003e\n      \u003cth\u003eitem\u003c/th\u003e\n      \u003cth\u003emarkers\u003c/th\u003e\n      \u003cth\u003enote cards\u003c/th\u003e\n      \u003cth\u003epaper\u003c/th\u003e\n      \u003cth\u003epencils\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003edate\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-12-31\u003c/th\u003e\n      \u003ctd\u003e1543.0\u003c/td\u003e\n      \u003ctd\u003e1739.0\u003c/td\u003e\n      \u003ctd\u003e1613.0\u003c/td\u003e\n      \u003ctd\u003e1657.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-01-31\u003c/th\u003e\n      \u003ctd\u003e1572.0\u003c/td\u003e\n      \u003ctd\u003e1744.0\u003c/td\u003e\n      \u003ctd\u003e1635.0\u003c/td\u003e\n      \u003ctd\u003e1635.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-02-28\u003c/th\u003e\n      \u003ctd\u003e1563.0\u003c/td\u003e\n      \u003ctd\u003e1717.0\u003c/td\u003e\n      \u003ctd\u003e1645.0\u003c/td\u003e\n      \u003ctd\u003e1645.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-03-31\u003c/th\u003e\n      \u003ctd\u003e1596.0\u003c/td\u003e\n      \u003ctd\u003e1703.0\u003c/td\u003e\n      \u003ctd\u003e1629.0\u003c/td\u003e\n      \u003ctd\u003e1600.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-04-30\u003c/th\u003e\n      \u003ctd\u003e1557.0\u003c/td\u003e\n      \u003ctd\u003e1693.0\u003c/td\u003e\n      \u003ctd\u003e1648.0\u003c/td\u003e\n      \u003ctd\u003e1581.0\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\n```python\nplot_data.plot(title='Rolling annual sum of Categorical Random Data');\n```\n\n## For the Visual Learners\n\n### Groupby\n\n```python\nplot_data = (data\n             .groupby(['date', 'item'])\n             .sum()\n             )\nplot_data.head()\n```\n\n\u003cdiv\u003e\n\u003cstyle scoped\u003e\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n\n\u003c/style\u003e\n\u003ctable border=\"1\" class=\"dataframe\"\u003e\n  \u003cthead\u003e\n    \u003ctr style=\"text-align: right;\"\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003eqty\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003edate\u003c/th\u003e\n      \u003cth\u003eitem\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003cth rowspan=\"4\" valign=\"top\"\u003e2017-01-01\u003c/th\u003e\n      \u003cth\u003emarkers\u003c/th\u003e\n      \u003ctd\u003e9\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003enote cards\u003c/th\u003e\n      \u003ctd\u003e5\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003epaper\u003c/th\u003e\n      \u003ctd\u003e1\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003epencils\u003c/th\u003e\n      \u003ctd\u003e4\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-01-02\u003c/th\u003e\n      \u003cth\u003emarkers\u003c/th\u003e\n      \u003ctd\u003e4\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\n### Select Values\n\nIn this case I chose to do this to avoid working with a multiple levels in the columns that would be created in the unstack() step.\n\n```python\nplot_data = plot_data['qty']\n\nplot_data.head()\n```\n\n    date        item\n    2017-01-01  markers       9\n                note cards    5\n                paper         1\n                pencils       4\n    2017-01-02  markers       4\n    Name: qty, dtype: int32\n\n### unstack\n\ntransform the last column in the index ('item') into rows.\n\n```python\nplot_data = plot_data.unstack()\n\nplot_data.head()\n```\n\n\u003cdiv\u003e\n\u003cstyle scoped\u003e\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n\n\u003c/style\u003e\n\u003ctable border=\"1\" class=\"dataframe\"\u003e\n  \u003cthead\u003e\n    \u003ctr style=\"text-align: right;\"\u003e\n      \u003cth\u003eitem\u003c/th\u003e\n      \u003cth\u003emarkers\u003c/th\u003e\n      \u003cth\u003enote cards\u003c/th\u003e\n      \u003cth\u003epaper\u003c/th\u003e\n      \u003cth\u003epencils\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003edate\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-01-01\u003c/th\u003e\n      \u003ctd\u003e9\u003c/td\u003e\n      \u003ctd\u003e5\u003c/td\u003e\n      \u003ctd\u003e1\u003c/td\u003e\n      \u003ctd\u003e4\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-01-02\u003c/th\u003e\n      \u003ctd\u003e4\u003c/td\u003e\n      \u003ctd\u003e2\u003c/td\u003e\n      \u003ctd\u003e3\u003c/td\u003e\n      \u003ctd\u003e7\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-01-03\u003c/th\u003e\n      \u003ctd\u003e9\u003c/td\u003e\n      \u003ctd\u003e5\u003c/td\u003e\n      \u003ctd\u003e2\u003c/td\u003e\n      \u003ctd\u003e3\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-01-04\u003c/th\u003e\n      \u003ctd\u003e2\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n      \u003ctd\u003e5\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-01-05\u003c/th\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n      \u003ctd\u003e1\u003c/td\u003e\n      \u003ctd\u003e6\u003c/td\u003e\n      \u003ctd\u003e2\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\n### resample\n\nThis step is important for irregular data in order to get the data into regular intervals.\n\n```python\nplot_data = plot_data.resample('m').sum()\n\nplot_data.head()\n```\n\n\u003cdiv\u003e\n\u003cstyle scoped\u003e\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n\n\u003c/style\u003e\n\u003ctable border=\"1\" class=\"dataframe\"\u003e\n  \u003cthead\u003e\n    \u003ctr style=\"text-align: right;\"\u003e\n      \u003cth\u003eitem\u003c/th\u003e\n      \u003cth\u003emarkers\u003c/th\u003e\n      \u003cth\u003enote cards\u003c/th\u003e\n      \u003cth\u003epaper\u003c/th\u003e\n      \u003cth\u003epencils\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003edate\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-01-31\u003c/th\u003e\n      \u003ctd\u003e145\u003c/td\u003e\n      \u003ctd\u003e128\u003c/td\u003e\n      \u003ctd\u003e117\u003c/td\u003e\n      \u003ctd\u003e146\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-02-28\u003c/th\u003e\n      \u003ctd\u003e136\u003c/td\u003e\n      \u003ctd\u003e140\u003c/td\u003e\n      \u003ctd\u003e133\u003c/td\u003e\n      \u003ctd\u003e135\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-03-31\u003c/th\u003e\n      \u003ctd\u003e112\u003c/td\u003e\n      \u003ctd\u003e145\u003c/td\u003e\n      \u003ctd\u003e125\u003c/td\u003e\n      \u003ctd\u003e163\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-04-30\u003c/th\u003e\n      \u003ctd\u003e143\u003c/td\u003e\n      \u003ctd\u003e148\u003c/td\u003e\n      \u003ctd\u003e112\u003c/td\u003e\n      \u003ctd\u003e147\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-05-31\u003c/th\u003e\n      \u003ctd\u003e86\u003c/td\u003e\n      \u003ctd\u003e134\u003c/td\u003e\n      \u003ctd\u003e139\u003c/td\u003e\n      \u003ctd\u003e141\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\n### rolling\n\nI like to use rolling because it get the data into annual numbers, and reduces noise. I have found that most of my datasets have patterns and trends that are greater than 1y. This is just due to the industry that I am in. Play with the resample and rolling rules to fit the need of your own data.\n\n```python\nplot_data = plot_data.rolling(12).sum()\n\nplot_data.head(20)\n```\n\n\u003cdiv\u003e\n\u003cstyle scoped\u003e\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n\n\u003c/style\u003e\n\u003ctable border=\"1\" class=\"dataframe\"\u003e\n  \u003cthead\u003e\n    \u003ctr style=\"text-align: right;\"\u003e\n      \u003cth\u003eitem\u003c/th\u003e\n      \u003cth\u003emarkers\u003c/th\u003e\n      \u003cth\u003enote cards\u003c/th\u003e\n      \u003cth\u003epaper\u003c/th\u003e\n      \u003cth\u003epencils\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003edate\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-01-31\u003c/th\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-02-28\u003c/th\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-03-31\u003c/th\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-04-30\u003c/th\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-05-31\u003c/th\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-06-30\u003c/th\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-07-31\u003c/th\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-08-31\u003c/th\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-09-30\u003c/th\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-10-31\u003c/th\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-11-30\u003c/th\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n      \u003ctd\u003eNaN\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-12-31\u003c/th\u003e\n      \u003ctd\u003e1543.0\u003c/td\u003e\n      \u003ctd\u003e1739.0\u003c/td\u003e\n      \u003ctd\u003e1613.0\u003c/td\u003e\n      \u003ctd\u003e1657.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-01-31\u003c/th\u003e\n      \u003ctd\u003e1572.0\u003c/td\u003e\n      \u003ctd\u003e1744.0\u003c/td\u003e\n      \u003ctd\u003e1635.0\u003c/td\u003e\n      \u003ctd\u003e1635.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-02-28\u003c/th\u003e\n      \u003ctd\u003e1563.0\u003c/td\u003e\n      \u003ctd\u003e1717.0\u003c/td\u003e\n      \u003ctd\u003e1645.0\u003c/td\u003e\n      \u003ctd\u003e1645.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-03-31\u003c/th\u003e\n      \u003ctd\u003e1596.0\u003c/td\u003e\n      \u003ctd\u003e1703.0\u003c/td\u003e\n      \u003ctd\u003e1629.0\u003c/td\u003e\n      \u003ctd\u003e1600.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-04-30\u003c/th\u003e\n      \u003ctd\u003e1557.0\u003c/td\u003e\n      \u003ctd\u003e1693.0\u003c/td\u003e\n      \u003ctd\u003e1648.0\u003c/td\u003e\n      \u003ctd\u003e1581.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-05-31\u003c/th\u003e\n      \u003ctd\u003e1624.0\u003c/td\u003e\n      \u003ctd\u003e1674.0\u003c/td\u003e\n      \u003ctd\u003e1632.0\u003c/td\u003e\n      \u003ctd\u003e1592.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-06-30\u003c/th\u003e\n      \u003ctd\u003e1582.0\u003c/td\u003e\n      \u003ctd\u003e1645.0\u003c/td\u003e\n      \u003ctd\u003e1657.0\u003c/td\u003e\n      \u003ctd\u003e1593.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-07-31\u003c/th\u003e\n      \u003ctd\u003e1662.0\u003c/td\u003e\n      \u003ctd\u003e1654.0\u003c/td\u003e\n      \u003ctd\u003e1680.0\u003c/td\u003e\n      \u003ctd\u003e1613.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-08-31\u003c/th\u003e\n      \u003ctd\u003e1654.0\u003c/td\u003e\n      \u003ctd\u003e1617.0\u003c/td\u003e\n      \u003ctd\u003e1650.0\u003c/td\u003e\n      \u003ctd\u003e1616.0\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\n### dropna\n\nget rid of the first 11 null rows\n\n```python\nplot_data = plot_data.dropna()\n\nplot_data.head(10)\n```\n\n\u003cdiv\u003e\n\u003cstyle scoped\u003e\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n\n\u003c/style\u003e\n\u003ctable border=\"1\" class=\"dataframe\"\u003e\n  \u003cthead\u003e\n    \u003ctr style=\"text-align: right;\"\u003e\n      \u003cth\u003eitem\u003c/th\u003e\n      \u003cth\u003emarkers\u003c/th\u003e\n      \u003cth\u003enote cards\u003c/th\u003e\n      \u003cth\u003epaper\u003c/th\u003e\n      \u003cth\u003epencils\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003edate\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003e\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2017-12-31\u003c/th\u003e\n      \u003ctd\u003e1543.0\u003c/td\u003e\n      \u003ctd\u003e1739.0\u003c/td\u003e\n      \u003ctd\u003e1613.0\u003c/td\u003e\n      \u003ctd\u003e1657.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-01-31\u003c/th\u003e\n      \u003ctd\u003e1572.0\u003c/td\u003e\n      \u003ctd\u003e1744.0\u003c/td\u003e\n      \u003ctd\u003e1635.0\u003c/td\u003e\n      \u003ctd\u003e1635.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-02-28\u003c/th\u003e\n      \u003ctd\u003e1563.0\u003c/td\u003e\n      \u003ctd\u003e1717.0\u003c/td\u003e\n      \u003ctd\u003e1645.0\u003c/td\u003e\n      \u003ctd\u003e1645.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-03-31\u003c/th\u003e\n      \u003ctd\u003e1596.0\u003c/td\u003e\n      \u003ctd\u003e1703.0\u003c/td\u003e\n      \u003ctd\u003e1629.0\u003c/td\u003e\n      \u003ctd\u003e1600.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-04-30\u003c/th\u003e\n      \u003ctd\u003e1557.0\u003c/td\u003e\n      \u003ctd\u003e1693.0\u003c/td\u003e\n      \u003ctd\u003e1648.0\u003c/td\u003e\n      \u003ctd\u003e1581.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-05-31\u003c/th\u003e\n      \u003ctd\u003e1624.0\u003c/td\u003e\n      \u003ctd\u003e1674.0\u003c/td\u003e\n      \u003ctd\u003e1632.0\u003c/td\u003e\n      \u003ctd\u003e1592.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-06-30\u003c/th\u003e\n      \u003ctd\u003e1582.0\u003c/td\u003e\n      \u003ctd\u003e1645.0\u003c/td\u003e\n      \u003ctd\u003e1657.0\u003c/td\u003e\n      \u003ctd\u003e1593.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-07-31\u003c/th\u003e\n      \u003ctd\u003e1662.0\u003c/td\u003e\n      \u003ctd\u003e1654.0\u003c/td\u003e\n      \u003ctd\u003e1680.0\u003c/td\u003e\n      \u003ctd\u003e1613.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-08-31\u003c/th\u003e\n      \u003ctd\u003e1654.0\u003c/td\u003e\n      \u003ctd\u003e1617.0\u003c/td\u003e\n      \u003ctd\u003e1650.0\u003c/td\u003e\n      \u003ctd\u003e1616.0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2018-09-30\u003c/th\u003e\n      \u003ctd\u003e1669.0\u003c/td\u003e\n      \u003ctd\u003e1648.0\u003c/td\u003e\n      \u003ctd\u003e1638.0\u003c/td\u003e\n      \u003ctd\u003e1634.0\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n",
      "summary": "I work with a lot of transactional timeseries data that includes categories. I often want to create timeseries plots with each category as its own line. This...",
      "date_published": "2018-03-01T00:00:00Z",
      "date_modified": "2018-03-01T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/pug-reveal/",
      "url": "https://go.waylonwalker.com/pug-reveal/",
      "title": "Pug Reveal",
      "content_html": "\u003ch1 id=\"pug-reveal-slides\"\u003ePug Reveal Slides\u003c/h1\u003e\n\u003cp\u003eI recently gave a presentation at the Big Brothers and Big Sisters Data Challenge.  I wanted to use reveal to create my slides.  I have used it before and it is a really nice package.  Compared to PowerPoint it is much easier to incorporate interactive visualizations right into the presentation,easy to re factor and maintain slides.  Since you are just working with text you can easily convert from a list of items on one slide to a set of slides.\u003c/p\u003e\n\u003ch2 id=\"avoiding-death-by-powerpoint\"\u003eAvoiding Death by PowerPoint \u003ca href=\"#avoiding-death-by-powerpoint\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIf you have not seen David JP Phillips \u003ca href=\"https://www.youtube.com/watch?v=Iwpi1Lm6dFo\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003eDeath By PowerPoint\u003c/a\u003e  TEDx, stop now and watch it.  You will never look at slides the same again.  Watching this video ruined me for watching presentations with these issues.  Reveal is a tool that makes it very easy to follow these principles\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eYou are the center of focus\u003c/li\u003e\n\u003cli\u003eReduce clutter\u003c/li\u003e\n\u003cli\u003eFocus your users with\n\u003cul\u003e\n\u003cli\u003esize\u003c/li\u003e\n\u003cli\u003econtrast\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"reduce-clutter\"\u003eReduce clutter \u003ca href=\"#reduce-clutter\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIn the video David talks about reducing the number of points we have down to no more than 6. You may be thinking “What No More than 6, Well I would have to have a hundred slides to get all of my point in”.  to this David tells us, “The amount of slides in your PowerPoint has never been the problem. It is the amount of objects per slide that are the problem.”\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eThe amount of slides in your PowerPoint has never been the problem. It is the amount of objects per slide that are the problem.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"pug\"\u003ePug \u003ca href=\"#pug\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e“What is this pug thing you speak of?”\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003ePug is a markup language typically that is into \u003ca href=\"/html/\" class=\"glossary-term\" title=\"HTML (HyperText Markup Language) is the standard markup language used to create and design documents on the World Wide Web. It structures web content by...\"\u003ehtml\u003c/a\u003e for the browser.  It is a much less verbose markup language that uses whitespace as syntax.\u003c/p\u003e\n",
      "content_text": "\n# Pug Reveal Slides\n\nI recently gave a presentation at the Big Brothers and Big Sisters Data Challenge.  I wanted to use reveal to create my slides.  I have used it before and it is a really nice package.  Compared to PowerPoint it is much easier to incorporate interactive visualizations right into the presentation,easy to re factor and maintain slides.  Since you are just working with text you can easily convert from a list of items on one slide to a set of slides.\n\n## Avoiding Death by PowerPoint\n\nIf you have not seen David JP Phillips [Death By PowerPoint](https://www.youtube.com/watch?v=Iwpi1Lm6dFo)  TEDx, stop now and watch it.  You will never look at slides the same again.  Watching this video ruined me for watching presentations with these issues.  Reveal is a tool that makes it very easy to follow these principles\n\n* You are the center of focus\n* Reduce clutter\n* Focus your users with\n    * size\n    * contrast\n\n## Reduce clutter\n\nIn the video David talks about reducing the number of points we have down to no more than 6. You may be thinking \"What No More than 6, Well I would have to have a hundred slides to get all of my point in\".  to this David tells us, \"The amount of slides in your PowerPoint has never been the problem. It is the amount of objects per slide that are the problem.\"\n\n\u003eThe amount of slides in your PowerPoint has never been the problem. It is the amount of objects per slide that are the problem.\n\n## Pug\n\n\n\u003e\"What is this pug thing you speak of?\"\n\nPug is a markup language typically that is into html for the browser.  It is a much less verbose markup language that uses whitespace as syntax.\n",
      "summary": "none",
      "date_published": "2017-12-31T00:00:00Z",
      "date_modified": "2017-12-31T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "webdev"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/death-by-powerpoint/",
      "url": "https://go.waylonwalker.com/death-by-powerpoint/",
      "title": "No More Death By PowerPoint",
      "content_html": "\u003ch1 id=\"no-more-death-by-powerpoint\"\u003eNo More Death By PowerPoint\u003c/h1\u003e\n\u003cblockquote\u003e\n\u003cp\u003eI Waylon S. Walker vow that from this point forward I will no longer create powerpoints to be considerec \u003cstrong\u003eDEATH BY POWERPOINT\u003c/strong\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eIf you have not seen David JP Phillips \u003ca href=\"https://www.youtube.com/watch?v=Iwpi1Lm6dFo\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003eDeath By PowerPoint\u003c/a\u003e  TEDx, stop now and watch it.  You will never look at slides the same again.  Watching this video ruined me for watching presentations with these issues.  Reveal is a tool that makes it very easy to follow these principles\u003c/p\u003e\n\u003cp\u003eI currently work in a company that employs over 100K employees, and to this day I cannot recall a single presentation given where the slides did not violate the rules stated in David’s Talk.  This year I am putting a stop to this starting with myself.  I am starting a new job role in 2018 and there is no better time to make some drastic changes to my workflow than now.  I expect there to be a few followers and many naysayers, but I dont care.  I will employ the directives listed below.\u003c/p\u003e\n\u003ch2 id=\"110\"\u003e1+1=0 \u003ca href=\"#110\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eVery few people (\u003cem\u003eif any\u003c/em\u003e) in your will be able to multi-task.  The human brain is just not built to truly multi-task.  Some folks can be good at task switching quickly but very few of us can truly multi-task.  By overwhelming your audience with more than one distinct message, you have successfully overwhelmed your audience and successfully delivered 0 messages to your audiance.\u003c/p\u003e\n\u003ch2 id=\"6-items\"\u003e6 items \u003ca href=\"#6-items\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe human brain is very capable of processing up to 6 items very efficiently, beyond this becomes an exponential rate of processing.  Watch David’s video and you will see a remarkable example.\u003c/p\u003e\n\u003ch2 id=\"size-and-contrast\"\u003eSize and Contrast \u003ca href=\"#size-and-contrast\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe most important points should be the fist thing that your eye goes to on the screen.\u003c/p\u003e\n\u003ch2 id=\"more-slides\"\u003eMore Slides \u003ca href=\"#more-slides\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNo one ever said the sheer amount of slides was ever the problem.\u003c/p\u003e\n\u003ch2 id=\"supporting-material\"\u003eSupporting Material \u003ca href=\"#supporting-material\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eSentences, Notes, reference material, etc belong in the speaker notes.  This is the part that took the longest for me to realize.  In my company PowerPoint documents as living documents that folks will reference long after the presentation is over.  For this reason we tend to put every point that we want to discuss on the slides, so that they are there weeks, months, even years later when someone goes back to review your slides.  Placing this material in the speaker notes will allow you to utilize your presentation as reference material if you need to, and refrain from placing it on the screen.\u003c/p\u003e\n\u003ch2 id=\"tools\"\u003eTools \u003ca href=\"#tools\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eA tool that is becoming very popular outside of the PowerPoind world is \u003ca href=\"https://github.com/hakimel/reveal.js/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eReveal js\u003c/a\u003e.  It is a fantastic framework to build beautiful slides using \u003ca href=\"/html/\" class=\"glossary-term\" title=\"HTML (HyperText Markup Language) is the standard markup language used to create and design documents on the World Wide Web. It structures web content by...\"\u003ehtml\u003c/a\u003e.  I find that maintaining html to be a bit cumbersome. And the templating language \u003ca href=\"https://pugjs.org/\"\u003epug\u003c/a\u003e to be much more simple.  I will be using my own fork of \u003ca href=\"https://github.com/jlengstorf/reveal.js-jade\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ereveal.js-jade\u003c/a\u003e in 2018.  It will allow me to have interactive visualizations right in my slides.  Reveal also does a really nice job at making it hard to break the Death By PowerPoint rules.  It tends to be hard to jam a ton of information into them.\u003c/p\u003e\n",
      "content_text": "\n\n# No More Death By PowerPoint\n\n\u003e I Waylon S. Walker vow that from this point forward I will no longer create powerpoints to be considerec **DEATH BY POWERPOINT**\n\n\nIf you have not seen David JP Phillips [Death By PowerPoint](https://www.youtube.com/watch?v=Iwpi1Lm6dFo)  TEDx, stop now and watch it.  You will never look at slides the same again.  Watching this video ruined me for watching presentations with these issues.  Reveal is a tool that makes it very easy to follow these principles\n\nI currently work in a company that employs over 100K employees, and to this day I cannot recall a single presentation given where the slides did not violate the rules stated in David's Talk.  This year I am putting a stop to this starting with myself.  I am starting a new job role in 2018 and there is no better time to make some drastic changes to my workflow than now.  I expect there to be a few followers and many naysayers, but I dont care.  I will employ the directives listed below.\n\n\n## 1+1=0\n\nVery few people (_if any_) in your will be able to multi-task.  The human brain is just not built to truly multi-task.  Some folks can be good at task switching quickly but very few of us can truly multi-task.  By overwhelming your audience with more than one distinct message, you have successfully overwhelmed your audience and successfully delivered 0 messages to your audiance.\n\n## 6 items\n\nThe human brain is very capable of processing up to 6 items very efficiently, beyond this becomes an exponential rate of processing.  Watch David's video and you will see a remarkable example.\n\n## Size and Contrast\n\nThe most important points should be the fist thing that your eye goes to on the screen.\n\n## More Slides\n\nNo one ever said the sheer amount of slides was ever the problem.\n\n\n## Supporting Material\n\nSentences, Notes, reference material, etc belong in the speaker notes.  This is the part that took the longest for me to realize.  In my company PowerPoint documents as living documents that folks will reference long after the presentation is over.  For this reason we tend to put every point that we want to discuss on the slides, so that they are there weeks, months, even years later when someone goes back to review your slides.  Placing this material in the speaker notes will allow you to utilize your presentation as reference material if you need to, and refrain from placing it on the screen.\n\n## Tools\n\nA tool that is becoming very popular outside of the PowerPoind world is [Reveal js](https://github.com/hakimel/reveal.js/).  It is a fantastic framework to build beautiful slides using html.  I find that maintaining html to be a bit cumbersome. And the templating language [pug](https://pugjs.org/) to be much more simple.  I will be using my own fork of [reveal.js-jade](https://github.com/jlengstorf/reveal.js-jade) in 2018.  It will allow me to have interactive visualizations right in my slides.  Reveal also does a really nice job at making it hard to break the Death By PowerPoint rules.  It tends to be hard to jam a ton of information into them.\n",
      "summary": "none",
      "date_published": "2017-12-31T00:00:00Z",
      "date_modified": "2017-12-31T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "webdev",
        "catalytic"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/background-1/",
      "url": "https://go.waylonwalker.com/background-1/",
      "title": "background tasks in python",
      "content_html": "\u003cp\u003eI have tried most of the different methods in the past and found that copying and pasting the \u003ca href=\"https://docs.python.org/3/library/concurrent.futures.html#threadpoolexecutor-example\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/docs.python.org.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/docs.python.org.ico\" class=\"has-avatar  has-avatar-before\"\u003ethreadpoolexecutor example\u003c/a\u003e or the \u003ca href=\"https://docs.python.org/3/library/concurrent.futures.html#processpoolexecutor-example\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/docs.python.org.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/docs.python.org.ico\" class=\"has-avatar  has-avatar-before\"\u003eprocesspoolexecutor example\u003c/a\u003e from the standard library documentation to be the most reliable.  Since this is often something that I stuff in the back of a utility module of a library it is not something that I write often enough to be familiar with, which makes it both hard to write and hard to read and debug.  If you are looking for a good overview of the difference concurrency \u003ca href=\"https://twitter.com/raymondh\"\u003eRaymond Hettinger\u003c/a\u003e has a great talk about the difference between the various different methods, when to use them and why.\u003c/p\u003e\n\u003cp\u003eRecently a new python library was released to make running tasks in the background very simple. The \u003ca href=\"https://github.com/ParthS007/background\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ebackground\u003c/a\u003e project by Kenneth Reitz is a high level implementation of python 3’s ThreadPoolExecutor.  I have been playing around with this project over the last week and I will say that this is definitely the simplest way to run background tasks in python by far.  It really simplifes the syntax and lets me focus on my job rather than implementing custom concurrent code that is more difficult to debug.\u003c/p\u003e\n\u003ch2 id=\"background\"\u003eBackground \u003ca href=\"#background\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI have pulled the latest version of the project in Sept 2017.  I found that it had some updates that were important to pass *args and **kwargs compared to the pypi version.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003etime\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003ebackground\u003c/span\u003e \u003cspan class=\"k\"\u003eas\u003c/span\u003e \u003cspan class=\"nn\"\u003ebg\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e%\u003c/span\u003e\u003cspan class=\"n\"\u003eload_ext\u003c/span\u003e \u003cspan class=\"n\"\u003ewatermark\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e%\u003c/span\u003e\u003cspan class=\"n\"\u003ewatermark\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003ed\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003ev\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"n\"\u003ep\u003c/span\u003e \u003cspan class=\"n\"\u003ebackground\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre\u003e\u003ccode\u003e2017-09-16\n\nCPython 3.6.2\nIPython 6.1.0\n\nbackground n\u0007\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2 id=\"define-worker-functions\"\u003eDefine Worker Functions \u003ca href=\"#define-worker-functions\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eEach of these worker functions takes 1s to run, simulating a moderately long calculation that we need to do many times over.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003ework\u003c/span\u003e\u003cspan class=\"p\"\u003e():\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003etime\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003esleep\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e1\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"mi\"\u003e1\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nd\"\u003e@bg.task\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003ebg_work\u003c/span\u003e\u003cspan class=\"p\"\u003e():\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003etime\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003esleep\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e1\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"mi\"\u003e1\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"run-the-worker-functions\"\u003eRun the Worker Functions \u003ca href=\"#run-the-worker-functions\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"blocking-function\"\u003eBlocking function \u003ca href=\"#blocking-function\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis function is blocking each time the function runs, thus taking 1 second to run for each calculation.  The example below took exactly \u003cstrong\u003e100 s\u003c/strong\u003e to run 100 calculations.  Depending on your use case this may not be fast enough.  If the calculations do not rely on the global state\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e%%\u003c/span\u003e\u003cspan class=\"n\"\u003etime\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003e_\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"nb\"\u003erange\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e100\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003ework\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre\u003e\u003ccode\u003eWall time: 1min 40s\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3 id=\"reaction\"\u003eReaction \u003ca href=\"#reaction\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eI  know what half of you are saying to yourselfs..\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e!!What!! that took 100 s, by now my users have already sent a dozen messages and filed an issue that my feature is down\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eand the other half\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eSeriously that wasnt even enough time to grab a coffee.  Any real time consuming analysis takes at least 3 dats 14 hours 159 seconds before I start to care about concurrency\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eTo you I say… I am impatient and I got other things to do rather than wait on this maching to finish its work.  Let’s get into this concurrency stuff.\u003c/p\u003e\n\u003ch2 id=\"background-function\"\u003eBackground Function \u003ca href=\"#background-function\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis function spins off worker processes and runs much faster.  By default background sets the number of processes to the number of cpu cores available, Therefore this function should run in n/4 + (inefficiency).  Here we see that the result is just over \u003cstrong\u003e13 s\u003c/strong\u003e.\u003c/p\u003e\n\u003cp\u003eNote:\u003cem\u003eSince there is a bit of inefficiency added by needing to handle all of the threads it is not exactly divided by the number of workers.\u003c/em\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e%%\u003c/span\u003e\u003cspan class=\"n\"\u003etime\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ef_list\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"n\"\u003ebg_work\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003e_\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"nb\"\u003erange\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e100\u003c/span\u003e\u003cspan class=\"p\"\u003e)];\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003ewhile\u003c/span\u003e \u003cspan class=\"ow\"\u003enot\u003c/span\u003e \u003cspan class=\"nb\"\u003eall\u003c/span\u003e\u003cspan class=\"p\"\u003e([\u003c/span\u003e\u003cspan class=\"n\"\u003ef\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003edone\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003ef\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003ef_list\u003c/span\u003e\u003cspan class=\"p\"\u003e]):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003epass\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre\u003e\u003ccode\u003eWall time: 13.1 s\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3 id=\"reaction-1\"\u003eReaction \u003ca href=\"#reaction-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eI know what your saying this time.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ereally a 7.6x improvement…  Is that really even woth the extra work.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eFine then lets crank it up to 11!\u003c/p\u003e\n\u003ch3 id=\"lots-of-background\"\u003eLots of Background \u003ca href=\"#lots-of-background\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003elets set the number of background processes to a value just higher to than the number of workers we need to run in order to start them all simultaneously. With this simple example that is not very CPU intensive we see the result is just over the amount of time that it takes to run 1 worker.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ebg\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003en\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"mi\"\u003e110\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e%%\u003c/span\u003e\u003cspan class=\"n\"\u003etime\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ef_list\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"n\"\u003ebg_work\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003e_\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"nb\"\u003erange\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e100\u003c/span\u003e\u003cspan class=\"p\"\u003e)];\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003ewhile\u003c/span\u003e \u003cspan class=\"ow\"\u003enot\u003c/span\u003e \u003cspan class=\"nb\"\u003eall\u003c/span\u003e\u003cspan class=\"p\"\u003e([\u003c/span\u003e\u003cspan class=\"n\"\u003ef\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003edone\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003ef\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003ef_list\u003c/span\u003e\u003cspan class=\"p\"\u003e]):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003epass\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre\u003e\u003ccode\u003eWall time: 1.09 s\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3 id=\"reaction-2\"\u003eReaction \u003ca href=\"#reaction-2\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cblockquote\u003e\n\u003cp\u003e91x improvement by putting my calculations into a function, adding a decorator, and some checks, im in.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"on-tap\"\u003eOn Tap \u003ca href=\"#on-tap\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis week while taking it up to 11 I was enjoying a super thick and rich cup of El Salvador Finca Rosa from Onyx Coffee Labs.  Check out their love for letting the bean speak for it self and producing a great cup.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://onyxcoffeelab.com\"\u003e\u003cimg class=\"glightbox\" src=\"https://cdn.shopify.com/s/files/1/1707/3261/files/coffee_science.png?5305428688827820856\"/ data-glightbox=\"description: \"\u003e\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\nI have tried most of the different methods in the past and found that copying and pasting the [threadpoolexecutor example](https://docs.python.org/3/library/concurrent.futures.html#threadpoolexecutor-example) or the [processpoolexecutor example](https://docs.python.org/3/library/concurrent.futures.html#processpoolexecutor-example) from the standard library documentation to be the most reliable.  Since this is often something that I stuff in the back of a utility module of a library it is not something that I write often enough to be familiar with, which makes it both hard to write and hard to read and debug.  If you are looking for a good overview of the difference concurrency [Raymond Hettinger](https://twitter.com/raymondh) has a great talk about the difference between the various different methods, when to use them and why.\n\nRecently a new python library was released to make running tasks in the background very simple. The [background](https://github.com/ParthS007/background) project by Kenneth Reitz is a high level implementation of python 3's ThreadPoolExecutor.  I have been playing around with this project over the last week and I will say that this is definitely the simplest way to run background tasks in python by far.  It really simplifes the syntax and lets me focus on my job rather than implementing custom concurrent code that is more difficult to debug.\n\n## Background\n\nI have pulled the latest version of the project in Sept 2017.  I found that it had some updates that were important to pass \\*args and \\*\\*kwargs compared to the pypi version.\n\n\n```python\nimport time\nimport background as bg\n\n%load_ext watermark\n%watermark -d -v -p background\n```\n\n    2017-09-16\n\n    CPython 3.6.2\n    IPython 6.1.0\n\n    background n\u0007\n\n\n## Define Worker Functions\n\nEach of these worker functions takes 1s to run, simulating a moderately long calculation that we need to do many times over.\n\n\n```python\ndef work():\n    time.sleep(1)\n    return 1\n\n@bg.task\ndef bg_work():\n    time.sleep(1)\n    return 1\n```\n\n## Run the Worker Functions\n\n## Blocking function\n\nThis function is blocking each time the function runs, thus taking 1 second to run for each calculation.  The example below took exactly **100 s** to run 100 calculations.  Depending on your use case this may not be fast enough.  If the calculations do not rely on the global state\n\n\n```python\n%%time\nfor _ in range(100):\n    work()\n```\n\n    Wall time: 1min 40s\n\n\n### Reaction\n\nI  know what half of you are saying to yourselfs..\n\n\u003e    !!What!! that took 100 s, by now my users have already sent a dozen messages and filed an issue that my feature is down\n\nand the other half\n\n\u003e Seriously that wasnt even enough time to grab a coffee.  Any real time consuming analysis takes at least 3 dats 14 hours 159 seconds before I start to care about concurrency\n\nTo you I say... I am impatient and I got other things to do rather than wait on this maching to finish its work.  Let's get into this concurrency stuff.\n\n## Background Function\n\nThis function spins off worker processes and runs much faster.  By default background sets the number of processes to the number of cpu cores available, Therefore this function should run in n/4 + (inefficiency).  Here we see that the result is just over **13 s**.\n\nNote:_Since there is a bit of inefficiency added by needing to handle all of the threads it is not exactly divided by the number of workers._\n\n\n```python\n%%time\nf_list = [bg_work() for _ in range(100)];\n\nwhile not all([f.done() for f in f_list]):\n    pass\n```\n\n    Wall time: 13.1 s\n\n\n### Reaction\n\nI know what your saying this time.\n\n\u003ereally a 7.6x improvement...  Is that really even woth the extra work.\n\n\nFine then lets crank it up to 11!\n\n### Lots of Background\n\nlets set the number of background processes to a value just higher to than the number of workers we need to run in order to start them all simultaneously. With this simple example that is not very CPU intensive we see the result is just over the amount of time that it takes to run 1 worker.\n\n\n```python\nbg.n = 110\n```\n\n\n```python\n%%time\nf_list = [bg_work() for _ in range(100)];\n\nwhile not all([f.done() for f in f_list]):\n    pass\n```\n\n    Wall time: 1.09 s\n\n\n### Reaction\n\n\u003e 91x improvement by putting my calculations into a function, adding a decorator, and some checks, im in.\n\n## On Tap\n\nThis week while taking it up to 11 I was enjoying a super thick and rich cup of El Salvador Finca Rosa from Onyx Coffee Labs.  Check out their love for letting the bean speak for it self and producing a great cup.\n\n[\u003cimg src=\"https://cdn.shopify.com/s/files/1/1707/3261/files/coffee_science.png?5305428688827820856\"\u003e](https://onyxcoffeelab.com)\n",
      "summary": "none",
      "date_published": "2017-09-16T00:00:00Z",
      "date_modified": "2017-09-16T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "data"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/pycon-2017-roundup/",
      "url": "https://go.waylonwalker.com/pycon-2017-roundup/",
      "title": "Pycon 2017 Roundup",
      "content_html": "\u003ch1 id=\"pycon-2017-roundup\"\u003ePycon 2017 Roundup\u003c/h1\u003e\n\u003cp\u003eGood afternoon fellow Data Geeks.  Last week \u003ca href=\"https://www.youtube.com/channel/UCrJhliKNQ8g0qoE_zvL8eVg\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003ePycon\u003c/a\u003e released 141 videos of greatness.  Here are my top picks from the event.\u003c/p\u003e\n\u003ch2 id=\"3-kelsey-hightower---keynote---pycon-2017\"\u003e#3 Kelsey Hightower - Keynote - Pycon 2017 \u003ca href=\"#3-kelsey-hightower---keynote---pycon-2017\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.youtube.com/watch?v=u_iAXzy3xBA\u0026amp;t=1795s\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://www.youtube.com/watch?v=u_iAXzy3xBA\u0026amp;t=1795s\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"2-al-sweigart-yes-its-time-to-learn-regular-expressions-pycon-2017\"\u003e#2 Al Sweigart Yes, It’s Time to Learn Regular Expressions PyCon 2017 \u003ca href=\"#2-al-sweigart-yes-its-time-to-learn-regular-expressions-pycon-2017\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.youtube.com/watch?v=abrcJ9MpF60\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://www.youtube.com/watch?v=abrcJ9MpF60\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"1-trey-hunner-readability-counts-pycon-2017\"\u003e#1 Trey Hunner Readability Counts PyCon 2017 \u003ca href=\"#1-trey-hunner-readability-counts-pycon-2017\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.youtube.com/watch?v=knMg6G9_XCg\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://www.youtube.com/watch?v=knMg6G9_XCg\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"whats-on-tap\"\u003eWhat’s on Tap \u003ca href=\"#whats-on-tap\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis afternoon we have a cup of from one of my favorite roasters Thirty Thiry Coffee.  This\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://www.thirty-thirtycoffee.com/\" title=\"Whats on Tap\"\u003e\u003cimg class=\"glightbox\" src=\"https://www.thirty-thirtycoffee.com/wp-content/uploads/2016/09/thirty-thirty-peoria-logo.png\" alt=\"Whats on Tap\"/ data-glightbox=\"description: Whats on Tap\"\u003e\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\n\n# Pycon 2017 Roundup\n\nGood afternoon fellow Data Geeks.  Last week [Pycon](https://www.youtube.com/channel/UCrJhliKNQ8g0qoE_zvL8eVg) released 141 videos of greatness.  Here are my top picks from the event.\n\n## \\#3 Kelsey Hightower - Keynote - Pycon 2017\n\n\u003chttps://www.youtube.com/watch?v=u_iAXzy3xBA\u0026t=1795s\u003e\n\n## \\#2 Al Sweigart Yes, It's Time to Learn Regular Expressions PyCon 2017\n\n\u003chttps://www.youtube.com/watch?v=abrcJ9MpF60\u003e\n\n## \\#1 Trey Hunner Readability Counts PyCon 2017\n\n\u003chttps://www.youtube.com/watch?v=knMg6G9_XCg\u003e\n\n## What's on Tap\n\nThis afternoon we have a cup of from one of my favorite roasters Thirty Thiry Coffee.  This\n\n[![Whats on Tap](https://www.thirty-thirtycoffee.com/wp-content/uploads/2016/09/thirty-thirty-peoria-logo.png)](https://www.thirty-thirtycoffee.com/ \"Whats on Tap\")\n",
      "summary": "none",
      "date_published": "2017-05-30T00:00:00Z",
      "date_modified": "2017-05-30T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://go.waylonwalker.com/gh-rm-workflow-runs/",
      "url": "https://go.waylonwalker.com/gh-rm-workflow-runs/",
      "title": "Gh Rm Workflow Runs",
      "content_html": "\u003chr/\u003e\n\u003cp\u003edate: 2022-09-01 19:12:34\ntemplateKey: til\ntitle: GitHub Actions Delete all Workflow Runs\npublished: true\ntags:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebash\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr/\u003e\n\u003cp\u003eToday I ran a bunch of actions, but I wanted to clean up all the runs that I\nused to get it setup so that I had a good clean history to refer back to later.\u003c/p\u003e\n\u003cp\u003eI found \u003ca href=\"https://devx.pw/gists/batch-delete-workflow-runs/\"\u003ethis post\u003c/a\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egh api \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"se\"\u003e\u003c/span\u003e    repos/waylonwalker/hatch-version-action-example/actions/runs \u003cspan class=\"p\"\u003e|\u003c/span\u003e \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"se\"\u003e\u003c/span\u003e    jq \u003cspan class=\"s1\"\u003e\u0026#39;.workflow_runs[].id\u0026#39;\u003c/span\u003e \u003cspan class=\"p\"\u003e|\u003c/span\u003e \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"se\"\u003e\u003c/span\u003e    xargs -n1 -I % gh api repos/waylonwalker/hatch-version-action-example/actions/runs/% -X DELETE\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n---\ndate: 2022-09-01 19:12:34\ntemplateKey: til\ntitle: GitHub Actions Delete all Workflow Runs\npublished: true\ntags:\n  - bash\n\n---\n\nToday I ran a bunch of actions, but I wanted to clean up all the runs that I\nused to get it setup so that I had a good clean history to refer back to later.\n\nI found [this post](https://devx.pw/gists/batch-delete-workflow-runs/)\n\n``` bash\ngh api \\\n    repos/waylonwalker/hatch-version-action-example/actions/runs | \\\n    jq '.workflow_runs[].id' | \\\n    xargs -n1 -I % gh api repos/waylonwalker/hatch-version-action-example/actions/runs/% -X DELETE\n```\n",
      "summary": "date: 2022-09-01 19:12:34 templateKey: til title: GitHub Actions Delete all Workflow Runs published: true tags: - bash",
      "date_modified": "1970-01-01T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/components/top-banner/",
      "url": "https://go.waylonwalker.com/components/top-banner/",
      "title": "Top Banner",
      "content_html": "\u003cp\u003eThis site is powered by \u003ca href=\"https://github.com/WaylonWalker/markata-go\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003emarkata-go\u003c/a\u003e, a fast static site generator written in Go. \u003ca href=\"/colophon/\"\u003eLearn more →\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\nThis site is powered by [markata-go](https://github.com/WaylonWalker/markata-go), a fast static site generator written in Go. [Learn more \u0026rarr;](/colophon/)\n",
      "summary": "Announcement banner shown above the site header -- included via the top_banner slot.",
      "date_modified": "1970-01-01T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/components/sidebar/",
      "url": "https://go.waylonwalker.com/components/sidebar/",
      "title": "Sidebar",
      "content_html": "\u003ch2 id=\"slash-pages\"\u003eSlash Pages \u003ca href=\"#slash-pages\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cdiv class=\"home-slashes\"\u003e\u003ca href=\"/carry/\" class=\"home-slash-link\"\u003e/carry/\u003c/a\u003e\u003ca href=\"/verify/\" class=\"home-slash-link\"\u003e/verify/\u003c/a\u003e\u003ca href=\"/top4/\" class=\"home-slash-link\"\u003e/top4/\u003c/a\u003e\u003ca href=\"/yep/\" class=\"home-slash-link\"\u003e/yep/\u003c/a\u003e\u003ca href=\"/nope/\" class=\"home-slash-link\"\u003e/nope/\u003c/a\u003e\u003ca href=\"/ai/\" class=\"home-slash-link\"\u003e/ai/\u003c/a\u003e\u003ca href=\"/wants/\" class=\"home-slash-link\"\u003e/wants/\u003c/a\u003e\u003ca href=\"/tinyapps/\" class=\"home-slash-link\"\u003e/tinyapps/\u003c/a\u003e\u003ca href=\"/analytics/\" class=\"home-slash-link\"\u003e/analytics/\u003c/a\u003e\u003ca href=\"/now/\" class=\"home-slash-link\"\u003e/now/\u003c/a\u003e\u003ca href=\"/start/\" class=\"home-slash-link\"\u003e/start/\u003c/a\u003e\u003ca href=\"/colophon/\" class=\"home-slash-link\"\u003e/colophon/\u003c/a\u003e\u003ca href=\"/markata/\" class=\"home-slash-link\"\u003e/markata/\u003c/a\u003e\u003ca href=\"/feeds/\" class=\"home-slash-link\"\u003e/feeds/\u003c/a\u003e\u003ca href=\"/thoughts/\" class=\"home-slash-link\"\u003e/thoughts/\u003c/a\u003e\u003ca href=\"/about/\" class=\"home-slash-link\"\u003e/about/\u003c/a\u003e\u003c/div\u003e\n\u003ch2 id=\"latest-thoughtsthoughts\"\u003eLatest \u003ca href=\"/thoughts/\"\u003eThoughts\u003c/a\u003e \u003ca href=\"#latest-thoughtsthoughts\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cdiv class=\"feed h-feed\"\u003e\n\u003cdiv class=\"posts posts-list\"\u003e\n\u003carticle class=\"card card-link h-entry\"\u003e\n\u003cheader class=\"card-header\"\u003e\n\u003cdiv class=\"card-link-wrapper\"\u003e\n\u003cdiv class=\"card-link-content\"\u003e\n\u003ca href=\"/thought-980/\" class=\"card-title p-name u-url\"\u003e💭 \u0026#34;Am I Crazy?\u0026#34; [Wading Through AI - Episode 3]\u003c/a\u003e\n\u003cp\u003e\u003ca href=\"https://www.youtube.com/watch?v=Sp1EmFRDquA\" class=\"card-domain  has-avatar has-avatar-before\" rel=\"noopener noreferrer\" target=\"_blank\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.youtube.com.png\"\u003e\u003c/a\u003e\u003ca href=\"http://www.youtube.com\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003ewww.youtube.com\u003c/a\u003e\n\u003cdata class=\"u-bookmark-of\" value=\"https://www.youtube.com/watch?v=Sp1EmFRDquA\" hidden=\"\"\u003e\u003c/data\u003e\u003c/p\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/header\u003e\n\u003cdiv class=\"card-body\"\u003e\n\u003cdiv class=\"card-excerpt p-summary\"\u003e\u003cp\u003eCasey had an interesting point here. I think demitri came back with some sense of sanity that its just not how corporations look at employee cost, but I still thought it was a head scratcher.\u003c/p\u003e\n\u003cp\u003eRoughly translated not quoted\u003c/p\u003e\n\u003cp\u003eIf the sellers of ai are telling you that your developers are going to be 10x productive, why are they only spending half their salary in tokens? Why not 9x?\u003c/p\u003e\u003c/div\u003e\n\u003c/div\u003e\n\u003cfooter class=\"card-meta\"\u003e\n\u003cp\u003e\u003ctime class=\"dt-published\" datetime=\"2026-04-16T21:10:02Z\"\u003eApril 16, 2026\u003c/time\u003e\u003c/p\u003e\n\u003cdiv class=\"card-tags\"\u003e\n\u003cp\u003e\u003ca href=\"/tags/llm/\" class=\"tag p-category\"\u003ellm\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/tags/ai/\" class=\"tag p-category\"\u003eai\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/tags/thought/\" class=\"tag p-category\"\u003ethought\u003c/a\u003e\u003c/p\u003e\n\u003c/div\u003e\n\u003c/footer\u003e\n\u003c/article\u003e\n\u003carticle class=\"card card-link h-entry\"\u003e\n\u003cheader class=\"card-header\"\u003e\n\u003cdiv class=\"card-link-wrapper\"\u003e\n\u003cdiv class=\"card-link-content\"\u003e\n\u003ca href=\"/thought-979/\" class=\"card-title p-name u-url\"\u003e💭 A love letter to Pi | Lucas Meijer\u003c/a\u003e\n\u003cp\u003e\u003ca href=\"https://www.youtube.com/watch?v=fdbXNWkpPMY\" class=\"card-domain  has-avatar has-avatar-before\" rel=\"noopener noreferrer\" target=\"_blank\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.youtube.com.png\"\u003e\u003c/a\u003e\u003ca href=\"http://www.youtube.com\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003ewww.youtube.com\u003c/a\u003e\n\u003cdata class=\"u-bookmark-of\" value=\"https://www.youtube.com/watch?v=fdbXNWkpPMY\" hidden=\"\"\u003e\u003c/data\u003e\u003c/p\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/header\u003e\n\u003cdiv class=\"card-body\"\u003e\n\u003cdiv class=\"card-excerpt p-summary\"\u003e\u003cp\u003eI hate how he called out terminal user interfaces as shit… then proved web interfaces to be superior. Damn him. I love working from my terminal, but having ai prove itself through \u003ca href=\"/html/\" class=\"glossary-term\" title=\"HTML (HyperText Markup Language) is the standard markup language used to create and design documents on the World Wide Web. It structures web content by...\"\u003ehtml\u003c/a\u003e reports including video, image, metrics, charts, and text is goated. Rethinking yourself has the bottleneck not the orchestrator feels real. Validating the work is hard, theres a shift right now and everyone is trying to figure it out. Lucas’s technique is a little bit of be lazy and tell it to prove itself to you, so as you juggle your 15 agents you have a nice report to read.\u003c/p\u003e\u003c/div\u003e\n\u003c/div\u003e\n\u003cfooter class=\"card-meta\"\u003e\n\u003cp\u003e\u003ctime class=\"dt-published\" datetime=\"2026-04-15T16:12:33Z\"\u003eApril 15, 2026\u003c/time\u003e\u003c/p\u003e\n\u003cdiv class=\"card-tags\"\u003e\n\u003cp\u003e\u003ca href=\"/tags/ai/\" class=\"tag p-category\"\u003eai\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/tags/llm/\" class=\"tag p-category\"\u003ellm\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/tags/agents/\" class=\"tag p-category\"\u003eagents\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/tags/thought/\" class=\"tag p-category\"\u003ethought\u003c/a\u003e\u003c/p\u003e\n\u003c/div\u003e\n\u003c/footer\u003e\n\u003c/article\u003e\n\u003carticle class=\"card card-link h-entry\"\u003e\n\u003cheader class=\"card-header\"\u003e\n\u003cdiv class=\"card-link-wrapper\"\u003e\n\u003cdiv class=\"card-link-content\"\u003e\n\u003ca href=\"/thought-978/\" class=\"card-title p-name u-url\"\u003e💭 How Claude Code’s Creator Starts EVERY Project - YouTube\u003c/a\u003e\n\u003cp\u003e\u003ca href=\"https://www.youtube.com/watch?v=KWrsLqnB6vA\" class=\"card-domain  has-avatar has-avatar-before\" rel=\"noopener noreferrer\" target=\"_blank\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.youtube.com.png\"\u003e\u003c/a\u003e\u003ca href=\"http://www.youtube.com\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003ewww.youtube.com\u003c/a\u003e\n\u003cdata class=\"u-bookmark-of\" value=\"https://www.youtube.com/watch?v=KWrsLqnB6vA\" hidden=\"\"\u003e\u003c/data\u003e\u003c/p\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/header\u003e\n\u003cdiv class=\"card-body\"\u003e\n\u003cdiv class=\"card-excerpt p-summary\"\u003e\u003cp\u003eThis is a really good guide, with quite a few good nuggets. I need to try deleting my AGENTS.md and rebuilding it from scratch more often. I liked how he talked about having agents prove their work and tell them up front how they will be judged. What I didn’t care for so much was the feeling that a lot of the rules go in markdown, thats not a rule, thats a suggestion. Rules should be deterministic. They should be tests and linters that ensure they are followed. Suggestions are good, but dont trust the agents to always follow them. And don’t trust that they wont change your rules, keep them honest.\u003c/p\u003e\u003c/div\u003e\n\u003c/div\u003e\n\u003cfooter class=\"card-meta\"\u003e\n\u003cp\u003e\u003ctime class=\"dt-published\" datetime=\"2026-04-15T16:07:26Z\"\u003eApril 15, 2026\u003c/time\u003e\u003c/p\u003e\n\u003cdiv class=\"card-tags\"\u003e\n\u003cp\u003e\u003ca href=\"/tags/llm/\" class=\"tag p-category\"\u003ellm\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/tags/ai/\" class=\"tag p-category\"\u003eai\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/tags/agents/\" class=\"tag p-category\"\u003eagents\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/tags/thought/\" class=\"tag p-category\"\u003ethought\u003c/a\u003e\u003c/p\u003e\n\u003c/div\u003e\n\u003c/footer\u003e\n\u003c/article\u003e\n\u003carticle class=\"card card-link h-entry\"\u003e\n\u003cheader class=\"card-header\"\u003e\n\u003cdiv class=\"card-link-wrapper\"\u003e\n\u003cdiv class=\"card-link-content\"\u003e\n\u003ca href=\"/thought-977/\" class=\"card-title p-name u-url\"\u003e💭 POV: Growing up as a Millennial be like 🤣 AC:@mikemancusi #mil...\u003c/a\u003e\n\u003cp\u003e\u003ca href=\"https://www.youtube.com/shorts/qH3KH-q_tGE\" class=\"card-domain  has-avatar has-avatar-before\" rel=\"noopener noreferrer\" target=\"_blank\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.youtube.com.png\"\u003e\u003c/a\u003e\u003ca href=\"http://www.youtube.com\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003ewww.youtube.com\u003c/a\u003e\n\u003cdata class=\"u-bookmark-of\" value=\"https://www.youtube.com/shorts/qH3KH-q_tGE\" hidden=\"\"\u003e\u003c/data\u003e\u003c/p\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/header\u003e\n\u003cdiv class=\"card-body\"\u003e\n\u003cdiv class=\"card-excerpt p-summary\"\u003e\u003cp\u003eFeeling this today, feels like everything continues to get worse. Trying to be more positive, and its hard.\u003c/p\u003e\u003c/div\u003e\n\u003c/div\u003e\n\u003cfooter class=\"card-meta\"\u003e\n\u003cp\u003e\u003ctime class=\"dt-published\" datetime=\"2026-04-15T16:02:46Z\"\u003eApril 15, 2026\u003c/time\u003e\u003c/p\u003e\n\u003cdiv class=\"card-tags\"\u003e\n\u003cp\u003e\u003ca href=\"/tags/random/\" class=\"tag p-category\"\u003erandom\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/tags/thought/\" class=\"tag p-category\"\u003ethought\u003c/a\u003e\u003c/p\u003e\n\u003c/div\u003e\n\u003c/footer\u003e\n\u003c/article\u003e\n\u003carticle class=\"card card-link h-entry\"\u003e\n\u003cheader class=\"card-header\"\u003e\n\u003cdiv class=\"card-link-wrapper\"\u003e\n\u003cdiv class=\"card-link-content\"\u003e\n\u003ca href=\"/thought-976/\" class=\"card-title p-name u-url\"\u003e💭 Write It First, Then Let AI Drive - Kenneth Reitz\u003c/a\u003e\n\u003cp\u003e\u003ca href=\"https://kennethreitz.org/essays/2026-04-12-write_it_first_then_let_ai_drive\" class=\"card-domain  has-avatar has-avatar-before\" rel=\"noopener noreferrer\" target=\"_blank\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/kennethreitz.org.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/kennethreitz.org.ico\"\u003ekennethreitz.org\u003c/a\u003e\n\u003cdata class=\"u-bookmark-of\" value=\"https://kennethreitz.org/essays/2026-04-12-write_it_first_then_let_ai_drive\" hidden=\"\"\u003e\u003c/data\u003e\u003c/p\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/header\u003e\n\u003cdiv class=\"card-body\"\u003e\n\u003cdiv class=\"card-excerpt p-summary\"\u003e\u003cp\u003eInteresting take by Kenneth Reitz. Not quite sure how I feel about it anymore. It kinda hurts, but I’m not sure if code aesthetics matter as much as the product anymore. I cared when I was the one editing, but at this point I’m not doing a lot of edits by hand. Do these aesthetics affect the final products that users use, Not sure. AI makes me sad.\u003c/p\u003e\u003c/div\u003e\n\u003c/div\u003e\n\u003cfooter class=\"card-meta\"\u003e\n\u003cp\u003e\u003ctime class=\"dt-published\" datetime=\"2026-04-14T20:05:11Z\"\u003eApril 14, 2026\u003c/time\u003e\u003c/p\u003e\n\u003cdiv class=\"card-tags\"\u003e\n\u003cp\u003e\u003ca href=\"/tags/llm/\" class=\"tag p-category\"\u003ellm\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/tags/ai/\" class=\"tag p-category\"\u003eai\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/tags/thought/\" class=\"tag p-category\"\u003ethought\u003c/a\u003e\u003c/p\u003e\n\u003c/div\u003e\n\u003c/footer\u003e\n\u003c/article\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003e\u003ca href=\"/thoughts/\" class=\"home-see-more\"\u003eSee all thoughts →\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"recent-pingspings\"\u003eRecent \u003ca href=\"/pings/\"\u003ePings\u003c/a\u003e \u003ca href=\"#recent-pingspings\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cdiv class=\"feed h-feed\"\u003e\n\u003cdiv class=\"posts posts-list\"\u003e\n\u003carticle class=\"card card-note h-entry\"\u003e\n\u003cheader class=\"card-header\"\u003e\n\u003ch3 id=\"ping-54\" class=\"card-title p-name\"\u003e\u003ca class=\"u-url\" href=\"/ping-54/\"\u003ePing 54\u003c/a\u003e \u003ca href=\"#ping-54\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003c/header\u003e\n\u003cdiv class=\"card-body\"\u003e\n\u003cdiv class=\"card-content\"\u003e\n\u003cdiv class=\"card-text p-content\"\u003eI\u0026#39;m regressing back to boomer ai for more plan mode style prompting at home...\nIt does a decent job at ingesting a repo and coming up with plans before I\nstart spending precious tokens.\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cfooter class=\"card-meta\"\u003e\n\u003cp\u003e\u003ctime class=\"dt-published\" datetime=\"2026-04-19T09:54:48Z\"\u003eApril 19, 2026\u003c/time\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/ping-54/\" class=\"card-link\"\u003eView\u003c/a\u003e\u003c/p\u003e\n\u003c/footer\u003e\n\u003c/article\u003e\n\u003carticle class=\"card card-note h-entry\"\u003e\n\u003cheader class=\"card-header\"\u003e\n\u003ch3 id=\"tokens-just-don-39-t-go-as-far-as-they-used-to\" class=\"card-title p-name\"\u003e\u003ca class=\"u-url\" href=\"/ping-53/\"\u003eTokens Just don\u0026#39;t go as far as they used to\u003c/a\u003e \u003ca href=\"#tokens-just-don-39-t-go-as-far-as-they-used-to\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003c/header\u003e\n\u003cdiv class=\"card-body\"\u003e\n\u003cdiv class=\"card-content\"\u003e\n\u003cdiv class=\"card-text p-content\"\u003eNot sure if this is simply the flavor of the month, or a shift in gpt5.4\nbeing super subsidized on release and now that we have gpt5.4-mini-fast out\nthey have shifted, but I\u0026#39;m burning through half of my $20 gippity sub in a\nday with hobby level use. Second week in a row its burning so fast.\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cfooter class=\"card-meta\"\u003e\n\u003cp\u003e\u003ctime class=\"dt-published\" datetime=\"2026-04-18T12:17:22Z\"\u003eApril 18, 2026\u003c/time\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/ping-53/\" class=\"card-link\"\u003eView\u003c/a\u003e\u003c/p\u003e\n\u003c/footer\u003e\n\u003c/article\u003e\n\u003carticle class=\"card card-note h-entry\"\u003e\n\u003cheader class=\"card-header\"\u003e\n\u003ch3 id=\"ping-52\" class=\"card-title p-name\"\u003e\u003ca class=\"u-url\" href=\"/ping-52/\"\u003ePing 52\u003c/a\u003e \u003ca href=\"#ping-52\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003c/header\u003e\n\u003cdiv class=\"card-body\"\u003e\n\u003cdiv class=\"card-content\"\u003e\n\u003cdiv class=\"card-text p-content\"\u003eIs it just me or are the agents not behaving today?\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cfooter class=\"card-meta\"\u003e\n\u003cp\u003e\u003ctime class=\"dt-published\" datetime=\"2026-04-17T21:19:58Z\"\u003eApril 17, 2026\u003c/time\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/ping-52/\" class=\"card-link\"\u003eView\u003c/a\u003e\u003c/p\u003e\n\u003c/footer\u003e\n\u003c/article\u003e\n\u003carticle class=\"card card-note h-entry\"\u003e\n\u003cheader class=\"card-header\"\u003e\n\u003ch3 id=\"ping-50-a\" class=\"card-title p-name\"\u003e\u003ca class=\"u-url\" href=\"/ping-50-a/\"\u003ePing 50 A\u003c/a\u003e \u003ca href=\"#ping-50-a\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003c/header\u003e\n\u003cdiv class=\"card-body\"\u003e\n\u003cdiv class=\"card-content\"\u003e\n\u003cdiv class=\"card-text p-content\"\u003eI wrote code by hand today... I was out of tokens\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cfooter class=\"card-meta\"\u003e\n\u003cp\u003e\u003ctime class=\"dt-published\" datetime=\"2026-04-15T21:11:58Z\"\u003eApril 15, 2026\u003c/time\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/ping-50-a/\" class=\"card-link\"\u003eView\u003c/a\u003e\u003c/p\u003e\n\u003c/footer\u003e\n\u003c/article\u003e\n\u003carticle class=\"card card-note h-entry\"\u003e\n\u003cheader class=\"card-header\"\u003e\n\u003ch3 id=\"prove-yourself-agent\" class=\"card-title p-name\"\u003e\u003ca class=\"u-url\" href=\"/ping-50/\"\u003eProve Yourself Agent\u003c/a\u003e \u003ca href=\"#prove-yourself-agent\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003c/header\u003e\n\u003cdiv class=\"card-body\"\u003e\n\u003cdiv class=\"card-content\"\u003e\n\u003cdiv class=\"card-text p-content\"\u003eAsk your agents to prove their work. Include it in the initial\nprompt, not later.\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cfooter class=\"card-meta\"\u003e\n\u003cp\u003e\u003ctime class=\"dt-published\" datetime=\"2026-04-14T16:12:04Z\"\u003eApril 14, 2026\u003c/time\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/ping-50/\" class=\"card-link\"\u003eView\u003c/a\u003e\u003c/p\u003e\n\u003c/footer\u003e\n\u003c/article\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003e\u003ca href=\"/pings/\" class=\"home-see-more\"\u003eSee all pings →\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\n## Slash Pages\n\n\u003cdiv class=\"home-slashes\"\u003e\u003ca href=\"/carry/\" class=\"home-slash-link\"\u003e/carry/\u003c/a\u003e\u003ca href=\"/verify/\" class=\"home-slash-link\"\u003e/verify/\u003c/a\u003e\u003ca href=\"/top4/\" class=\"home-slash-link\"\u003e/top4/\u003c/a\u003e\u003ca href=\"/yep/\" class=\"home-slash-link\"\u003e/yep/\u003c/a\u003e\u003ca href=\"/nope/\" class=\"home-slash-link\"\u003e/nope/\u003c/a\u003e\u003ca href=\"/ai/\" class=\"home-slash-link\"\u003e/ai/\u003c/a\u003e\u003ca href=\"/wants/\" class=\"home-slash-link\"\u003e/wants/\u003c/a\u003e\u003ca href=\"/tinyapps/\" class=\"home-slash-link\"\u003e/tinyapps/\u003c/a\u003e\u003ca href=\"/analytics/\" class=\"home-slash-link\"\u003e/analytics/\u003c/a\u003e\u003ca href=\"/now/\" class=\"home-slash-link\"\u003e/now/\u003c/a\u003e\u003ca href=\"/start/\" class=\"home-slash-link\"\u003e/start/\u003c/a\u003e\u003ca href=\"/colophon/\" class=\"home-slash-link\"\u003e/colophon/\u003c/a\u003e\u003ca href=\"/markata/\" class=\"home-slash-link\"\u003e/markata/\u003c/a\u003e\u003ca href=\"/feeds/\" class=\"home-slash-link\"\u003e/feeds/\u003c/a\u003e\u003ca href=\"/thoughts/\" class=\"home-slash-link\"\u003e/thoughts/\u003c/a\u003e\u003ca href=\"/about/\" class=\"home-slash-link\"\u003e/about/\u003c/a\u003e\u003c/div\u003e\n\n## Latest [Thoughts](/thoughts/)\n\n\u003cdiv class=\"feed h-feed\"\u003e\n\u003cdiv class=\"posts posts-list\"\u003e\n\n\u003carticle class=\"card card-link h-entry\"\u003e\n\u003cheader class=\"card-header\"\u003e\n\u003cdiv class=\"card-link-wrapper\"\u003e\n\n\u003cdiv class=\"card-link-content\"\u003e\n\u003ca href=\"/thought-980/\" class=\"card-title p-name u-url\"\u003e💭 \u0026quot;Am I Crazy?\u0026quot; [Wading Through AI - Episode 3]\u003c/a\u003e\n\n\u003ca href=\"https://www.youtube.com/watch?v=Sp1EmFRDquA\" class=\"card-domain\" rel=\"noopener noreferrer\" target=\"_blank\"\u003ewww.youtube.com\u003c/a\u003e\n\u003cdata class=\"u-bookmark-of\" value=\"https://www.youtube.com/watch?v=Sp1EmFRDquA\" hidden\u003e\u003c/data\u003e\n\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/header\u003e\n\n\u003cdiv class=\"card-body\"\u003e\n\u003cdiv class=\"card-excerpt p-summary\"\u003e\u003cp\u003eCasey had an interesting point here. I think demitri came back with some sense of sanity that its just not how corporations look at employee cost, but I still thought it was a head scratcher.\u003c/p\u003e\n\u003cp\u003eRoughly translated not quoted\u003c/p\u003e\n\u003cp\u003eIf the sellers of ai are telling you that your developers are going to be 10x productive, why are they only spending half their salary in tokens? Why not 9x?\u003c/p\u003e\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cfooter class=\"card-meta\"\u003e\n\n\u003ctime class=\"dt-published\" datetime=\"2026-04-16T21:10:02Z\"\u003eApril 16, 2026\u003c/time\u003e\n\n\u003cdiv class=\"card-tags\"\u003e\n\n\u003ca href=\"/tags/llm/\" class=\"tag p-category\"\u003ellm\u003c/a\u003e\n\n\u003ca href=\"/tags/ai/\" class=\"tag p-category\"\u003eai\u003c/a\u003e\n\n\u003ca href=\"/tags/thought/\" class=\"tag p-category\"\u003ethought\u003c/a\u003e\n\n\u003c/div\u003e\n\n\u003c/footer\u003e\n\u003c/article\u003e\n\n\u003carticle class=\"card card-link h-entry\"\u003e\n\u003cheader class=\"card-header\"\u003e\n\u003cdiv class=\"card-link-wrapper\"\u003e\n\n\u003cdiv class=\"card-link-content\"\u003e\n\u003ca href=\"/thought-979/\" class=\"card-title p-name u-url\"\u003e💭 A love letter to Pi | Lucas Meijer\u003c/a\u003e\n\n\u003ca href=\"https://www.youtube.com/watch?v=fdbXNWkpPMY\" class=\"card-domain\" rel=\"noopener noreferrer\" target=\"_blank\"\u003ewww.youtube.com\u003c/a\u003e\n\u003cdata class=\"u-bookmark-of\" value=\"https://www.youtube.com/watch?v=fdbXNWkpPMY\" hidden\u003e\u003c/data\u003e\n\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/header\u003e\n\n\u003cdiv class=\"card-body\"\u003e\n\u003cdiv class=\"card-excerpt p-summary\"\u003e\u003cp\u003eI hate how he called out terminal user interfaces as shit\u0026hellip; then proved web interfaces to be superior. Damn him. I love working from my terminal, but having ai prove itself through html reports including video, image, metrics, charts, and text is goated. Rethinking yourself has the bottleneck not the orchestrator feels real. Validating the work is hard, theres a shift right now and everyone is trying to figure it out. Lucas\u0026rsquo;s technique is a little bit of be lazy and tell it to prove itself to you, so as you juggle your 15 agents you have a nice report to read.\u003c/p\u003e\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cfooter class=\"card-meta\"\u003e\n\n\u003ctime class=\"dt-published\" datetime=\"2026-04-15T16:12:33Z\"\u003eApril 15, 2026\u003c/time\u003e\n\n\u003cdiv class=\"card-tags\"\u003e\n\n\u003ca href=\"/tags/ai/\" class=\"tag p-category\"\u003eai\u003c/a\u003e\n\n\u003ca href=\"/tags/llm/\" class=\"tag p-category\"\u003ellm\u003c/a\u003e\n\n\u003ca href=\"/tags/agents/\" class=\"tag p-category\"\u003eagents\u003c/a\u003e\n\n\u003ca href=\"/tags/thought/\" class=\"tag p-category\"\u003ethought\u003c/a\u003e\n\n\u003c/div\u003e\n\n\u003c/footer\u003e\n\u003c/article\u003e\n\n\u003carticle class=\"card card-link h-entry\"\u003e\n\u003cheader class=\"card-header\"\u003e\n\u003cdiv class=\"card-link-wrapper\"\u003e\n\n\u003cdiv class=\"card-link-content\"\u003e\n\u003ca href=\"/thought-978/\" class=\"card-title p-name u-url\"\u003e💭 How Claude Code’s Creator Starts EVERY Project - YouTube\u003c/a\u003e\n\n\u003ca href=\"https://www.youtube.com/watch?v=KWrsLqnB6vA\" class=\"card-domain\" rel=\"noopener noreferrer\" target=\"_blank\"\u003ewww.youtube.com\u003c/a\u003e\n\u003cdata class=\"u-bookmark-of\" value=\"https://www.youtube.com/watch?v=KWrsLqnB6vA\" hidden\u003e\u003c/data\u003e\n\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/header\u003e\n\n\u003cdiv class=\"card-body\"\u003e\n\u003cdiv class=\"card-excerpt p-summary\"\u003e\u003cp\u003eThis is a really good guide, with quite a few good nuggets. I need to try deleting my AGENTS.md and rebuilding it from scratch more often. I liked how he talked about having agents prove their work and tell them up front how they will be judged. What I didn\u0026rsquo;t care for so much was the feeling that a lot of the rules go in markdown, thats not a rule, thats a suggestion. Rules should be deterministic. They should be tests and linters that ensure they are followed. Suggestions are good, but dont trust the agents to always follow them. And don\u0026rsquo;t trust that they wont change your rules, keep them honest.\u003c/p\u003e\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cfooter class=\"card-meta\"\u003e\n\n\u003ctime class=\"dt-published\" datetime=\"2026-04-15T16:07:26Z\"\u003eApril 15, 2026\u003c/time\u003e\n\n\u003cdiv class=\"card-tags\"\u003e\n\n\u003ca href=\"/tags/llm/\" class=\"tag p-category\"\u003ellm\u003c/a\u003e\n\n\u003ca href=\"/tags/ai/\" class=\"tag p-category\"\u003eai\u003c/a\u003e\n\n\u003ca href=\"/tags/agents/\" class=\"tag p-category\"\u003eagents\u003c/a\u003e\n\n\u003ca href=\"/tags/thought/\" class=\"tag p-category\"\u003ethought\u003c/a\u003e\n\n\u003c/div\u003e\n\n\u003c/footer\u003e\n\u003c/article\u003e\n\n\u003carticle class=\"card card-link h-entry\"\u003e\n\u003cheader class=\"card-header\"\u003e\n\u003cdiv class=\"card-link-wrapper\"\u003e\n\n\u003cdiv class=\"card-link-content\"\u003e\n\u003ca href=\"/thought-977/\" class=\"card-title p-name u-url\"\u003e💭 POV: Growing up as a Millennial be like 🤣 AC:@mikemancusi #mil...\u003c/a\u003e\n\n\u003ca href=\"https://www.youtube.com/shorts/qH3KH-q_tGE\" class=\"card-domain\" rel=\"noopener noreferrer\" target=\"_blank\"\u003ewww.youtube.com\u003c/a\u003e\n\u003cdata class=\"u-bookmark-of\" value=\"https://www.youtube.com/shorts/qH3KH-q_tGE\" hidden\u003e\u003c/data\u003e\n\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/header\u003e\n\n\u003cdiv class=\"card-body\"\u003e\n\u003cdiv class=\"card-excerpt p-summary\"\u003e\u003cp\u003eFeeling this today, feels like everything continues to get worse. Trying to be more positive, and its hard.\u003c/p\u003e\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cfooter class=\"card-meta\"\u003e\n\n\u003ctime class=\"dt-published\" datetime=\"2026-04-15T16:02:46Z\"\u003eApril 15, 2026\u003c/time\u003e\n\n\u003cdiv class=\"card-tags\"\u003e\n\n\u003ca href=\"/tags/random/\" class=\"tag p-category\"\u003erandom\u003c/a\u003e\n\n\u003ca href=\"/tags/thought/\" class=\"tag p-category\"\u003ethought\u003c/a\u003e\n\n\u003c/div\u003e\n\n\u003c/footer\u003e\n\u003c/article\u003e\n\n\u003carticle class=\"card card-link h-entry\"\u003e\n\u003cheader class=\"card-header\"\u003e\n\u003cdiv class=\"card-link-wrapper\"\u003e\n\n\u003cdiv class=\"card-link-content\"\u003e\n\u003ca href=\"/thought-976/\" class=\"card-title p-name u-url\"\u003e💭 Write It First, Then Let AI Drive - Kenneth Reitz\u003c/a\u003e\n\n\u003ca href=\"https://kennethreitz.org/essays/2026-04-12-write_it_first_then_let_ai_drive\" class=\"card-domain\" rel=\"noopener noreferrer\" target=\"_blank\"\u003ekennethreitz.org\u003c/a\u003e\n\u003cdata class=\"u-bookmark-of\" value=\"https://kennethreitz.org/essays/2026-04-12-write_it_first_then_let_ai_drive\" hidden\u003e\u003c/data\u003e\n\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/header\u003e\n\n\u003cdiv class=\"card-body\"\u003e\n\u003cdiv class=\"card-excerpt p-summary\"\u003e\u003cp\u003eInteresting take by Kenneth Reitz. Not quite sure how I feel about it anymore. It kinda hurts, but I\u0026rsquo;m not sure if code aesthetics matter as much as the product anymore. I cared when I was the one editing, but at this point I\u0026rsquo;m not doing a lot of edits by hand. Do these aesthetics affect the final products that users use, Not sure. AI makes me sad.\u003c/p\u003e\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cfooter class=\"card-meta\"\u003e\n\n\u003ctime class=\"dt-published\" datetime=\"2026-04-14T20:05:11Z\"\u003eApril 14, 2026\u003c/time\u003e\n\n\u003cdiv class=\"card-tags\"\u003e\n\n\u003ca href=\"/tags/llm/\" class=\"tag p-category\"\u003ellm\u003c/a\u003e\n\n\u003ca href=\"/tags/ai/\" class=\"tag p-category\"\u003eai\u003c/a\u003e\n\n\u003ca href=\"/tags/thought/\" class=\"tag p-category\"\u003ethought\u003c/a\u003e\n\n\u003c/div\u003e\n\n\u003c/footer\u003e\n\u003c/article\u003e\n\n\u003c/div\u003e\n\u003c/div\u003e\n\n[See all thoughts \u0026rarr;](/thoughts/){.home-see-more}\n\n## Recent [Pings](/pings/)\n\n\u003cdiv class=\"feed h-feed\"\u003e\n\u003cdiv class=\"posts posts-list\"\u003e\n\n\u003carticle class=\"card card-note h-entry\"\u003e\n\u003cheader class=\"card-header\"\u003e\n\n\u003ch3 class=\"card-title p-name\"\u003e\u003ca class=\"u-url\" href=\"/ping-54/\"\u003ePing 54\u003c/a\u003e\u003c/h3\u003e\n\n\u003c/header\u003e\n\n\u003cdiv class=\"card-body\"\u003e\n\u003cdiv class=\"card-content\"\u003e\n\n\u003cdiv class=\"card-text p-content\"\u003eI\u0026#39;m regressing back to boomer ai for more plan mode style prompting at home...\nIt does a decent job at ingesting a repo and coming up with plans before I\nstart spending precious tokens.\u003c/div\u003e\n\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cfooter class=\"card-meta\"\u003e\n\n\u003ctime class=\"dt-published\" datetime=\"2026-04-19T09:54:48Z\"\u003eApril 19, 2026\u003c/time\u003e\n\n\u003ca href=\"/ping-54/\" class=\"card-link\"\u003eView\u003c/a\u003e\n\u003c/footer\u003e\n\u003c/article\u003e\n\n\u003carticle class=\"card card-note h-entry\"\u003e\n\u003cheader class=\"card-header\"\u003e\n\n\u003ch3 class=\"card-title p-name\"\u003e\u003ca class=\"u-url\" href=\"/ping-53/\"\u003eTokens Just don\u0026#39;t go as far as they used to\u003c/a\u003e\u003c/h3\u003e\n\n\u003c/header\u003e\n\n\u003cdiv class=\"card-body\"\u003e\n\u003cdiv class=\"card-content\"\u003e\n\n\u003cdiv class=\"card-text p-content\"\u003eNot sure if this is simply the flavor of the month, or a shift in gpt5.4\nbeing super subsidized on release and now that we have gpt5.4-mini-fast out\nthey have shifted, but I\u0026#39;m burning through half of my $20 gippity sub in a\nday with hobby level use. Second week in a row its burning so fast.\u003c/div\u003e\n\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cfooter class=\"card-meta\"\u003e\n\n\u003ctime class=\"dt-published\" datetime=\"2026-04-18T12:17:22Z\"\u003eApril 18, 2026\u003c/time\u003e\n\n\u003ca href=\"/ping-53/\" class=\"card-link\"\u003eView\u003c/a\u003e\n\u003c/footer\u003e\n\u003c/article\u003e\n\n\u003carticle class=\"card card-note h-entry\"\u003e\n\u003cheader class=\"card-header\"\u003e\n\n\u003ch3 class=\"card-title p-name\"\u003e\u003ca class=\"u-url\" href=\"/ping-52/\"\u003ePing 52\u003c/a\u003e\u003c/h3\u003e\n\n\u003c/header\u003e\n\n\u003cdiv class=\"card-body\"\u003e\n\u003cdiv class=\"card-content\"\u003e\n\n\u003cdiv class=\"card-text p-content\"\u003eIs it just me or are the agents not behaving today?\u003c/div\u003e\n\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cfooter class=\"card-meta\"\u003e\n\n\u003ctime class=\"dt-published\" datetime=\"2026-04-17T21:19:58Z\"\u003eApril 17, 2026\u003c/time\u003e\n\n\u003ca href=\"/ping-52/\" class=\"card-link\"\u003eView\u003c/a\u003e\n\u003c/footer\u003e\n\u003c/article\u003e\n\n\u003carticle class=\"card card-note h-entry\"\u003e\n\u003cheader class=\"card-header\"\u003e\n\n\u003ch3 class=\"card-title p-name\"\u003e\u003ca class=\"u-url\" href=\"/ping-50-a/\"\u003ePing 50 A\u003c/a\u003e\u003c/h3\u003e\n\n\u003c/header\u003e\n\n\u003cdiv class=\"card-body\"\u003e\n\u003cdiv class=\"card-content\"\u003e\n\n\u003cdiv class=\"card-text p-content\"\u003eI wrote code by hand today... I was out of tokens\u003c/div\u003e\n\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cfooter class=\"card-meta\"\u003e\n\n\u003ctime class=\"dt-published\" datetime=\"2026-04-15T21:11:58Z\"\u003eApril 15, 2026\u003c/time\u003e\n\n\u003ca href=\"/ping-50-a/\" class=\"card-link\"\u003eView\u003c/a\u003e\n\u003c/footer\u003e\n\u003c/article\u003e\n\n\u003carticle class=\"card card-note h-entry\"\u003e\n\u003cheader class=\"card-header\"\u003e\n\n\u003ch3 class=\"card-title p-name\"\u003e\u003ca class=\"u-url\" href=\"/ping-50/\"\u003eProve Yourself Agent\u003c/a\u003e\u003c/h3\u003e\n\n\u003c/header\u003e\n\n\u003cdiv class=\"card-body\"\u003e\n\u003cdiv class=\"card-content\"\u003e\n\n\u003cdiv class=\"card-text p-content\"\u003eAsk your agents to prove their work. Include it in the initial\nprompt, not later.\u003c/div\u003e\n\n\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cfooter class=\"card-meta\"\u003e\n\n\u003ctime class=\"dt-published\" datetime=\"2026-04-14T16:12:04Z\"\u003eApril 14, 2026\u003c/time\u003e\n\n\u003ca href=\"/ping-50/\" class=\"card-link\"\u003eView\u003c/a\u003e\n\u003c/footer\u003e\n\u003c/article\u003e\n\n\u003c/div\u003e\n\u003c/div\u003e\n\n[See all pings \u0026rarr;](/pings/){.home-see-more}\n",
      "summary": "Homepage sidebar content -- included by home.html via include_post.",
      "date_modified": "1970-01-01T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/components/now-intro/",
      "url": "https://go.waylonwalker.com/components/now-intro/",
      "title": "Now Intro",
      "content_html": "\u003cul\u003e\n\u003cli\u003eSilksong has my attention\u003c/li\u003e\n\u003cli\u003eWorking on new features for dropper\u003c/li\u003e\n\u003cli\u003eAdding more than software to the blog – design and 3D printing\u003c/li\u003e\n\u003cli\u003eBuilding markata-go, the engine behind this site\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp class=\"home-updated\"\u003eLast updated Oct 2025\u003c/p\u003e\n",
      "content_text": "\n- Silksong has my attention\n- Working on new features for dropper\n- Adding more than software to the blog -- design and 3D printing\n- Building markata-go, the engine behind this site\n\n\u003cp class=\"home-updated\"\u003eLast updated Oct 2025\u003c/p\u003e\n",
      "summary": "Homepage now card -- included by home.html via include_post.",
      "date_modified": "1970-01-01T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/components/nav-content/",
      "url": "https://go.waylonwalker.com/components/nav-content/",
      "title": "Nav Content",
      "content_html": "\u003cp\u003e\u003ca href=\"/\"\u003eHome\u003c/a\u003e \u003ca href=\"/start/\"\u003eStart Here\u003c/a\u003e \u003ca href=\"/archive/\"\u003eArchive\u003c/a\u003e \u003ca href=\"/about/\"\u003eAbout\u003c/a\u003e \u003ca href=\"/feeds/\"\u003eRSS\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\n[Home](/) [Start Here](/start/) [Archive](/archive/) [About](/about/) [RSS](/feeds/)\n",
      "summary": "Markdown-driven navigation -- replaces the config-driven nav via the nav_content slot.",
      "date_modified": "1970-01-01T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/components/left-sidebar/",
      "url": "https://go.waylonwalker.com/components/left-sidebar/",
      "title": "Left Sidebar",
      "content_html": "\u003ch3 id=\"explore\"\u003eExplore \u003ca href=\"#explore\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/blog/\"\u003eBlog\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/til/\"\u003eTIL\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/thoughts/\"\u003eThoughts\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/archive/\"\u003eArchive\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/tags/\"\u003eTags\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/garden/\"\u003eGarden\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"meta\"\u003eMeta \u003ca href=\"#meta\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/about/\"\u003eAbout\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/now/\"\u003eNow\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/colophon/\"\u003eColophon\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/feeds/\"\u003eRSS\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\n### Explore\n\n- [Blog](/blog/)\n- [TIL](/til/)\n- [Thoughts](/thoughts/)\n- [Archive](/archive/)\n- [Tags](/tags/)\n- [Garden](/garden/)\n\n### Meta\n\n- [About](/about/)\n- [Now](/now/)\n- [Colophon](/colophon/)\n- [RSS](/feeds/)\n",
      "summary": "Left sidebar with navigation links -- included via the left_sidebar slot.",
      "date_modified": "1970-01-01T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/components/hero/",
      "url": "https://go.waylonwalker.com/components/hero/",
      "title": "Hero",
      "content_html": "\u003cp\u003eDeveloper, blogger, and builder of things on the web.\u003c/p\u003e\n",
      "content_text": "\nDeveloper, blogger, and builder of things on the web.\n",
      "summary": "Hero section shown between header and page content on post pages -- included via the hero slot.",
      "date_modified": "1970-01-01T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/components/footer-content/",
      "url": "https://go.waylonwalker.com/components/footer-content/",
      "title": "Footer Content",
      "content_html": "\u003cp\u003e\u003ca href=\"/about/\"\u003e/about\u003c/a\u003e \u003ca href=\"/now/\"\u003e/now\u003c/a\u003e \u003ca href=\"/colophon/\"\u003e/colophon\u003c/a\u003e \u003ca href=\"/blogroll/\"\u003e/blogroll\u003c/a\u003e \u003ca href=\"/reader/\"\u003e/reader\u003c/a\u003e \u003ca href=\"/ai/\"\u003e/ai\u003c/a\u003e \u003ca href=\"https://twitter.com/waylonwalker\"\u003eTwitter\u003c/a\u003e \u003ca href=\"https://github.com/waylonwalker\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eGitHub\u003c/a\u003e \u003ca href=\"https://linkedin.com/in/waylonwalker\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/linkedin.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/linkedin.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eLinkedIn\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e© 2026 Waylon Walker. Content licensed under \u003ca href=\"https://creativecommons.org/licenses/by/4.0/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/creativecommons.org.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/creativecommons.org.png\" class=\"has-avatar  has-avatar-before\"\u003eCC BY 4.0\u003c/a\u003e. Built with \u003ca href=\"https://github.com/WaylonWalker/markata-go\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003emarkata-go\u003c/a\u003e.\u003c/p\u003e\n",
      "content_text": "\n[/about](/about/) [/now](/now/) [/colophon](/colophon/) [/blogroll](/blogroll/) [/reader](/reader/) [/ai](/ai/) [Twitter](https://twitter.com/waylonwalker) [GitHub](https://github.com/waylonwalker) [LinkedIn](https://linkedin.com/in/waylonwalker)\n\n\u0026copy; 2026 Waylon Walker. Content licensed under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/). Built with [markata-go](https://github.com/WaylonWalker/markata-go).\n",
      "summary": "Markdown-driven footer -- replaces the config-driven footer via the footer_content slot.",
      "date_modified": "1970-01-01T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/components/bottom-banner/",
      "url": "https://go.waylonwalker.com/components/bottom-banner/",
      "title": "Bottom Banner",
      "content_html": "\u003cp\u003eWant to keep up with what I’m building? \u003cstrong\u003eFollow along\u003c/strong\u003e on \u003ca href=\"https://github.com/waylonwalker\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eGitHub\u003c/a\u003e, \u003ca href=\"https://twitter.com/waylonwalker\"\u003eTwitter\u003c/a\u003e, or subscribe to the \u003ca href=\"/rss.xml\"\u003eRSS feed\u003c/a\u003e.\u003c/p\u003e\n",
      "content_text": "\nWant to keep up with what I'm building? **Follow along** on [GitHub](https://github.com/waylonwalker), [Twitter](https://twitter.com/waylonwalker), or subscribe to the [RSS feed](/rss.xml).\n",
      "summary": "Newsletter/engagement banner shown above the footer -- included via the bottom_banner slot.",
      "date_modified": "1970-01-01T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/components/after-post/",
      "url": "https://go.waylonwalker.com/components/after-post/",
      "title": "After Post CTA",
      "content_html": "\u003cp\u003e\u003cstrong\u003eThanks for reading!\u003c/strong\u003e If you found this useful, consider sharing it or checking out more of my writing.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/blog/\"\u003eBlog\u003c/a\u003e \u003ca href=\"/til/\"\u003eTIL\u003c/a\u003e \u003ca href=\"/thoughts/\"\u003eThoughts\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\n**Thanks for reading!** If you found this useful, consider sharing it or checking out more of my writing.\n\n[Blog](/blog/) [TIL](/til/) [Thoughts](/thoughts/)\n",
      "summary": "Call-to-action shown below every post -- included via the after_post slot.",
      "date_modified": "1970-01-01T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/components/about-intro/",
      "url": "https://go.waylonwalker.com/components/about-intro/",
      "title": "About Intro",
      "content_html": "\u003cp\u003eHusband, father of two, creator of things on the web. I build data pipelines and web platforms with Python. I believe in a decentralized web where everyone has their own space to share.\u003c/p\u003e\n\u003cp\u003eI built my own blogging engine from scratch because I was frustrated with long build times, bloated pages, and black holes of node modules.\u003c/p\u003e\n",
      "content_text": "\nHusband, father of two, creator of things on the web. I build data pipelines and web platforms with Python. I believe in a decentralized web where everyone has their own space to share.\n\nI built my own blogging engine from scratch because I was frustrated with long build times, bloated pages, and black holes of node modules.\n",
      "summary": "Homepage about intro card -- included by home.html via include_post.",
      "date_modified": "1970-01-01T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    }
  ]
}